
从架构图中可以看出其大概的工作流程:
1、Prometheus Server 以服务发现(如 Kubernetes 等)的方式自动发现或者静态配置添加监控目标;
2、Prometheus Server 定期从监控目标(Jobs/exporters)或 Pushgateway 中拉取数据(metrics),将时间序列数据保存到其自身的时间序列数据库(TSDB)中;
3、Prometheus Server 通过 HTTP Server 对外开放接口,可以给可视化工具(如 Prometheus web UI、Grafana 或自己开发的工具)用PromQL查询/导出数据;
4、当有告警产生时,Prometheus Server 将告警信息推送到Alertmanager ,由 Alertmanager 根据配置的策略发送告警信息到对应的接收方;
5、Pushgateway 接收 “Short-lived” 类型的 Jobs 推送过来的 metrics 并缓存,等待 Prometheus Server 抓取。
Exporter的来源
社区提供的

用户自定义的
除了直接使用社区提供的Exporter程序以外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby。同时还有第三方实现的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust等。
本文详细介绍了Prometheus监控系统的架构和工作流程,包括服务发现、数据拉取、时间序列数据库存储、PromQL查询、告警推送及Pushgateway的使用。此外,还探讨了Exporter的来源及其基于不同编程语言的实现。
4089

被折叠的 条评论
为什么被折叠?



