Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。
Promethus有以下特点:
● 支持多维数据模型:由度量名和键值对组成的时间序列数据
● 内置时间序列数据库TSDB
● 支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义
● 支持HTTP的Pull方式采集时间序列数据
● 支持PushGateway采集瞬时任务的数据
● 支持服务发现和静态配置两种方式发现目标
● 支持接入Grafana