407 日 , 2024 1:50:28
laravel 网站接入 opentelemetry

清明节在鼓捣项目的时候看到阿里云有提供 tracing 服务,底层是基于opentelemetry 的,而且每个月有 50G流量的免费额度,非常适合我这种个人小型应用。

尝试把 laravel 接入到阿里云 opentelemetry 服务的过程遇到了3次坑,花了我一晚上才搞定,值得记录一下

  • 第一个是需要给 PHP-FPM 增加 PHP 扩展。其实本质上就是执行
    pecl install opentelemetry 
    pecl isstall grpc
    pecl install protobuf

这三个指令。但是由于是用的 laradock 来作为服务器环境,所以得重新跑 `docker build` 脚本,坑的地方在于 wsl2 环境的 docker 编译指令失败概率太高了,几乎每次都会因为翻墙相关的网络问题而失败。每次编译10分钟的时候忽然提示网络问题,再碰运气重试的时候真是让人欲哭无泪。这个浪费了我差不多半个晚上的时间。

这个问题现在暂时是通过多次重试之后看运气跑通的,要彻底解决的话有两个思路,

一个是买一台国外的服务器,专门用来打包 docker image ,打包好了之后再通过阿里云的 acr 服务来中转,本地和云端都用相同的 image 来跑应用。不过这个方案得需要一个双币的信用卡才行。这个和家人商量过,打算到今年5月初就去办一个。

一个是买一台可以折腾的路由器,这样的话家里的电脑手机就可以无感翻墙了。这个方案前几年调研过一次,在性能,复杂度,价格,稳定性方面没有找到很让人舒心的方案,不知道现在有没有什么变化。这两天抽空再研究下。

  • 第二个是 opentelemetry 的安装依赖。要让数据流能够跑通,需要安装3个层面的依赖,一个是扩展层面的,也就是 pecl install opentelemetry ,一个是 sdk 层面的,比如 composer require open-telemetry/auto-instrument-laravel, 最后一个是运行时启动收集,即 composer require open-telemetry/otel-exporter ,第三个依赖别忘了安装,因为需要它来作为扩展层和sdk 之间的连接器。
  • 第三个就比较无厘头了。上面的问题解决之后,看效果时,发现不管怎么调整,阿里云都看不到采集的数据。百思不得其解。到了凌晨4点多还卡着这一步,被家人叫去睡觉的时候还心有不甘……   直到第二天早上起床之后,刷新了阿里云后台的时候,才发现阿里云的 tracing 服务不知道为什么给我自动展示的是杭州地区的资源和数据,而不是我开通的深圳地区。切换到阿里云深圳之后,发现其实数据早就OK了。真是醉了。也正是因为睡了一晚上,阿里云的登录态过期触发了重新登陆,我才注意到这个原因。我要感谢家人把我从电脑旁拉回床上休息,哈哈哈哈
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!