概述
promethues采集数据的方法很多,常用的是通过各种exporter去主机采集,然后有些程序是没有相关的exporter,所以有些时候会通过脚本采集服务的数据,还有一些程序的metrics自身也没有暴露,通过 脚本采集的方法也不常用,工作中java程序又比较常见,所以有人开发了jmx_prometheus_javaagent.jar专门用来采集java程序metrics的。
如下图所示,
通过上面的可以看见,在prometheus能够直接通过jar包的方法采集
优势就是无论是什么的程序都可以通过类似的方法采集,当然很多开源的大的项目,一般也会有相关的metrics的采集方法,只是有些时候需要我们通过一些非常规手段来采集。
prometheus的特点:
- 一款开源监控工具。
- 基于时间序列数据库TSDB存储,golang 实现
- Soundcloud 公司研发,源于谷歌borgmon
- 多维度(标签)
- 使用拉模式(Pull-based) 获取数据
- 白盒&黑盒的监控都支持,DevOps友好
- Metrics & Alert模式,不是 loggging/tracing
- 社区生态丰富(多语言,各种exporters)
- 单机性能
- 消费百万级时间序列
- 支持上千个 targets
注意:
需要在prometheus