指标
●指标名称必须符合数据模型
●指标名称前缀应该表明度量所属领域相关应用程序。前缀有时被客户端库称为命名空间。对于特定于应用程序的指标,前缀通常是应用程序名称本身。然而,有时候指标更通用,比如客户端库导出的标准化指标。例如:
○prometheus_notifications_total (针对Prometheus 服务器)
○process_cpu_seconds_total (由客户端库导出)
○http_request_duration_seconds (用于所有HTTP请求)
●指标名称必须具有一个单位。应该使用基本单位(如秒、字节、米,而不是毫秒、兆字节、公里)
●应该有一个复数形式的后缀来描述这个单位。累计计数以total作为后缀,附加在单位之后。
○http_request_duration_seconds
○node_memory_usage_bytes
○http_requests_total (用于无单位的累计计数)
○process_cpu_seconds_total (用于有单位的累计计数)
○foobar_build_info (用于提供关于正在运行的二进制文件的元数据的伪指标)
●应该在所有的标签维度中表示相同的监控逻辑
根据经验,指定指标的所有维度上的sum()或avg()都应该是有意义的(尽管不一定有用)。如果没有意义,则应该将数据分解为多个指标。例如,在一个指标中拥有各种队列的容量是可行的,而将队列的容量与队列中当前元素的数量混合则不合适。
标签
使用标签来区分被测量事物的特征:
●api_http_requests_total - 区分请求类型: operation="create|update|delete"
●api_request_duration_seconds - 区分请求阶段: stage="extract|transform|load"
不要将标签名称放在度量标准名称中,因为这会引入冗余,并且如果将各个标签汇总在一起会引起混淆。
警告:请记住,每个键-值标签对的唯一组合都代表一个新的时间序列,它会显著增加存储的数据量。不要使用标签来存储具有高基数(许多不同的标签值)的维度,例如用户ID、电子邮件地址或其他极大值。
基本单位
普罗米修斯没有任何硬编码的单位。为了更好的兼容性,应该使用基本单元
家族
|
基本单位
|
备注
|
Time
|
seconds
|
|
Temperature
|
celsius
|
由于实际原因,摄氏温度比开尔文温度更受欢迎。
|
Length
|
meters
|
|
Bytes
|
bytes
|
|
Bits
|
bytes
|
为了避免不同指标混淆,总是使用
bytes,即使在bits更常见的场景也是如此。 |
Percent
|
ratio
|
值从0 - 1 ,而不是从0 - 100。 ratio
仅用作disk_usage_ratio 等名称的后缀。通常的指标名称遵循模式A_per_B 。 |
Voltage
|
volts
|
|
Electric current
|
amperes
|
|
Energy
|
joules
|
|
Mass
|
grams
|
“克”是首选而不是“千克”,以避免kilo
前缀的问题。 |