介绍
- 有维度的数据(时序数据是通过metric名和一些k,v键值对的集合来标识)
- 灵活的PromQL查询语言
- 强大的展示效果(与grafana结合)
- 高效的存储(prometheus自带一个基于硬盘的时序数据库,但是也可以与其他的远程存储系统集成)
如果是自带的数据库,采集的样本将会按照两个小时分隔成快,每两个小时的块中包含一个目录,这个目录里面包含一个或者多个chunk文件,文件里面包含这个时间窗口的所有时序数据,关联时序的索引metric名和标签也包含在chunk文件里面。删除数据不会直接从这个目录里面删除。存储压缩后的数据,压缩过程在后台进行
- 简单部署,由于都是go编写的二进制文件
- 精确的报警,支持告警抑制和静默,支持告警分组,很方便的配置告警发送规则
- 多种语言库的支持
- 自带很多的exporter和其他工具的集成 详见
- Http pull模式拉取时间序列
- 可以通过中间网关来做时序数据推送
- 监控target的发现可以使用服务发现,也可以使用静态配置
Prometheus架构图
常用的prometheus架构图
Prometheus的metric示例
- http_requests_total{service=”users-directory”, instance=”1.2.3.4”}