Prometheus exporter for PostgreSQL server metrics.

源码原理解析

1、使用kingpin来解析启动参数,包含web.listen-address,web.telemetry-path,disable-default-metrics,extend.query-path,dumpmaps,version

2、如果设置参数dumpmaps,则直接把默认查询的查询map结构输出,主要查询一些系统信息,最后结束探针不运行

3、启动时设置环境变量DATA_SOURCE_NAME作为探测pg的地址链接,代码中通过获取环境变量的值来获取datasource

4、创建一个exporter的结构体,并初始化,包含了默认采集指标

5、针对可配的路由web.telemetry-path来做对应的数据处理,默认是/metrics,根目录则显示到可配置的目录下获取指标数据

1)根据获取的dsn来连接数据库
2)检查版本是否需要更新,就是看pg的版本是否和我们目前支持的采集兼容,低于最低可探测版本则不可用,然后对可探测的对应的版本默认指标进行调整。
3)解析配置文件
4)根据默认语句和配置文件查询语句来进行查询,将查询结果放到对应的指标变量中去。

6、启动监听地址和端口,可配置