;报警;探索Grafana Alerting;对数值数据发出警报

对数值数据发出警报

本主题描述后端引擎如何评估Grafana管理的警报,以及Grafana如何处理数字(而不是时间序列)数据上的警报。

预警评估

Grafana托管警报查询以下启用了警报的后端数据源:

  • 内置数据源或由Grafana开发和维护的数据源:石墨普罗米修斯洛基InfluxDBElasticsearch谷歌云监控CloudwatchAzure监控MySQLPostgreSQL该软件OpenTSDB甲骨文,Azure监控
  • 社区开发的后端数据源启用了警报(后端而且报警属性中设置plugin.json

来自警报引擎的度量

警报引擎发布关于自身的一些内部指标。你可以阅读更多关于Grafana如何出版的信息内部指标.也看到,查看警报规则及其当前状态

指标名称 类型 描述
grafana_alerting_alerts 每个州有多少个警报
grafana_alerting_request_duration 柱状图 报警API请求的直方图
grafana_alerting_active_configurations 用于grafana托管警报的活动的、非默认的Alertmanager配置的数量
grafana_alerting_rule_evaluations_total 计数器 规则计算的总数
grafana_alerting_rule_evaluation_failures_total 计数器 规则评估失败的总数
grafana_alerting_rule_evaluation_duration 总结 规则执行的持续时间
grafana_alerting_rule_group_rules 规则的数量

对数值数据发出警报

在某些数据源中,非时间序列的数值数据可以直接发出警报,或传递到服务器端表达式(SSE)。这允许在数据源中提高处理和结果效率,还可以简化警报规则。当对数值数据而不是时间序列数据进行警报时,不需要将每个标记的时间序列减少为单个数字。相反,标记的数字返回给Grafana。

表格数据

查询表格数据的后端数据源支持此特性:

  • SQL数据源,如MySQL、Postgres、MSSQL、Oracle等。
  • 基于Azure Kusto的服务:Azure Monitor(日志)、Azure Monitor (Azure资源图)和Azure Data Explorer。

使用Grafana托管警报或SSE的查询被认为是数字数据源,如果:

  • 在数据源查询中将“Format AS”选项设置为“Table”。
  • 从查询返回到Grafana的表响应只包括一个数字列(例如int、double、float)和可选的附加字符串列。

如果有字符串列,那么这些列就成为标签。列的名称成为标签名称,每一行的值成为相应标签的值。如果返回多行,那么每一行都应该唯一标识其标签。

例子

对于一个名为“DiskSpace”的MySQL表:

时间 宿主 磁盘 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的Table响应:

宿主 磁盘 PercentFree
web1 /等 3.
web2 / var 4
web3 / var 0

当此查询用作条件在警报规则中,非零将发出警报。结果,产生了三个警报实例:

标签 状态
{主机= web1,磁盘= /等} 报警
{主机= web2磁盘= / var} 报警
{主机= web3磁盘= / var} 正常的