Prometheus不同指标命名规范是否存在特殊含义?
关于Prometheus指标下划线与冒号命名的区别
首先直接给结论:这两种命名不仅是规范差异,背后对应原始采集指标和聚合衍生指标的本质区别:
下划线分隔的指标(如
node_boot_time_seconds):这是Prometheus官方规范定义的原生采集指标,来自各类exporter(比如node_exporter、kube-state-metrics)。这类指标严格遵循「小写字母+下划线分隔+单位后缀」的规则,直接反映监控对象的原始状态,是Prometheus监控数据的基础来源。冒号分隔的指标(如
cluster:namespace:pod_memory:active:kube_pod_container_resource_requests):这类几乎都是通过**Prometheus记录规则(Recording Rules)**生成的聚合/衍生指标,冒号是社区(尤其K8s监控场景)约定的分层命名方式,核心作用是:- 明确区分原始指标和加工后的指标,避免重名
- 通过冒号拆分的层级,快速理解指标的聚合维度(比如集群→命名空间)、业务含义(活跃Pod内存)以及来源的原始指标(
kube_pod_container_resource_requests) - 方便后续查询、告警时快速识别指标的加工逻辑
你在Prometheus Operator环境中见到这类指标,大概率是kube-prometheus-stack这类默认监控套件自带的预定义记录规则生成的,这类规则会对原生K8s指标做多维度聚合,用冒号命名来让加工后的指标更具可读性。
内容的提问来源于stack exchange,提问作者danidemi
相关产品推荐
相关产品推荐

