跳到主要内容

黄金指标监控

在监控系统中,"黄金指标"(Golden Signals)是指那些能够快速反映系统健康状态的关键指标。它们通常包括 延迟流量错误率饱和度。这些指标可以帮助我们快速识别系统中的问题,并采取相应的措施。

什么是黄金指标?

黄金指标是由 Google 的 SRE(Site Reliability Engineering)团队提出的概念,用于监控分布式系统的健康状态。它们包括以下四个关键指标:

  1. 延迟(Latency):请求处理所需的时间。
  2. 流量(Traffic):系统处理的请求量。
  3. 错误率(Error Rate):请求失败的比例。
  4. 饱和度(Saturation):系统资源的使用情况。

这些指标可以帮助我们快速了解系统的运行状态,并在问题发生时迅速定位问题。

黄金指标在 Prometheus 中的应用

Prometheus 是一个开源的监控和警报工具,广泛用于监控分布式系统。通过 Prometheus,我们可以轻松地收集和查询这些黄金指标。

1. 延迟(Latency)

延迟是指请求从发出到收到响应所需的时间。在 Prometheus 中,我们可以使用 histogram_quantile 函数来计算延迟的分位数。

promql
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket{job="my_service"}[5m])) by (le))

这个查询会返回 99% 的请求的延迟时间。

2. 流量(Traffic)

流量是指系统处理的请求量。我们可以使用 rate 函数来计算每秒的请求量。

promql
rate(http_requests_total{job="my_service"}[5m])

这个查询会返回过去 5 分钟内每秒的平均请求量。

3. 错误率(Error Rate)

错误率是指请求失败的比例。我们可以使用 rate 函数来计算错误请求的比例。

promql
rate(http_requests_total{job="my_service", status="500"}[5m]) / rate(http_requests_total{job="my_service"}[5m])

这个查询会返回过去 5 分钟内错误请求的比例。

4. 饱和度(Saturation)

饱和度是指系统资源的使用情况。我们可以使用 node_memory_MemAvailable_bytes 来监控内存的使用情况。

promql
(node_memory_MemTotal_bytes{job="my_service"} - node_memory_MemAvailable_bytes{job="my_service"}) / node_memory_MemTotal_bytes{job="my_service"}

这个查询会返回内存的使用比例。

实际案例

假设我们有一个 Web 服务,我们需要监控其健康状态。我们可以使用 Prometheus 来收集以下指标:

  1. 延迟:监控 99% 的请求的延迟时间。
  2. 流量:监控每秒的请求量。
  3. 错误率:监控错误请求的比例。
  4. 饱和度:监控内存和 CPU 的使用情况。

通过这些指标,我们可以快速了解系统的运行状态,并在问题发生时迅速定位问题。

总结

黄金指标是监控系统健康状态的关键指标。通过 Prometheus,我们可以轻松地收集和查询这些指标,从而快速了解系统的运行状态。希望本文能帮助你更好地理解黄金指标监控,并在实际应用中发挥作用。

附加资源

练习

  1. 使用 Prometheus 监控一个 Web 服务的黄金指标。
  2. 尝试编写 PromQL 查询,计算 95% 的请求的延迟时间。
  3. 监控一个服务的错误率,并设置警报,当错误率超过 5% 时触发警报。

通过实践,你将更好地掌握黄金指标监控的概念和应用。