警报规则允许您基于Prometheus表达式语言表达式定义警报条件,并将有关触发警报的通知发送到外部服务。 每当警报表达式在给定时间点生成一个或多个向量元素时,警报将计为这些元素的标签集的活动状态。

一、定义报警规则

警报规则在Prometheus中以与记录规则相同的方式配置。

带警报的示例规则文件将是:

groups:
- name: examplerules:- alert: HighErrorRateexpr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5for: 10mlabels:severity: pageannotations:summary: High request latency

可选的for子句使Prometheus在第一次遇到新的表达式输出向量元素和将此警告作为此元素的触发计数之间等待一段时间。 在这种情况下,Prometheus将在每次评估期间检查警报是否继续处于活动状态10分钟,然后再触发警报。 处于活动状态但尚未触发的元素处于暂挂状态。

labels子句允许指定要附加到警报的一组附加标签。 任何现有的冲突标签都将被覆盖。 标签值可以是模板化的。

annotations子句指定一组信息标签,可用于存储更长的附加信息,例如警报描述或Runbook链接。 注释值可以是模板化的。

二、模板

可以使用控制台模板模板化标签和注释值。 $labels变量保存警报实例的标签键/值对,$value保存警报实例的评估值。

# 要插入触发元素的标签值:
{{ $labels.<labelname> }}
# 要插入触发元素的数值表达式值:
{{ $value }}

例子:

groups:
- name: examplerules:# 对于任何无法访问> 5分钟的实例的警报。- alert: InstanceDownexpr: up == 0for: 5mlabels:severity: pageannotations:summary: "Instance {{ $labels.instance }} down"description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."# 对中值请求延迟> 1s的任何实例发出警报。- alert: APIHighRequestLatencyexpr: api_http_request_latencies_second{quantile="0.5"} > 1for: 10mannotations:summary: "High request latency on {{ $labels.instance }}"description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"
三、在运行时检查警报

要手动检查哪些警报处于活动状态(待处理或触发),请导航至Prometheus实例的"警报"选项卡。 这将显示每个定义的警报当前处于活动状态的确切标签集。

对于待处理和触发警报,Prometheus还存储ALERTS{alertname="<alert name>",alertstate ="pending|firing",<additional alert labels>}形式的合成时间序列。 只要警报处于指示的活动(挂起或触发)状态,样本值就会设置为1,并且当不再是这种情况时,系列会标记为过时。

四、发送提醒通知

普罗米修斯的警报规则很好地解决了现在的问题,但它们并不是一个完全成熟的通知解决方案。 需要另一层来在简单警报定义之上添加摘要,通知速率限制,静默和警报依赖性。 在普罗米修斯的生态系统中,Alertmanager承担了这一角色。 因此,Prometheus可以被配置为周期性地向Alertmanager实例发送关于警报状态的信息,然后该实例负责调度正确的通知。
Prometheus可以配置为通过其服务发现集成自动发现可用的Alertmanager实例。

五、链接

Prometheus官网地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus

Prometheus学习系列(十五)之预警规则相关推荐

  1. WorldWind学习系列十五:如何切割影像和DEM数据及其在WW中的应用配置

    原文转自:http://www.cnblogs.com/wuhenke/archive/2010/01/03/1638499.html WorldWind学习系列十四中我从代码上分析如何加载DEM数据 ...

  2. 【Python学习系列十五】pandas库DataFrame行列操作使用方法

    参考:http://pandas.pydata.org/pandas-docs/stable/api.html#dataframe data['w'] #选择表格中的'w'列,使用类字典属性,返回的是 ...

  3. Java学习系列(十五)Java面向对象之细谈线程、线程通信(下)

    竞争资源(共享资源):如果有多条线程需要并发访问.并修改某个对象,该对象就是"竞争资源".为了避免多个线程"自由竞争"修改共享资源所导致的不安全问题. 线程同步 ...

  4. Linux的基本学习(十五)——认识系统服务

    Linux的基本学习(十五)--认识系统服务 前言 继续学习Linux 什么是daemon与服务(service) 从CentOS 7.x开始,传统的init已经被抛弃,取而代之的是systemd 什 ...

  5. 数学之美 系列十五 繁与简 自然语言处理的几位精英

    数学之美 系列十五 繁与简 自然语言处理的几位精英 我在数学之美系列中一直强调的一个好方法就是简单.但是,事实上,自然语言处理中也有一些特例,比如有些学者将一个问题研究到极致,执著追求完善甚至可以说完 ...

  6. 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN

    目录 0. 前言 1. RNN 计算图 2. RNN 前向传播 3. RNN 反向传播 4. 导师驱动过程(teacher forcing) 5. 不同序列长度的 RNN 如果这篇文章对你有一点小小的 ...

  7. java学习记录十五:集合二Collections、Set、Map

    java学习记录十五:集合二 一.Collections工具类 一.解释 二.常用方法 1.打乱集合顺序 2.按照默认规则排序 3.按指定规则排序 4.批量添加元素 二.可变参数 一.解释 二.写法 ...

  8. Java学习 第十五天

    Java学习 第十五天 第一章 StringBuilder类 1.1 字符串的不可变 1.2 StringBuilder概述 1.3 构造方法 1.4 两个常用方法 1.4.1 append方法 1. ...

  9. 游戏策划学习第二十五天

    游戏策划学习第二十五天 5/25 1.计划做几期分析英雄联盟开发者日记的视频,从游戏设计者的角度去看问题. 目前第一期视频预计做厄斐琉斯的设计理念,尝试写了下稿子,整体思路比较乱,不过大体上是想以一个 ...

  10. ELK系列(十五)、Elasticsearch核心原理一篇全搞定

    目录 Lucene 介绍 核心术语 如何理解倒排索引? 检索方式 分段存储 段合并策略 Elasticsearch 核心概念 节点类型 集群状态 3C和脑裂 1.共识性(Consensus) 2.并发 ...

最新文章

  1. DevOps,到底是开发还是运维?
  2. Python中的元类及元类实现的单例模式
  3. 当医学影像遇见深度学习,MIDL 2020 论文征稿
  4. window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
  5. matlab编辑rayfile光源文件,rayfile网盘功能详解 rayfile网盘安装步骤及安装注意事项...
  6. asynchttpclient学习
  7. elasticsearch 1.1.0 mmseg 英文数字分词
  8. jquery 的一款比较好的Menu
  9. uniapp对象怎么获取值_Uniapp使用GoEasy实现websocket实时通讯
  10. java 获取url图片_java io流根据url读取图片
  11. 详谈软件工程之软件开发方法(一)
  12. 小米路由r2d论坛_小米路由器R2D拆机换3T紫盘
  13. 计算机有网络但打不开网页,手把手教你有网络但是打不开网页怎么办?
  14. Spring整合RabbitMQ(包含生产者和消费者)
  15. 磁盘阵列 vga_什么是VGA(视频图形阵列)?
  16. java实现word模板文件填充
  17. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,ubuntu批量修改文件名字(换动画资源必用)...
  18. 2020.8 复习 7-11 分钟秒钟的时间相减 //PTA
  19. 机器人genghis_家用机器人的未来
  20. 一文透析腾讯云云上攻防体系

热门文章

  1. C++课程设计报告——简易五子棋游戏
  2. 啥是佩奇?用 Python 画给你看
  3. Amet beatae provident.Optio non quo facilis iste.
  4. 《财务自由之路》的读书笔记总结4500字
  5. Android之JVM基础
  6. 离职中层解密乐视危机起爆点:手机业务巨亏
  7. 威联通nas怎么更换大硬盘_如何优雅无损的更换群晖硬盘
  8. 迈拓恢复出厂设置图解_电脑系统怎么重置呢?教你恢复出厂设置
  9. 关于kernel-devel、kernel-header和kernel src的区别
  10. java飘动_OpenGL -- 飘动的旗帜 (java)