当前位置: 首页 > news >正文

grafana v10.1版本设置告警

1. 相关概念概述

如图所示,点击切换菜单标志,可以看到警报相关子选项。

  • 警报规则:通过PromQL语句定义告警规则,即达到怎样的状态触发告警。

  • 联络点: 设置当警报规则实例触发时,如何通知联系人,支持的方式有发送邮件,钉钉机器人消息,slack,webhook等。

  • 通过策略: 定义警报如何路由到联络点。例如如何匹配告警示例,设置关联联络点,设置group,通知时间控制。

  • 静默:设置静默时间段,再指定的时间阻止一个或多个警报通知。

  • 组:查看来自 Alertmanager(警报管理器)实例的分组警报。

  • 管理员: Alertmanager配置设置与查看。

2. 设置告警

设置告警没有固定的流程,我们按照菜单从上至下的顺序依次进行创建和设置。

2.1 创建警报规则

2.1.1 Rule name

我们设置一个发现有pod异常的警报规则,设置警报规则名:pod_abnormal

2.1.2 Define query and alert condition

设置查询语句和警报触发条件。如图所示:

选择数据源:Prometheus

查询语句为:cluster:pod_abnormal:sum,这是一个prometheus的recording rule返回异常的pod数量,这个语句返回内容没有label所以label fillters不设置。grafana页面功能很全,设置其他告警内容的话可以根据页面提示选择需要的指标和label过滤所需的数据。

grafana同一个警报规则下支持设置多个数据源的数据查询,点击Add query即可添加另一个数据源及查询语句。

然后设置Expressions(表达式),指定警报触发的条件,Expressions支持一些类型:

Reduce:  将所选时间范围内的时间序列值聚合为单个值,支持的Function包含Min、Max、Last等具体含义可看页面解释。

Math:对时间序列和数字数据执行自由形式的数学函数/操作。可用于预处理时间序列数据或为数字数据定义警报条件。

Resample:将时间范围重新对齐到一组新的时间戳,这在比较来自不同数据源的时间序列数据时非常有用,否则时间戳不会对齐。其中包括Downsample(下采样)和Upsample(上采样)。

Downsample(下采样)是将高频率数据转换为低频率数据的过程。在Grafana中,可以通过Downsample选项将原始数据按照指定的时间间隔进行聚合,以得到更低频率的数据。例如,可以将每分钟的数据Downsample为每小时的数据,以减少数据的噪声和波动。Downsample通常用于数据预处理、数据可视化和数据压缩等场景。

Upsample(上采样)是将低频率数据转换为高频率数据的过程。在Grafana中,可以通过Upsample选项将原始数据按照指定的时间间隔进行插值,以得到更高频率的数据。例如,可以将每小时的数据Upsample为每分钟的数据,以获取更详细的信息。Upsample通常用于数据可视化和数据分析等场景。

Threshold:检查是否有任何时间序列数据符合阈值条件。阈值表达式允许您比较两个单个值。当条件为假时返回0,如果条件为真则返回1。以下阈值函数可用:

  • Is above (x > y)

  • Is below (x < y)

  • Is within range (x > y1 AND x < y2)

  • Is outside range (x < y1 AND x > y2)

Classic condition:检查是否有任何时间序列数据与警报条件匹配,无论有多少时间序列满足条件,经典的条件表达式查询总是只产生一个警报实例。经典条件的存在主要是出于兼容性的原因,应该尽可能避免。

2.1.3 Set alert evaluation behavior

设置评估行为:

Folder:包括设置警报规则所属目录,

Evaluation group:设置警报规则评估组。Evaluation group可以选择已有组或者新建组,新建组可以设置组名和评估时间间隔。

Pending period:在警报规则触发之前,警报规则可能违反条件的时间段。可以设置合适的时间,防止误触告警。

2.1.4 Add annotations

可以添加一些注解在告警通知,例如触发告警的原因,告警规则的消息描述等。

Runbook URL功能允许将警报规则与相关的运行手册(runbook)关联起来。运行手册是一个包含有关如何处理特定警报的详细信息的网页。通过提供Runbook URL,可以让团队成员在收到警报时快速访问相关的运行手册,并按照其中的指导来解决问题。

以下是Grafana中Runbook URL的作用和使用场景:

  1. 提供警报处理指南:运行手册通常包含有关如何诊断和解决特定警报的详细信息。通过提供Runbook URL,可以让团队成员在收到警报时快速访问这些指南,并按照其中的指导来解决问题。

  2. 促进团队协作:在处理警报时,团队成员通常需要协作并共享信息。通过提供Runbook URL,可以让团队成员轻松访问共享的运行手册,并在其中记录和处理警报的相关信息。

  3. 提高效率:处理警报通常需要快速而准确地采取行动。通过提供Runbook URL,可以让团队成员避免在查找和处理警报时浪费时间,从而提高工作效率。

  4. 监控和报告:运行手册通常包含有关警报的监控和报告信息。通过提供Runbook URL,可以让团队成员轻松访问这些信息,并更好地了解警报的状态和趋势。

2.1.5 Configure notifications

添加自定义标签来改变告警通知的路由方式。通知策略根据标签匹配到相关的警报规则,进而发送告警通知。

此处我们设置pod=abnormal

2.1.6 保存退出

2.2 联络点

联络点页面包含创建联络点和创建通知模板两个部分,因为创建联络点是需要引用通知模板,所以我们先创建通知没模板,然后在创建联络点。

2.2.1 创建通知模板

创建通知模板内容很多,很灵活可参考官方文档,我们创建一个简单的例子:

Template name : 模板名,PodAbnormal

Payload data:告警实例的具体内容,通过Select alert instances可以选择添加已有告警,实例内容数据用于预览创建的告警模板生成的实际内容。

Content: 模板具体的内容,使用go模板语法实现:

{{ define "PodAbnormal.title" }}
{{ len .Alerts.Firing }} firing alert(s), {{ len .Alerts.Resolved }} resolved alert(s)
{{ end }}
{{ define "PodAbnormal.message" }}{{- if gt (len .Alerts.Firing) 0 -}}{{ range $i, $alert := .Alerts.Firing }}[告警项目]:{{ index $alert.Labels "alertname" }}[告警详情]:{{ index $alert.Annotations "description" }}[触发时间]:{{ (.StartsAt).Format "2006-01-02 15:04:05" }}{{ end }}{{- end }}{{- if gt (len .Alerts.Resolved) 0 -}}{{ range $i, $alert := .Alerts.Resolved }}[项目]:{{ index $alert.Labels "alertname" }}[告警详情]:{{ index $alert.Annotations "description" }}[状态]:恢复正常[开始]:{{ (.StartsAt).Format "2006-01-02 15:04:05" }}[恢复]:{{ (.EndsAt).Format "2006-01-02 15:04:05" }}{{ end }}{{- end }}
{{ end }}

2.2.2 创建联络点

点击Add contact point进入添加联络点页面:

Name: 联络点的名字。

Integration:选择联络点类型,支持钉钉,Email, Slack等等。此处示例设置钉钉机器人。

Optional DingDing settings:钉钉消息相关设置

  • MessageType: 支持Link和ActionCard两种类型。

  • Title:设置标题,可以直接输如或者引用已创建的模板内容

  • message: 设置消息内容,可以直接输如或者引用已创建的模板内容

Notification settings:是否禁用当告警状态返回false时发送的解析消息[OK]

2.2.3 保存退出

点击 save contact point

2.3 通知策略

通知策略用来确定警报如何路由到联络点。

可以看到已有一个Default policy,Default policy会路由所有的告警示例,所有的策略都是基于Default policy或者他的子策略的,策略是树状方式路由的。子策略可以覆盖父策略的组定义,及时间控制策略。可以通过label细化父策略的匹配范围。

2.3.1 创建通知策略

点击默认策略的New nested policy进入策略创建页面:

Matching labels:设置匹配警告规则的标签,与2.1.5相同设置为pod=abnormal。

Contact point:联络点选择上一节创建的DingTalk。

Continue matching subsequent sibling nodes:选择是否继续匹配子策略。

Override grouping:设置是否覆写父策略分组信息。

Override general timings:设置是否覆写父策略警报时间控制设置。

Mute timings:设置静默时间,引用静默时间需要提前创建好静默。

2.3.2 保存退出

点击Save policy。

3. 收到告警消息

4. 静默

静默用来设置在指定时间范围内即使有告警示例也不发送告警消息。

4.1 创建静默

点击Create silence进入创建静默页面:

Silence start and end:设置静默的起止时间段。

Matching labels:设置匹配的警报示例,同样这里设置为pod=abnormal。

Comment :给静默添加信息。

Affected alert instances:预览此静默影响到的Alerts。

4.2 保存退出

点击Save slience.

相关文章:

grafana v10.1版本设置告警

1. 相关概念概述 如图所示&#xff0c;点击切换菜单标志&#xff0c;可以看到警报相关子选项。 警报规则&#xff1a;通过PromQL语句定义告警规则&#xff0c;即达到怎样的状态触发告警。 联络点&#xff1a; 设置当警报规则实例触发时&#xff0c;如何通知联系人&#xff0c;…...

Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

本文主要介绍了PythonRequestsPyTestExcelAllure 接口自动化测试实战&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值&#xff0c;需要的朋友们下面随着小编来一起学习学习吧 Unittest是Python标准库中自带的单元测试框架…...

日志分析系统——ELK

目录 一、ELK概述 ELK的组成 1、ElasticSearch 2、Logstash 3、Kiabana 完整日志采集系统基本特征 ELK的工作原理 二、ELK的部署 1、环境准备 2、部署ElasticSearch软件 3、安装Elasticsearch-head插件 4、Logstash部署 5、Kibana部署 三、FilebeatELK部署 1、安…...

Ubuntu小知识总结

Ubuntu相关的小知识总结 一、Ubuntu系统下修改用户开机密码二、Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件的详细方法问题描述Vmware tools灰色不能安装解决方法小知识点&#xff1a;MarkDown的空格 三、Ubuntu虚拟机网络无法连接的几种解决方法1.重启网络编辑器2. 重启虚…...

2023年全球市场新能源汽车车载充电器总体规模、主要生产商、主要地区、产品和应用细分研究报告

按收入计&#xff0c;2022年全球新能源汽车车载充电器收入大约 百万美元&#xff0c;预计2029年达到 百万美元&#xff0c;2023至2029期间&#xff0c;年复合增长率CAGR为 %。同时2022年全球新能源汽车车载充电器销量大约 &#xff0c;预计2029年将达到 。2022年中国市场规模大…...

基于stm32控制的ESP8266在设备模式下通讯

一、文章中要用的指令 指令作用ATUART115200,8,1,0,0之前的51通讯是9600&#xff0c;这里的321用的是115200&#xff0c;需要改一下波特率ATCWMODEXX是1代表station&#xff08;设备&#xff09;模式 &#xff0c;X是2代表AP&#xff08;路由&#xff09;模式 &#xff0c;X是…...

用PHP组合数组,生成笛卡尔积。写几个例子

#创作灵感# [红色&#xff0c;白色&#xff0c;黄色&#xff0c;蓝色] [128G,256G,512G] [国行,港版,美版&#xff0c;韩版] 用PHP组合数组&#xff0c;生成笛卡尔积。写几个例子 你可以使用嵌套的循环来生成这些数组的笛卡尔积。以下是一些示例代码&#xff1a; // 示例…...

软设上午题错题知识点7

软设上午题错题知识点7 1、数据流图摆脱系统的物理内容&#xff0c;在逻辑上描述系统的功能、输入、输出和数据存储等&#xff0c;是系统逻辑模型的重要组成部分。 2、HTTPS&#xff08;Secure Hypertext Transfer Protocol&#xff09;安全超文本传输协议。 它是一个安全通信…...

让uniGUI支持https

今天在专家的帮助下&#xff0c;成功的让uniGUI支持https了。 首先&#xff0c;去申请个**的证书。我同事去阿里申请的&#xff0c;申请回是一个zip文件&#xff0c;里面有两个文件&#xff0c;一个扩展是per&#xff0c;一个key 然后&#xff0c;把这两个证书文件放到uniGUI…...

iPhone怎么导出微信聊天记录?3个值得收藏的方法

随着时间的推移&#xff0c;微信占用的内存空间会“膨胀”得越来越大。当手机内存不足时&#xff0c;清理微信中的聊天记录是一个可行的方法。但是很多小伙伴觉得有些重要的聊天记录还有用&#xff0c;可能以后需要进行查看。 因此&#xff0c;他们想将一些聊天记录进行导出或…...

【Proteus仿真】【STM32单片机】自动饲养控制系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1604显示模块、红外传感器、有害气体检测模块、PCF8591 ADC模块&#xff0c;蜂鸣器、DHT11温湿度、SG90舵机、风扇加热加湿等。 主要功能&a…...

【设计模式】模板方法模式

模板方法模式 1. 什么是模板方法 模板方法模式&#xff1a;定义一个操作中的算法骨架&#xff08;父类&#xff09;&#xff0c;而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构来重定义该算法的 2. 什么时候使用模板方法 实现一些操作时&#xff0c…...

c语言进制的转换二进制转换10进制

c语言进制的转换之二进制转换10进制 c语言的进制的转换 c语言进制的转换之二进制转换10进制一、二进制转换10进制的方法二、10进制程序打印 一、二进制转换10进制的方法 二进制&#xff1a; 二进制逢二进一&#xff0c;所有的数组是0、1组成 十进制转二进制&#xff1a; 除二反…...

C++ 纠错题总结2

1、for循环中的判断语句: 要注意初始赋值、< 还是 < for(int i 0; i < n; i) 2、cin.getline(char[], int, char) 注意&#xff1a;第二个参数为不是char[]的有效元素个数&#xff0c;因为最后一个元素位置要用来存储 \0 3、函数形参有默认值的&#xff0c;有默认…...

Jmeter性能 —— 事务控制器

统计性能测试结果一定会关注TPS&#xff0c;TPS表示&#xff1a;每秒处理事务数&#xff0c;JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的事务控制器将多个请求统计为一个事务。 1、添加事务控制器 2、事务控制器参数说明 Generate parent sample&#xff1a;如…...

Android C/C++ native编程NDK开发中logcat的使用

Android C/C native编程NDK开发中logcat的使用 前言具体用法 前言 在NDK开发过程中&#xff0c;C/C层&#xff0c;需要对代码进行一些调试&#xff0c;日志打印是我们解决异常或崩溃的重要手段&#xff0c;这里我就简单介绍下日志打印三步走。 首先我们先看下官方文档关于日志…...

什么是美颜SDK?深入了解直播实时美颜SDK

美颜已经成为了现代社交媒体和直播应用中的重要元素&#xff0c;它使用户能够在拍摄自拍照片或进行直播时改善其外貌特征。美颜技术的普及离不开美颜SDK&#xff08;软件开发工具包&#xff09;&#xff0c;特别是在直播应用中&#xff0c;直播实时美颜SDK正变得越来越流行。在…...

TensorFlow2从磁盘读取图片数据集的示例(tf.data.Dataset.list_files)

import os import warnings warnings.filterwarnings("ignore") import tensorflow as tf from tensorflow.keras.optimizers import Adam from tensorflow.keras.applications.resnet import ResNet50 from pathlib import Path import numpy as np#数据所在文件夹 …...

Jmeter(九):jmeter_逻辑控制器与HTTP Cookie管理器详解

Jmeter&#xff1a;jmeter_逻辑控制器_事务控制器 事务 性能测试中&#xff0c;事务指的是从端到端&#xff0c;一个完整的操作过程&#xff0c;比如一次登录、一次 筛选条件查询&#xff0c;一次支付等&#xff1b;技术上讲&#xff1a;事务就是由1个或多个请求组成的 事务…...

CVPR2023优秀论文 | AIGC伪造图像鉴别算法泛化性缺失问题分析

作者 | 搜索内容技术部 导读 深度伪造检测算法无法检出未知伪造算法生成的攻击数据。以往算法采取手动建模伪造特征的方式提升模型泛化性&#xff0c;然而这种方式限制了算法可行域&#xff0c;影响了模型泛化性进一步提升&#xff0c;同时这类方法参数量巨大&#xff0c;无法满…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...