Scu_laji

prometheus exporter三种导出指标的方式

prometheus Exporter的三种导出方式

prometheus是一个优秀的时序数据库,其已成为容器领域监控的事实标准。最近在写监控系统,主要使用的是Go语言。

在此,我想谈一谈prometheus exporter的三种数据的导出方式。

首先,按照导出数据的时间分类,可以分为以下两类。

定时导出

定时导出十分易于理解,即设置一个时间间隔,每隔一段时间去捞一把数据。优势是访问http的速度快,而且能根据数据源的实际变化周期灵活的掌控处理数据的时间, 适合对于指标数目不确定的情况,劣势是数据可能会有一定时间的延时(很难做到实时)。实现参考GaugeVec

http访问导出

而http访问导出是指exporter收到了对metrics的http request时,exporter就去开始请求资源方,并将指标导出,呈现在资源结果中。访问结果可能较慢。优势是实现较为简单,prometheus官方提供了完善的支持。

而http访问导出方式根据实现方式的不同又可分为两种。

http中间件hook

即将上面的定时导出的函数放在Go语言的http中间件之内实现,记得加锁,优势是当你已经实现了定时导出时,想切换到http访问导出是一件非常方便的事情。

实现Collector接口

实现Collector接口即可实现http访问导出。实现参考[kafka_exporter](