在数字数据上发出警报 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在数字数据上发出警报

本文档主题专为支持 Grafana 9.x 版本的 Grafana 工作空间而设计。

有关支持 Grafana 版本 10.x 的 Grafana 工作空间,请参阅。在 Grafana 版本 10 中工作

有关支持 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}

正常