通过 API 快速创建 AlertManager silence
概述
通常我们要 silence 某个 AlertManager 的 alert 时,需要通过 UI 界面操作,如下图:

效率有点低,而且不够自动化,那么是否可以有一种办法快速创建 AlertManager silence 呢?
-- 有的,通过 API.
API Payload
v1
如下:
{
"matchers": [
{
"name": "alername1",
"value": ".*",
"isRegex": true
}
],
"startsAt": "2022-04-29T22:12:33.533Z",
"endsAt": "2022-04-29T23:11:44.603Z",
"createdBy": "api",
"comment": "Silence",
"status": {
"state": "active"
}
}
v2
{
"matchers": [
{
"name": "service",
"value": "rancher",
"isRegex": false,
"isEqual": true
},
{
"name": "alertname",
"value": "TargetDown",
"isRegex": false,
"isEqual": true
}
],
"startsAt": "2022-04-29T10:11:35.656Z",
"endsAt": "2022-04-29T12:11:35.656Z",
"createdBy": "Casey Cui",
"comment": "配置错误导致的误报",
"id": null
}
具体实现
curl 实现
Notes:
以 v1 api 为例
如下:
curl https://alertmanager.ewhisper.cn/api/v1/silences -d '{
"matchers": [
{
"name": "alername1",
"value": ".*",
"isRegex": true
}
],
"startsAt": "2022-04-29T22:12:33.533Z",
"endsAt": "2022-04-29T23:11:44.603Z",
"createdBy": "api",
"comment": "Silence",
"status": {
"state": "active"
}
}'
Notes:
在 K8S 集群内,地址一般为:http://alertmanager:9093
python 实现
如下:
#!/usr/bin/python3
import requests
import socket
import datetime
import time
res = requests.post("http://alertmanager:9093/api/v2/silences", json={
"matchers": [
{"name": "job", "value": "myjob", "isRegex": False},
{"name": "instance", "value": "{}:1234".format(socket.gethostname()), "isRegex": False},
],
"startsAt": datetime.datetime.utcfromtimestamp(time.time()).isoformat(),
"endsAt": datetime.datetime.utcfromtimestamp(time.time() + 4*3600).isoformat(),
"comment": "Backups on {}".format(socket.gethostname()),
"createdBy": "My backup script",
},
)
res.raise_for_status()
silenceId = res.json()["silenceID"]
移除 silence 的脚本:
res = requests.delete("http://alertmanager:9093/api/v2/silence/{}".format(silenceId))
res.raise_for_status()
EOF
通过 API 快速创建 AlertManager silence的更多相关文章
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 【百度地图API】如何快速创建带有标注的地图?——快速创建地图工具+如何标注商家
原文:[百度地图API]如何快速创建带有标注的地图?--快速创建地图工具+如何标注商家 摘要: 如果你不会程序,如果你不想写代码. 如果你想拥有一张自己的地图,如果你想在该地图上标注出你商店的位置. ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 测开大佬告诉你:如何5分钟快速创建restful风格的API接口-使用django restframework框架
一.思考❓❔ 1.创建API接口难吗? 软件测试工程师: 只测过API接口, 从没创建过 应该需要掌握一门后端开发语言和后端开发框架吧!? 脑容量有限,想想就可怕 2.如何创建API接口呢? 使用Dj ...
- (视频)《快速创建网站》 4.2 完结篇 – 应用运营vs.发射卫星,遥测(Telemetry) 技术
本文是<快速创建网站>系列的第10篇(完结篇),如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://devopshub.c ...
- (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)
本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用
guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection ...
- Html5 学习系列(五)Canvas绘图API快速入门(1)
引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...
- Java API 快速速查宝典
Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...
- Foundation框架 - 快速创建跨平台的网站页面原型
API参考:http://foundation.zurb.com/docs/ 作为网页设计和开发人员,我们面临着以下几个严峻的问题: 每天,人们用来上网的设备种类和数量都在不断上升. 为每种设备设计开 ...
随机推荐
- 【Filament】立方体贴图(6张图)
1 前言 本文通过一个立方体贴图的例子,讲解三维纹理贴图(子网格贴图)的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下. 读者如果对 Filament 不太熟悉,请回顾以下内容. F ...
- ubuntu22.04安装配置redis
本操作在虚拟机上 安装Redis 1)更新系统 sudo apt update sudo apt upgrade 2)安装Redis sudo apt install redis-server 3)测 ...
- linux基本知识汇总2(系统编程) 60000字汇总
/////////////进程/任务 -- task任何启动并运行程序的行为,都是由操作系统帮助我们将程序转换成进程 -- 进程:完成特定的任务 进程控制块:PCB(win) / task_struc ...
- 如何提高UI自动化稳定性?
1尽量使用相对路径的xpath表达式定位元素 2查找元素优先使用显示等待方式 3用例与用例之间避免产生依赖,用例可以单独运行 4用例执行结束之后要对测试场景进行还原,避免影响到其他用例的执行 5脚本执 ...
- C++ STL函数对象 仿函数
1 //STL函数对象 仿函数 2 #include<iostream> 3 #include<string> 4 5 using namespace std; 6 7 8 / ...
- Codeforces Round #851 (Div. 2) 题解
Codeforces Round #851 (Div. 2) 题解 A. One and Two 取 \(\log_2\),变成加号,前缀和枚举 \(s[i]=\dfrac{s[n]}{2}\). B ...
- EL1008E: Property or field 'timestamp' cannot be found on object of type 'java.util.HashMap' - maybe not public-请求springboot-后台报错
一.问题由来 自己在使用node.js写的前端项目访问springBoot访问的后端项目的时候,springboot项目中报这个错,抛出这个异常. 详细的错误信息如下: Servlet.service ...
- FreeRTOS教程3 中断管理
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...
- glibc 2.23 源码分析
1. 基础知识 1.1 Linux 进程内存布局 Linux 系统在装载 elf 格式的程序文件时,会调用 loader 把可执行文件中的各个段依次载入到从某一地址开始的空间中(载入地址取决于 lin ...
- Java Springboot javax.net.ssl.SSLException: Connection reset解决方案
接口设置HTTPS TLS1.2后,随机出现SSLException: Connection reset报错: javax.net.ssl.SSLException: Connection reset ...