如何获取Prometheus node exporter等导出器的全量指标及对应描述?
获取Prometheus导出器全量指标与对应描述的可行方法
方法1:解析导出器原生/metrics端点输出
所有兼容Prometheus exposition规范的导出器,都会在自身的标准metrics输出中内置指标描述信息:
- 访问导出器的metrics端口(例如node exporter默认端口为9100)的
/metrics路径,返回的纯文本内容中,每个指标都会前置两行标准元数据:# HELP <指标完整名称> <指标对应的业务说明># TYPE <指标完整名称> <指标类型,如counter/gauge/histogram等>
- 可以通过简单的文本解析脚本批量提取所有HELP行的内容,自动生成名称-描述对照表。该方法对所有自定义的Prometheus兼容导出器同样生效,不受官方文档是否提供汇总表格的限制。
方法2:调用Prometheus Server内置元数据接口
如果不需要逐个访问导出器实例,可以直接通过Prometheus Server自带的接口批量拉取所有已采集指标的元数据:
- 调用全量元数据接口
http://<prometheus-server地址>:9090/api/v1/metadata,接口返回的JSON结构中,每个指标项都会对应存储指标类型、描述信息,直接筛选对应导出器关联的指标即可生成对照表。 - 如果需要精准匹配某个特定导出器任务的指标(例如单独筛选node exporter采集的指标),可以使用带筛选参数的元数据接口
http://<prometheus-server地址>:9090/api/v1/targets/metadata,通过传入target标签选择器(例如{job="node-exporter"}),就能只拉取该任务下所有指标的名称、描述、类型信息,不会混入其他导出器的指标。 - 此前不少开发者使用的
/api/v1/label/__name__/values接口,设计目标本身就是仅返回已采集到的指标名称列表,不携带任何元数据字段,因此无法通过该接口获取描述信息属于正常的接口能力范围。
方法3:从开源导出器源码提取原生指标定义
对于node exporter这类开源官方导出器,不需要访问运行实例,也可以直接从源码中提取全量指标定义:
- 这类导出器的所有指标的名称、HELP描述、类型都是在源码的采集器模块中硬编码定义的,直接定位对应源码目录下的指标常量定义,就能直接整理出全量的指标对照表,同时还能同步获取每个指标的默认开启开关、采集依赖条件等额外信息。
内容的提问来源于stack exchange,提问作者Max7846
相关产品推荐
相关产品推荐

