12.1、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。