插件 〉Status Panel


开发者

Tech Ben

注册以接收不定期产品新闻和更新



面板
社区

Status Panel

  • 概述
  • 安装
  • 更新日志
  • 相关内容

Status Panel

Grafana Version Pipeline-Test-e2e Grafana-Plugin-Validator

一个用于显示资源状态的简单插件。

概述

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

有关更多信息,请访问关于插件安装的文档。

更新日志

v1.1.0

新增

  • 支持查询结果中的多个数字类型字段(表格)
    • 当查询返回表格时,每个数字字段都被视为一个卡片(多个卡片)。
    • 为每个数字字段计算阈值。
    • 如果启用了“将查询聚合成单卡”,则来自所有查询的所有数字字段都会计算自己的阈值,并使用值更高的阈值来显示标题、指标、严重性等...
  • 新的格式化字符串 {{column_name}} 用于在查询返回表格时显示列名(字段的 prop name)。
  • 新的组件 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 依赖项以使用 Grafana 10.4.0
  • 根据包升级修复端到端测试

v1.0.0

重大变更

使此插件更简单易用。该插件现在仅支持 number 类型的数据。该插件不适用于其他类型的数据。

新增

  • 可定制的阈值(严重性颜色、严重性文本、阈值)。类似于 Grafana 默认选项中的阈值编辑器
  • 选择要显示的指标单位(类似于 Grafana 默认选项中的单位选择器)
  • 面板副标题(用于显示指标类别或您想要的任何内容)
  • 面板标题和副标题可以使用格式化变量进行格式化(例如查询名称 {{query_name}}、查询聚合值 {{query_value}} 等)。
  • 端到端测试
  • CI/CD 流水线

变更

  • 通过添加保存翻转状态的选项,修复了面板翻转状态无法保存的 bug
  • 一个面板中的多个窗格
    • 每个窗格对应一个查询
    • 每个窗格共享相同的阈值、单位、标题和副标题
    • 窗格采用网格布局 (flexbox)。
    • 窗格大小(高度和宽度,以及字体大小)根据面板大小自适应

移除

  • 定义了奇怪的阈值
  • 警报系统
  • 自动滚动功能
  • 注释显示模式
  • 使此插件使用不简单的原因。

Fork 自 Grafana_Status_panel v2.0.0