插件 〉Status Panel
Status Panel
Status Panel
一个用于显示资源状态的简单插件。
概述
Status Panel 是一个 Grafana 插件,旨在以直观且可定制的彩色卡片格式可视化资源状态。
状态基于资源的指标或健康检查查询,用户可以定义严重性阈值。
功能
- 可定制的状态卡片:使用彩色编码卡片显示资源状态,这些卡片根据用户定义的阈值反映严重性级别。
- 标题和副标题:为每个状态卡片添加标题和副标题,以阐明资源信息。
- 带 URL 的可点击卡片:配置点击状态卡片时打开的 URL,以便快速导航到更多详细信息或资源。
- 指标显示和单位:可选地在卡片上显示指标并定义单位,以增强可读性。
- 每个面板多个卡片:添加查询以在单个面板中显示多个卡片。
- 支持表格:如果查询返回表格(数字字段数组),每列都被视为一个卡片
- 单卡定制:使用覆盖字段对每个卡片进行高级独立定制。
兼容性
只要数据源返回number
类型字段即可使用,例如 Prometheus、Loki、InfluxDB ...
截图
此插件支持自动缩放,以使每张卡片的尺寸和字体大小最适合面板大小。
卡片变体选项
单个面板中的多个卡片
文档
此面板提供一些定制选项,并且可以从菜单中搜索。
选项
您可以使用以下选项定制面板
- 标题:显示卡片的标题
- 副标题:显示卡片的副标题
- URL:点击卡片时打开的 URL
- (如果设置 URL)在新标签页中打开 URL:选择是否应在新标签页中打开 URL
- 将查询聚合成单卡:将所有查询聚合到一张卡片中
- 圆角半径:设置卡片的圆角半径(使用 CSS 属性)
- 翻转卡片:设置卡片是否执行翻转动画
- (如果未开启翻转卡片)保持显示:选择要显示的卡片面
- (如果开启翻转卡片)翻转间隔:设置卡片翻转的时间间隔(秒)
- 无数据时显示空白:如果查询未返回数据,选择是否显示标有“无数据”的空白卡片(禁用此选项)或不显示任何内容(启用此选项)
字符串变量
对于文本字段(标题、副标题、URL),您可以使用字符串格式化变量,使文本更具动态性。
{{query_name}}
:将被查询名称替换(默认为 A, B, C, ...){{query_value}}
:将被查询的值替换(根据所选聚合计算){{query_index}}
:将被查询的索引替换(默认为 0, 1, 2, ...){{column_name}}
:如果查询返回表格,将被列名替换{{$__interval}}
:将被查询的时间间隔替换{{time}}
:将被发送查询的时间替换。您可以使用{{time format}}
指定格式(参见 EMACS - 日期时间字符串格式){{time DD-MM-YYYY HH:mm:ss}}
:将查询时间格式化为DD-MM-YYYY HH:mm:ss
,例如01-01-2022 00:00:00
{{time HH:mm:ss}}
:将查询时间格式化为HH:mm:ss
,例如12:14:36
{{metric_name}}
:(针对 Prometheus)将被指标名称替换{{label:<label_name>}}
:(针对 Prometheus)按名称获取标签的值。必须存在于查询表达式中
您可以在同一字段中添加多个变量,例如 {{query_name}} - {{query_value}}
显示选项
您可以使用以下选项定制文本的外观
- 聚合:查询值的计算方法,用于阈值计算
- Last:(默认)获取时间范围内的最后一个值,由查询返回
- First:获取时间范围内的第一个值,由查询返回
- Max:获取时间范围内的最大值,由查询返回
- Min:获取时间范围内的最小值,由查询返回
- Sum:获取时间范围内的值总和,由查询返回
- Avg:获取时间范围内的平均值,由查询返回
- Count:获取时间范围内的值数量,由查询返回
- Delta:获取时间范围内的第一个值和最后一个值之间的差值,由查询返回
- 显示指标值:在卡片上显示查询的值
- 指标字体格式:设置指标文本的样式(粗体、斜体、下划线等)
- 指标单位:设置指标值的单位(例如
ms
,B
,Gbits/s
等)
阈值
您可以根据通过所选聚合计算出的查询值,定义阈值来改变颜色和严重性。
当查询值大于或等于阈值时,将计算阈值。
示例
query_value = 10
threshold_1 = 1 threshold_2 = 5 threshold_3 = 15 threshold_4 = 20
Oredered thresholds descending from the highest to the lowest
if query_value >= threshold_4: select_threshold = threshold_4 elif query_value >= threhold_3: select_threshold = threshold_3 elif query_value >= threshold_2: select_threshold = threshold_2 # <= in this example, this is the selected threshold elif query_value >= threshold_1: select_threshold = threshold_1 else: select_threshold = default
Explication
threshold_3 > query_value >= threshold_2
阈值由以下选项定义
- 颜色:使用颜色选择器设置卡片的颜色
- 严重性:当达到阈值时,在卡片上显示的文本
- 值:阈值(仅限数字)
覆盖字段
如果您想单独定制卡片,可以使用覆盖字段。
- 标题
- 副标题
- URL
- 在新标签页中打开 URL
- 聚合
- 指标单位
- 阈值
在 Grafana Cloud 上安装 Status Panel
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键完成;更新也一样。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
有关更多信息,请访问关于插件安装的文档。
在本地 Grafana 上安装
对于本地实例,插件通过简单的 CLI 命令进行安装和更新。插件不会自动更新,但当有更新可用时,您将在 Grafana 中收到通知。
1. 安装面板
使用 grafana-cli 工具从命令行安装 Status Panel
grafana-cli plugins install
插件将安装到您的 Grafana 插件目录;默认目录是 /var/lib/grafana/plugins。有关 cli 工具的更多信息。
2. 将面板添加到仪表盘
安装的面板会立即显示在 Grafana 主菜单的“仪表盘”部分,并且可以像 Grafana 中的任何其他核心面板一样添加。
要查看已安装面板列表,请单击主菜单中的插件项。核心面板和已安装面板都会显示。
更新日志
v1.1.0
新增
- 支持查询结果中的多个数字类型字段(表格)
- 当查询返回表格时,每个数字字段都被视为一个卡片(多个卡片)。
- 为每个数字字段计算阈值。
- 如果启用了“将查询聚合成单卡”,则来自所有查询的所有数字字段都会计算自己的阈值,并使用值更高的阈值来显示标题、指标、严重性等...
- 新的格式化字符串
{{column_name}}
用于在查询返回表格时显示列名(字段的 propname
)。 - 新的组件
FlipCardNoData
用于像FlipCard
一样显示“无数据”,但没有阈值背景颜色和严重性
变更
- 将从查询获取值的逻辑移至顶层
StatusPanel
组件,而不是FlipCard
中。这使得FlipCard
与数据无关,仅接受 props 中的聚合查询值。 - 将格式化字符串编译逻辑从
FlipCard
移至CardWrapper
(上方),使FlipCard
与字符串无关,仅将编译后的字符串作为 props 传递。 - 将“无数据时使用禁用颜色”(选项
isGrayOnNoData
)开关更改为“无数据时显示空白”(选项isNothingOnNoData
),以便在无数据时选择显示“无数据”文本(禁用此选项)或不显示任何内容(启用此选项) - 更改格式化字符串“labels”变量的获取方式。现在从返回字段的 prop
labels
获取标签。 - [性能改进] 改变
FlipButton
的显示方式,使用 CSS 属性代替useHover
hook。这一更改减少了StatusPanel
组件更新的次数,提升了性能。 - 在插件商店首次发布后,更改演示仪表盘中的插件 FQDN。
移除
- [遗留] 移除
useEventListener
hooks。未使用 - [遗留] 移除
useHover
hook。现已不再使用
v1.0.1
变更
- 更新 LICENSE 和 NOTICE 文件,更改代码所有者并提及原始代码所有者 (Grafana Labs)
- 升级
package.json
依赖项以使用 Grafana10.4.0
- 根据包升级修复端到端测试
v1.0.0
重大变更
使此插件更简单易用。该插件现在仅支持 number
类型的数据。该插件不适用于其他类型的数据。
新增
- 可定制的阈值(严重性颜色、严重性文本、阈值)。类似于 Grafana 默认选项中的阈值编辑器
- 选择要显示的指标单位(类似于 Grafana 默认选项中的单位选择器)
- 面板副标题(用于显示指标类别或您想要的任何内容)
- 面板标题和副标题可以使用格式化变量进行格式化(例如查询名称
{{query_name}}
、查询聚合值{{query_value}}
等)。 - 端到端测试
- CI/CD 流水线
变更
- 通过添加保存翻转状态的选项,修复了面板翻转状态无法保存的 bug
- 一个面板中的多个窗格
- 每个窗格对应一个查询
- 每个窗格共享相同的阈值、单位、标题和副标题
- 窗格采用网格布局 (flexbox)。
- 窗格大小(高度和宽度,以及字体大小)根据面板大小自适应
移除
- 定义了奇怪的阈值
- 警报系统
- 自动滚动功能
- 注释显示模式
- 使此插件使用不简单的原因。