共计 1999 个字符,预计需要花费 5 分钟才能阅读完成。
在应用 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” 或其余相似的后缀来辨别。这样能够与其余实在的度量指标进行辨别,并且在查问和可视化时能够独自解决。