本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
仪表板的最佳实践
本文档主题专为支持 Grafana 版本 10.x 的 Grafana 工作空间而设计。
有关支持 Grafana 9.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 9 中工作
有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作
本节提供有关 Grafana 管理员和用户如何构建和维护 Grafana 仪表板的最佳实践的信息。
有关您可以创建的不同类型仪表板的信息,请参阅 Grafana 仪表板:有关您可以在 Grafana Labs 网站上构建的所有不同类型的完整
注意
本节可以帮助您制定监控和仪表板维护策略。您最了解自己的系统,因此应使用本节来指导您的理解。归根结底,您有责任为您的系统制定最佳策略。
常见的可观测性策略
当你需要监控很多东西时,比如服务器群,你需要一个策略来决定哪些内容足够重要,需要监控。本页介绍了选择要监控的内容的几种常用方法。
逻辑策略允许您制作统一的仪表板并更轻松地扩展可观测性平台。
策略指南
-
USE 方法告诉你你的机器有多高兴,RED 方法告诉你你的用户有多高兴。
-
使用有关问题原因的报告。
-
RED 报告用户体验,更有可能报告问题症状。
-
监视两者对于了解您的系统非常重要。最佳做法是警惕症状而不是原因。通常,警报是在 RED 仪表板上配置的。
使用方法
USE 代表:
-
利用率-资源繁忙时间的百分比,例如节点 CPU 使用率。
-
饱和度-资源必须做的工作量,通常是队列长度或节点负载。
-
错误-错误事件的计数。
此方法最适合基础架构中的硬件资源,例如 CPU、内存和网络设备。欲了解更多信息,请参阅布伦丹·格雷格的博客文章《使用方法》
红色方法
红色代表:
-
速率-每秒请求数
-
错误-失败的请求数。
-
持续时间-这些请求所花费的时间,延迟测量值的分布。
这种方法最适用于服务,尤其是微服务环境。对于您的每项服务,对代码进行分析以显示每个组件的这些指标。RED 仪表板非常适合提醒和 SLA。精心设计的 RED 仪表板是用户体验的代名词。
欲了解更多信息,请参阅 Tom Wilkie 的博客文章《红色方法:如何检测您的服务
四个黄金信号
根据 Google SRE手册
此方法与 RED 方法类似,但它包括饱和度。
-
延迟-处理请求所花费的时间。
-
流量-您的系统有多少需求。
-
错误-请求失败的比率。
-
饱和度 — 你的系统有多 “饱满”,
仪表板管理成熟度模型
仪表板管理成熟度是指仪表板生态系统的精心设计和效率。我们建议您定期查看您的控制面板设置,以评估您的现状以及如何改进。
从广义上讲,仪表板成熟度可以定义为低、中或高。
该主题的大部分内容取自 KubeCon 2019 年的演讲 Fool-Proof Kubernetes Dashboards for Seeprift On
低-默认状态
在这个阶段,你没有连贯的仪表板管理策略。几乎每个人都是从这里开始的。
你怎么能看出你在这里?
-
每个人都可以修改您的仪表板。
-
大量复制的仪表板,很少甚至没有仪表板重复使用。
-
永久存在的一次性仪表板。
-
没有版本控制(版本控制中的仪表板 JSON)。
-
大量浏览仪表板,搜索合适的仪表板。这意味着要浪费大量时间来寻找所需的仪表板。
-
没有任何提醒可以将您定向到正确的仪表板。
中等 — 有条不紊的仪表板
在这个阶段,你开始使用有条不紊的仪表板来管理仪表板的使用。你可能已经制定了策略,但有些方面你可以改进。
你怎么能看出你在这里?
-
使用模板变量防止蔓延。例如,你不需要为每个节点使用单独的仪表板,你可以使用查询变量。更好的是,您也可以将数据源设置为模板变量,这样您就可以在不同的集群和监控后端中重复使用相同的仪表板。
有关想法,请参阅中的Variables示例列表。
-
基于可观测性策略的有条不紊的仪表板。
-
分层仪表板,可向下钻取到下一级别。
-
仪表板设计反映了服务层次结构。例如,你可以使用 RED 方法,每个服务只有一行。当你向下滚动仪表板时,行顺序可以反映数据流。
-
比较类似:在幅度不同时拆分服务仪表板。确保汇总指标不会淹没重要信息。
-
富有表现力的图表,可以有意义地使用颜色并尽可能对轴进行归一化。
-
有意义的颜色示例:蓝色表示不错,红色表示不好。阈值可以帮助解决这个问题。
-
标准化轴的示例:在比较 CPU 使用率时,请按百分比而不是原始数字来衡量,因为计算机的内核数量可能不同。通过内核数对 CPU 使用率进行标准化可以减少认知负担,因为观看者无需知道 CPU 的数量即可相信所有内核都使用率为 100%。
-
-
定向浏览减少了猜测。
-
模板变量使得随机或漫无目的地浏览变得更加困难。
-
大多数仪表板都应通过警报链接到。
-
通过链接进行浏览。有关更多信息,请参阅 管理控制面板链接。
-
-
版本控制的仪表板 JSON。
高-优化使用
在这个阶段,您已经通过一致而周到的策略优化了仪表板管理的使用。它需要维护,但结果是值得的。
-
积极减少蔓延。
-
定期检查现有仪表板,确保它们仍然具有相关性。
-
只有已批准的仪表板才会添加到主仪表板列表中。
-
跟踪仪表板的使用情况。您可以利用使用情况见解。
-
-
通过设计实现一致性。
-
使用脚本库生成仪表板,确保模式和样式的一致性。
-
grafonnet (Jsonnet)
-
grafanalib (Python)
-
-
浏览器中不允许编辑。仪表板查看者使用变量更改视图。
-
浏览仪表板是例外,而不是规则。
-
在专用于该目的的单独的 Grafana 实例中执行实验和测试,而不是在您的生产实例中执行实验和测试。当测试环境中的仪表板被证明有用时,请将该仪表板添加到您的主 Grafana 实例中。
创建仪表板的最佳实践
本节概述了创建 Grafana 仪表板时应遵循的一些最佳实践。
开始之前
以下是创建仪表板之前需要考虑的一些原则。
仪表板应该讲述故事或回答问题
你想用仪表板讲什么故事? 尝试创建数据的逻辑进程,例如从大到小,或者从一般到特定。这个仪表板的目标是什么? (提示:如果仪表板没有目标,请问自己是否真的需要仪表板。)
让你的图表保持简单,专注于回答你所问的问题。例如,如果你的问题是 “哪些服务器出了问题?” ,那么也许你不需要显示所有的服务器数据。只需显示遇到麻烦的人的数据即可。
仪表板应减少认知负担,而不是增加认知负担
认知负荷基本上是你需要多么努力地思考某件事才能弄清楚。让您的仪表板易于解释。其他用户和 future 你(当你想弄清楚凌晨 2 点发生了什么事时)会很感激。
问问自己:
-
我能分辨出每张图表到底代表什么吗? 这是显而易见的,还是我必须考虑一下?
-
如果我把这个给别人看,他们要花多长时间才能弄清楚? 他们会迷路吗?
制定监控策略
制作新的仪表板很容易。优化仪表板创建和遵守计划比较困难,但这是值得的。此策略应控制您的整体仪表板方案,并确保单个仪表板设计的一致性。
有关更多信息,请参阅常见的可观测性策略和仪表板管理成熟度级别。
把它写下来
有了策略或设计指南后,请将其写下来,以帮助保持长期一致性。
要遵循的最佳实践
-
创建新仪表板时,请确保其名称有意义。
-
如果您要创建要玩或实验的仪表板,请在名称
TMP
中加上 “TEST
或” 字样。 -
考虑在仪表板名称或标签中包含您的姓名或姓名缩写,以便人们知道谁拥有控制面板。
-
使用完临时实验仪表板后,将其删除。
-
-
如果您创建了许多相关的仪表板,请考虑如何交叉引用它们以便于导航。有关更多信息,请参阅本节后面的管理仪表板的最佳实践。
-
Grafana 从数据源检索数据。对一般数据源以及您的特定数据源有基本的了解非常重要。连接到数据来源
-
避免不必要的仪表板刷新,以减少网络或后端的负载。例如,如果您的数据每小时更改一次,则无需将仪表板刷新率设置为 30 秒。
-
显示具有不同单位或范围的时间序列时,请使用左右的 Y 轴。
-
将文档添加到仪表板和面板。
-
要向仪表板添加文档,请向仪表板添加文本面板可视化。记录诸如仪表板的用途、有用的资源链接以及用户可能需要与仪表板交互的任何说明之类的内容。
-
要向面板添加文档,请编辑面板设置并添加描述。如果您将光标悬停
i
在面板左上角的小文本上,则会显示您添加的任何文本。
-
-
重复使用您的仪表板并使用模板和变量来确保一致性。
-
堆叠图形数据时要小心。可视化可能具有误导性,并且会隐藏重要数据。在大多数情况下,我们建议将其关闭。
管理仪表板的最佳实践
本页概述了管理 Grafana 仪表板时应遵循的一些最佳实践。
开始之前
在开始管理仪表板之前,需要考虑以下几项原则。
战略可观察性
有几种常见的可观测性策略。你应该研究它们,并决定其中一个是否对你有用,或者你是否想出自己的想法。无论哪种方式,都要有一个计划,把它写下来,然后坚持下去。
根据需要调整您的策略以适应不断变化的需求。
成熟度等级
您的控制面板成熟度是多少? 分析您当前的仪表板设置,并将其与仪表板管理成熟度模型进行比较。了解自己的位置可以帮助你决定如何到达你想要去的地方。
要遵循的最佳实践
-
避免仪表板蔓延,这意味着仪表板的增长不受控制。仪表板的蔓延会对寻找合适仪表板的时间产生负面影响。复制仪表板和更改 “一件事”(更糟糕的是:保留原始标签)是最简单的扩张方式。
-
定期查看仪表板并删除不必要的仪表板。
-
如果您创建临时仪表板(可能是为了测试某些内容),请在名称前面加上
TEST:
。完成后删除控制面板。
-
-
复制没有重大更改的仪表板不是一个好主意。
-
您错过了对原始仪表板的更新,例如文档更改、错误修复或指标的添加。
-
在许多情况下,制作副本只是为了通过设置模板参数来自定义视图。相反,应通过维护指向主仪表板的链接并使用网址参数自定义视图来完成此操作。
-
-
当必须复制仪表板时,请明确重命名仪表板,不要复制仪表板标签。标签是搜索期间使用的仪表板的重要元数据。复制标签可能会导致错误的匹配。
-
维护仪表板或交叉引用仪表板。这可以通过以下几种方式完成: