每次出现错误时使用 prometheus 创建警报

2024-02-21

我是普罗米修斯和警报系统的新手。 我开发了一个微服务并添加了指标代码,以便在出现错误时获取增量总数。 现在我正在尝试创建一个警报,以便每当错误增加时,它应该标记出来并发送邮件。 但我无法针对这种情况形成正确的查询。我使用了诸如 error_total > 0 之类的东西来发送警报,但它每次都会起作用,因为计数将 > 0 ,除非我们手动重置它。


您正在寻找的是增加功能 https://prometheus.io/docs/prometheus/latest/querying/functions/#increase。只要前 15 分钟内出现错误,以下表达式就会触发错误:

expr: increase(my_error_metric[15m]) > 0
annotations:
  summary: "Hey! There were {{ $value }} errors in the last 15 minutes"

错误在微服务中很常见,并且针对每个错误发出警报通常难以管理。更常见的策略是仅在以下情况时发出警报错误率 https://prometheus.io/docs/prometheus/latest/querying/functions/#irate超过给定阈值(例如 5%):

expr: irate(my_error_metric[2m]) / irate(number_of_call[2m]) * 100 > 5

增加警报也可能意味着您可能会错过一些错误,因为警报是在错误上触发的,但在调查过程中又发生了另一个错误。不会有第二个警报,它将包含在第一个警报中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每次出现错误时使用 prometheus 创建警报 的相关文章

随机推荐

  • 安装 SDK 后如何配置 Android 模拟器

    我正在尝试在我的 64 位 Ubuntu 12 04 发行版上启动并运行 Android 模拟器 首先 我必须安装 ia32 libs 来解决我在之前 失败的 尝试中遇到的一些早期问题 然后我下载并安装了 64 位 Linux 发行版 我导
  • Mongoose:如何防止 mongodb 在数据库中保存重复的电子邮件记录

    我想让关键电子邮件在该集合中唯一 但我无法使其正常工作 这是我的服务器代码 Create a schema var userSchema new mongoose Schema email type String required true
  • 如何制作一个 HTML/JS 所见即所得编辑器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我尝试了许多不同的 Google 搜索 但一直无法找到有关如何实际创建所见即所得编辑器的最新教程 2006 年以后 我意识到已经有很多
  • 赋值运算符是否“需要”返回?

    根据C 标准 我可以确定内置变量的赋值运算符返回 原始值 吗 或者这个实现依赖于 但只是最流行的编译器实现了这个 是的 可以保证 5 17 赋值和复合赋值运算符 赋值运算符 和复合赋值运算符全部分组 右到左 全部都需要一个可修改的左值作为其
  • Smalltalk 中的 self 和 self 有什么区别?

    在 Smalltalk 中 方法体中经常出现两个术语 self and yourself 它们之间有什么区别 保留字self是一个伪变量 不能分配给它 它引用使用它的方法的当前接收者 另一方面yourself是一条消息 您可以发送给任何对象
  • 如何在Linux下构建Visual Studio解决方案?

    我一直使用 Windows 对 Linux 的经验非常有限 我的 Visual Studio 解决方案包含 5 个 C 项目 其中 4 个是静态库 一个是主应用程序 使用这些静态库 我想将其移动到 Ubuntu 我不使用任何特定于 Wind
  • Google Colab 中的 osmNX

    出于我的目的 我需要 Google Colab 中的 osmNX 以前有人这样做过吗 我使用以下命令 wget https repo anaconda com archive Anaconda3 2019 07 Linux x86 64 s
  • 如何导出 .xlsx 文件 C# ASP.NET MVC razor

    我想将数据导出到 xlsx文件 但我似乎只能导出到 xls 导出文件最简单的方法是什么 xlsx file 这是我用来导出到的代码 xls file GridView gv new GridView gv DataSource listCa
  • Windows Mobile 应用程序 - 通过 MMS 协议播放流?

    NOTE 这个问题被重新提出是因为我在上一个问题中不小心点击了社区维基 显然这并没有以声誉的形式提供足够的激励来让人们回答这个问题 这是旧问题的链接 请不要重复这些答案 无论如何它们并不完全有帮助 链接到原始问题 https stackov
  • 将分支合并到目录 GIT

    我有一个名为Project 然后我有一个名为payment其中包含应用程序的所有项目文件 我想合并分支payment进入我的主分支 但在文件夹 目录内 换句话说 项目分支 gt 支付申请 文件夹 gt 支付分支文件 第一次 git chec
  • C++ 中嵌套类型/类的前向声明

    我最近陷入了这样的情况 class A public typedef struct class B C D someField class C public typedef struct class D A B someField 通常你可
  • 使用 anaconda python3 安装 opencv 3.1?

    如何使用 anaconda python3 安装 opencv opencv 获取了我的 python3 可执行文件 Python 2 Interpreter usr bin python2 7 ver 2 7 12 Libraries u
  • Vue Router 推送错误:避免了到当前位置的冗余导航

    有没有办法避免错误 避免冗余导航到当前位置 我需要进行分页 方法如下 handlePageChange page number void const query this route query page page toString thi
  • ActiveJob GlobalID 和内存中 ActiveRecord 对象

    我正在使用排队系统 Sidekiq 并且希望迁移到 ActiveJob 以获得性能优势 因为不必每次将 ActiveRecord 对象传递给工作人员时都查询数据库 我想询问并确认 因为我不是 100 确定 但我的理解是 当 ActiveJo
  • 使用依赖属性和样式触发器时,“...不是 DependencyProperty”

    在我的用户控件中 public ODIF DeviceChannel Channel get return ODIF DeviceChannel GetValue ChannelDP set SetValue ChannelDP value
  • TableDnD onDrop 事件未触发

    我确信这是非常简单的事情 通常都是如此 sort table tableDnD onDragClass dnd drag onDragStart function table row console log start drag onDro
  • 如何从标准输入中读取一行,并将其余行传递给子进程?

    If you readline from sys stdin 将其余部分传递给子进程似乎不起作用 import subprocess import sys header sys stdin buffer readline print hea
  • 如何在servlet中获取客户端的远程地址?

    有什么办法可以获取到服务器的客户端的原始IP地址吗 我可以用request getRemoteAddr 但我似乎总是获得代理或网络服务器的IP 我想知道客户端用于连接到我的 IP 地址 无论如何 我能得到它吗 尝试这个 public sta
  • Visual Studio 2012 是否利用所有可用的 CPU 内核?

    我计划在 Visual Studio 2012 和 Windows 7 64 位下构建一台新的非常快的开发计算机 我正在购买所有快速组件 例如 SSD 和 16G RAM 我想知道是否视觉工作室2012旨在利用所有可用的 CPU 内核 我正
  • 每次出现错误时使用 prometheus 创建警报

    我是普罗米修斯和警报系统的新手 我开发了一个微服务并添加了指标代码 以便在出现错误时获取增量总数 现在我正在尝试创建一个警报 以便每当错误增加时 它应该标记出来并发送邮件 但我无法针对这种情况形成正确的查询 我使用了诸如 error tot