Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

post/prometheus-bp/ #18

Open
utterances-bot opened this issue Mar 25, 2020 · 4 comments
Open

post/prometheus-bp/ #18

utterances-bot opened this issue Mar 25, 2020 · 4 comments

Comments

@utterances-bot
Copy link

Prometheus 不完全避坑指南

https://aleiwu.com/post/prometheus-bp/

Copy link

bob244 commented Mar 25, 2020

可以。6

Copy link

Kuri-su commented Apr 26, 2020

维度过高那块超认同 TAT 血的教训,

我们有一部分业务是 PHP 跑的, 然后一开始没想过 Histogram 和 Summary 维度过高的问题, 当时就拿 Go 的 Prometheus Client 跑了下好像没啥问题, 然后就各种梭哈各种支持了, 然后改 PHP Prometheus SDK 的时候也没想太多, 也是各种梭哈支持, 然后业务方的代码在 Beta 环境就爆炸了, CPU 100% , Redis 失去响应. (万幸在 Beta 环境就暴露问题了.... : ( )

事后排查, PHP 那块的 SDK 实现依赖 Redis, 以及每次 Prometheus 抓取的时候实时的根据 Redis 中的元数据渲染出 给 Prometheus 的指标数据. Counter 和 Gauge 类型没啥问题, 维度高的影响还好, Histogram 和 Summary 问题就大了, 他们会有一个类似于笛卡尔积的操作来渲染 给 Prometheus的指标数据 orz, 然后 PHP 的 SDK 直接计算到炸了.....

然后最近压测了下 PHP Prometheus SDK ...... 三个 label a,b,c 分别三十个枚举值 就已经计算到要死了... 然后 渲染 给 Prometheus 的 指标数据的时候花了大概 15-30s....... 然后我们在 SDK 上加了限制....后面准备用 Go Prometheus Client 封个 Sidecar 给 PHP 用...

分享一点出包的事迹给大家开心一下 TAT , 没有 Language War 的意思 , 它们都是最好的语言 ; )

Copy link

┆to 2,Java才是世界上最好的语言!┆

Copy link

1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants