乐趣区

关于prometheus:Prometheus指标和标签命名

在应用 Prometheus 时,文档中提供的指标和标签约定并不是必须的,但能够作为款式指南和最佳实际的汇合。不同的组织能够对某些实际办法(例如命名约定)采取不同的形式。

指标名称

指标名称应该合乎以下特色:

  • 必须合乎数据模型中无效字符的要求。
  • 应该应用与指标所属畛域相干的(单词)应用程序前缀。前缀有时被客户端库称为命名空间。对于特定应用程序的指标,前缀通常是应用程序名称自身。然而,有时指标更通用,例如由客户端库导出的标准化指标。例子:

    • prometheus_notifications_total(特定于 Prometheus 服务器)
    • process_cpu_seconds_total(由许多客户端库导出)
    • http_request_duration_seconds(用于所有 HTTP 申请)
  • 必须具备单个单位(即不要将秒 [seconds] 与毫秒 [milliseconds] 混用,或将秒 [seconds] 与字节 [bytes] 混用)。
  • 应该应用根本单位(例如秒[seconds]、字节[bytes]、米[meters] – 而不是毫秒[milliseconds]、兆字节[megabytes]、千米[kilometers])。最初有一个根本单位的列表。
  • 应该有一个以复数模式形容单位的后缀。留神,累积计数器在单位实用的状况下,除了单位外还有 total 作为后缀。

    • http_request_duration_seconds
    • node_memory_usage_bytes
    • http_requests_total(无单位的 counter 计数器)
    • process_cpu_seconds_total(带有单位的 counter 计数器)
    • foobar_build_info(提供无关运行二进制文件的元数据的伪指标)
    • data_pipeline_last_record_processed_timestamp_seconds(用于跟踪数据处理流水线中最新记录解决工夫的工夫戳)
  • 应该在所有标签维度上示意雷同的逻辑测量对象。

    • 申请持续时间
    • 数据传输字节数
    • 刹时资源使用率的百分比

作为一个教训法令,给定指标的所有维度的 sum() 或 avg() 应该是有意义的(不论有没有用)。如果没有意义,则应该将数据拆分成多个指标。例如,在一个指标中混合队列的容量和队列中以后元素数量是不好的,而将各种队列的容量放在一个指标中是能够的。

标签

应用标签来辨别被测量对象的个性:

  • api_http_requests_total – 辨别申请类型:operation=”create|update|delete”
  • api_request_duration_seconds – 辨别申请阶段:stage=”extract|transform|load”

不要将标签名称放在指标名称中,这会导致冗余,并且如果相应的标签被聚合掉,将会引起混同。

留神:每个惟一的键 - 值标签对的组合示意一个新的工夫序列,这可能会大大增加存储的数据量。不要应用具备高基数(不能枚举的,许多不同标签值)的标签来存储维度,例如用户 ID、电子邮件地址或其余无边界的汇合。

根本单位

Prometheus 没有任何硬编码的单位。为了更好的兼容性,应应用根本单位。以下是一些指标家族及其根本单位的列表。该列表并不详尽。

家族 根本单位 备注
Time seconds
Temperature celsius 摄氏度出于理论起因而被优先选择,开尔文(绝对温度)则保留给须要绝对温度值或准确温度差的专门状况应用
Length meters
Bytes bytes
Bits bytes 为了防止混同不同度量规范,即便比特看起来更常见,也应始终应用字节。
Percent ratio 数值范畴为 0 -1(而不是 0 -100)。ratio 只用作像 disk_usage_ratio 这样的名称的后缀。通常的度量规范名称遵循 A_per_B 的模式。
Voltage volts
Electric current amperes
Energy joules
Power 倡议导出以焦耳计量的计数器 (counter),这样应用 rate(joules[5m]) 能够失去以瓦特为单位的功率。
Mass grams 为了防止应用千(kilo)前缀时可能呈现的问题,倡议应用克而不是千克。

伪指标(pseudo-metric)在 Prometheus 中是指提供对于运行二进制文件的元数据或其余附加信息的指标。它们通常不参加度量或监控理论的业务指标,而是用于提供无关零碎或应用程序状态的描述性信息。
例如,”foobar_build_info” 能够是一个伪指标,它提供无关正在运行的二进制文件的版本号、构建工夫、构建者等信息。这些信息对于运行时的调试、故障排查和版本追踪十分有用,但不间接与业务指标相干。
伪指标能够通过在指标命名中应用 “_info” 或其余相似的后缀来辨别。这样能够与其余实在的度量指标进行辨别,并且在查问和可视化时能够独自解决。

退出移动版