Skip to content

The Prometheus monitoring system and time series database.

License

Notifications You must be signed in to change notification settings

lihai521/prometheus

 
 

改造

rule 规则-从DB加载

参考《深入浅出 Prometheus:原理、应用、源码与拓展详情》11.6 源码改造-MySQL规则存储 对应配置项,在 prometheus.yml 的 global 段中

使用

1.启动时,自动会从mysql中加载配置

2.触发重加载,还是调用 prometheus的 reload 接口

  • 规则是否修改的判断逻辑:同 prometheus 原有逻辑,即规则的 key = rule_fn;rule_name
  • 规则的修改,会引发 rule 重新计算,即 firing 状态的 rule 会恢复 pending 并重新开始计算

Note

prometheus 源码对配置对象的处理不是很一致

  • 在 config/ 下有 config 对象,但在 main.go 中另定义了 cfg 对象,又未完整引用 config 对象。
  • 没有一个全局配置对象,代码中要想应用配置项,基本需要在其模块中定义局部配置变量,然后在 main.go 中对其赋值

相关

辅助

有两个相关项目:

  • mysql4Prom:用于解析 prometheus 规则文件,并导入DB
  • mysql4PromUI:用于 DB 对应的简单管理界面

注意事项

  • 新版Prometheus需go1.16(主要是 k8s.io/client_go 使用了 io/fs 等新特性)
  • 若要调试,dvl需自行编译
    • dvl 源码中(MaxSupportedVersionOfGoMinor)限定仅支持到 go1.14,手动修改到 go1.16 编译也可正常使用

About

The Prometheus monitoring system and time series database.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 88.7%
  • TypeScript 6.2%
  • JavaScript 1.9%
  • HTML 1.6%
  • Yacc 0.7%
  • CSS 0.4%
  • Other 0.5%