12.1Dashboard设计方法论

分类: 全栈 Dashboard 设计实战

Dashboard 设计方法论

欢迎来到第 12 章的学习。在前面的章节中,我们学习了各个组件的监控和追踪。现在我们要学习全栈 Dashboard 设计实战,这是整合所有监控数据的重要环节。

本节将学习:RED 方法(Rate、Errors、Duration)、USE 方法(Utilization、Saturation、Errors)、以及分层设计(基础设施、应用、业务)。

RED 方法

RED 方法的作用是什么? 提供一种简单有效的 Dashboard 设计方法,聚焦三个关键指标:请求速率、错误率、持续时间。

RED 方法的指标包括哪些呢?

第一个:Rate(速率)。 每秒请求数(QPS)、每秒事务数(TPS)。

第二个:Errors(错误)。 错误率、错误数量、错误类型。

第三个:Duration(持续时间)。 响应时间、延迟分布(P50、P95、P99)。

RED 方法适用于哪些场景? 适用于服务监控,特别是 API 服务、微服务等请求驱动的服务。

RED Dashboard 示例:

# Rate(速率)
sum(rate(http_requests_total[5m])) by (service)

# Errors(错误)
sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
sum(rate(http_requests_total{status=~"5.."}[5m])) by (service) / sum(rate(http_requests_total[5m])) by (service)

# Duration(持续时间)
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))

USE 方法

USE 方法的作用是什么? 提供一种资源监控的方法,聚焦三个关键指标:利用率、饱和度、错误。

USE 方法的指标包括哪些呢?

第一个:Utilization(利用率)。 资源使用百分比,如 CPU 使用率、内存使用率。

第二个:Saturation(饱和度)。 资源的饱和程度,如队列长度、等待时间。

第三个:Errors(错误)。 资源错误数量,如错误率、错误次数。

USE 方法适用于哪些场景? 适用于资源监控,特别是服务器、网络、存储等资源。

USE Dashboard 示例:

# Utilization(利用率)
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))

# Saturation(饱和度)
avg(node_load1)
avg(node_load5)
avg(node_load15)

# Errors(错误)
sum(rate(node_network_receive_errs_total[5m]))
sum(rate(node_disk_io_errors_total[5m]))

分层设计

分层设计的作用是什么? 将监控指标按照不同层次组织,提供清晰的监控视图。

分层设计包括哪些层次呢?

第一层:基础设施层。 服务器、网络、存储等基础设施监控。

第二层:应用层。 应用服务、API、数据库等应用监控。

第三层:业务层。 业务指标、用户行为、转化率等业务监控。

分层设计的优势是什么? 清晰的组织结构,便于管理和维护,支持不同角色的需求。

分层设计结构:

本节小结

在本节中,我们学习了 Dashboard 设计方法论:

第一个是 RED 方法。 聚焦请求速率、错误率、持续时间三个关键指标,适用于服务监控。

第二个是 USE 方法。 聚焦利用率、饱和度、错误三个关键指标,适用于资源监控。

第三个是分层设计。 按照基础设施、应用、业务三层组织监控指标,提供清晰的监控视图。

Dashboard 设计方法论流程: 选择方法论 → 选择关键指标 → 设计可视化 → 配置告警 → 持续优化。

这就是 Dashboard 设计方法论。通过 Dashboard 设计方法论,我们可以系统化地设计监控 Dashboard。

在下一节,我们将学习前端性能 Dashboard。学习如何设计前端性能监控 Dashboard。