Prometheus 是一个开源监控系统和时间序列数据库,在监控系统的架构中扮演着重要角色。为了确保 Prometheus 能够高效地收集、存储和展示指标数据,合理的指标命名至关重要。本文将探讨如何进行有效的 Prometheus 指标命名。
良好的指标命名有助于:
确保指标名称足够具体,以便准确反映它们所度量的内容。例如:
http_requests_total{method="GET",endpoint="/health"}
Prometheus 不区分字符的大小写,默认以连字符(-
)连接单词部分(如 user-agent
),使用下划线(_
)分割单词(如 user_agent
)。例如:
http_request_duration_seconds_bucket{le="0.1",method="GET"}
当可能时,为指标值添加合适的度量单位。这有助于更好地理解数据的含义。
disk_free_bytes{device="/dev/sda1"}
对于涉及时间的数据(如延迟、响应时间等),建议明确表示其时间范围或频率。
response_time_seconds_bucket{le="0.5",method="GET"}
_total
表示计数通常用来表示某个操作的总次数。例如:
http_requests_total
by
子句对于需要按某些标签聚合的数据,可以使用 by
子句来明确指定分组依据。
response_time_seconds_bucket{le="1",method="GET"} by (endpoint)
在某些情况下,可以通过不同名称的指标表示特定状态的变化。例如:
db_connection_opened_total
db_connection_closed_total
理解应用程序的具体需求和逻辑,有助于形成更贴切、更具描述性的指标名。
order_placed_total
- 订单创建总数。product_viewed_count
- 某商品页面被浏览次数。cart_item_added_total{user="admin"}
- 用户“admin”添加到购物车的商品数量变化。遵循上述指导原则进行 Prometheus 指标命名,能够帮助构建清晰、易用且高效的监控系统。虽然指标命名看似小事一桩,但它直接影响到了整个团队在维护和使用监控数据时的工作效率与体验。