
简介
是一个面向云原生应用程序的开源的监控&报警工具。
- 开源:继Kubernetes之后的第二个CNCF开源项目,Go语言开发
- 监控:通过HTTP服务定时从配置的目标收集指标数据,识别数据展示规则,展示监控系统和服务指标数据
- 报警:监控到的指标数据达到某一设定好的条件时,触发报警机制
- 时间序列数据库: 时间序列是由唯一的指标名称(Metrics)和一组标签(key=value)的形式组成
- PromeQL:基于Prometheus时间序列数据库的一个灵活的查询语言
监控对象
-
资源监控
服务器的资源使用情况,在Kubernetes集群中,则可以做到对Kubernetes Node、 Deployment 、Pod的资源利用以及apiserver,controller-manager,etcd等组件的监控。
-
应用监控
业务应用暴露端口供Prometheus调用实现监测,比如实时的用户在线人数,数据库的当前连接数等。
Prometheus优势
- 支持机器资源和动态配置的应用监控;
- 多维数据收集和查询;
- 服务独立,少依赖。
Prometheus组件
- Prometheus Server:采集监控数据,存储时序指标,提供数据查询;
- Prometheus Client SDK:对接开发工具包,提供自定义的指标数据等;
- Push Gateway:推送指标数据的网关组件;
- Third-part Exporter:外部指标采集系统,暴露接口供Prometheus采集;
- AlertManager:指标数据的分析告警管理器;
流程架构

- 处理流程
- 配置资源目标或应用抓取;
- 抓取资源或应用指标数据;
- 制定报警规则,推送报警;
- 灵活查询语言,结合Grafana展示
结束语
Prometheus是一款优秀的系统资源、应用状态等方面的监控工具,配置简单,能够与Grafana(一款数据度量分析的可视化工具,也很强大)无缝配合,呈现最佳指标数据的呈现。
