本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在数字数据上发出警报
本文档主题专为支持 Grafana 版本 10.x 的 Grafana 工作空间而设计。
有关支持 Grafana 9.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 9 中工作
有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作
本主题介绍 Grafana 如何处理数字数据而不是时间序列数据的警报。
在某些数据源中,可以直接提醒非时间序列的数值数据,也可以将其传递到服务器端表达式 (SSE) 中。这允许在数据源中进行更多处理并提高效率,还可以简化警报规则。当针对数字数据而不是时间序列数据发出警报时,无需将每个已标记的时间序列简化为一个数字。相反,标有标签的数字会返回给 Grafana。
表格数据
查询表格数据的后端数据源支持此功能:
-
SQL 数据源,例如 MySQL、Postgres、MSSQL 和 Oracle。
-
基于 Azure Kusto 的服务:Azure 监视器(日志)、Azure 监视器(Azure 资源图)和 Azure 数据资源管理器。
在以下情况下,使用 Grafana 托管警报或 SSE 的查询被视为这些数据源的数字查询:
-
在数据源查询中,“格式为” 选项设置为 “表”。
-
通过查询返回到 Grafana 的表响应仅包含一个数字(例如 int、double、float)列,以及可选的其他字符串列。
如果存在字符串列,则这些列将成为标签。列的名称成为标签名称,每行的值成为相应标签的值。如果返回多行,则应唯一标识每行的标签。
示例
对于名为 “DiskSpace” 的 MySQL 表:
时间 | Host | 磁盘 | PercentFree |
---|---|---|---|
2021 年 6 月 7 日 |
web1 |
/等等 |
3 |
2021 年 6 月 7 日 |
web2 |
/var |
4 |
2021 年 6 月 7 日 |
web3 |
/var |
8 |
... |
... |
... |
... |
您可以按时查询数据筛选,但无需将时间序列返回给 Grafana。例如,当可用空间低于 5% 时,将按主机、磁盘触发的警报:
SELECT Host , Disk , CASE WHEN PercentFree < 5.0 THEN PercentFree ELSE 0 END FROM ( SELECT Host, Disk, Avg(PercentFree) FROM DiskSpace Group By Host, Disk Where __timeFilter(Time)
此查询返回对 Grafana 的以下表响应:
Host | 磁盘 | PercentFree |
---|---|---|
web1 |
/等等 |
3 |
web2 |
/var |
4 |
web3 |
/var |
0 |
当此查询用作警报规则中的条件时,非零值将发出警报。因此,生成了三个警报实例:
标签 | Status |
---|---|
{host=Web1、disk=/等} |
提示 |
{host=Web2,disk=/var} |
提示 |
{host=Web3,disk=/var} |
正常 |