概述

通常我们要 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的更多相关文章

  1. 通过beego快速创建一个Restful风格API项目及API文档自动化

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  2. 【百度地图API】如何快速创建带有标注的地图?——快速创建地图工具+如何标注商家

    原文:[百度地图API]如何快速创建带有标注的地图?--快速创建地图工具+如何标注商家 摘要: 如果你不会程序,如果你不想写代码. 如果你想拥有一张自己的地图,如果你想在该地图上标注出你商店的位置. ...

  3. 通过beego快速创建一个Restful风格API项目及API文档自动化(转)

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  4. 测开大佬告诉你:如何5分钟快速创建restful风格的API接口-使用django restframework框架

    一.思考❓❔ 1.创建API接口难吗? 软件测试工程师: 只测过API接口, 从没创建过 应该需要掌握一门后端开发语言和后端开发框架吧!? 脑容量有限,想想就可怕 2.如何创建API接口呢? 使用Dj ...

  5. (视频)《快速创建网站》 4.2 完结篇 – 应用运营vs.发射卫星,遥测(Telemetry) 技术

    本文是<快速创建网站>系列的第10篇(完结篇),如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://devopshub.c ...

  6. (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)

    本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  7. guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用

    guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection ...

  8. Html5 学习系列(五)Canvas绘图API快速入门(1)

    引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...

  9. Java API 快速速查宝典

    Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...

  10. Foundation框架 - 快速创建跨平台的网站页面原型

    API参考:http://foundation.zurb.com/docs/ 作为网页设计和开发人员,我们面临着以下几个严峻的问题: 每天,人们用来上网的设备种类和数量都在不断上升. 为每种设备设计开 ...

随机推荐

  1. vscodeC++生成配置文件

    参考 https://www.cnblogs.com/harrypotterisdead/p/14207866.html 和 https://www.cnblogs.com/heyiping/p/14 ...

  2. XAF新手入门 - 数据字典示例

    前言 通过前面文章的介绍,大家应该对模块与类型信息子系统有所了解,再通过一个示例来加深大家对它的理解. 在准备写这个系列文章之前,就准备是概念+示例的组合,这样大家对概念的理解会更深刻.之前的规划是在 ...

  3. git 撤销本地 git提交的commit记录 (git reset --hard ID)

    git 撤销本地 git提交的commit记录 (git reset --hard ID) ID的获取方法 这个id,就是你要退回的那个id,我这里截图的时候已经回退了,正常是你提错了的下面那个git ...

  4. Java/Kotlin 密码复杂规则校验

    原文地址: Java/Kotlin 密码复杂度校验 | Stars-One的杂货小窝 每次有那个密码复杂校验,不会写正则表达式,每次都去搜,但有时候校验的条件又是奇奇怪怪的,百度都搜不到 找到了个代码 ...

  5. 手动将jar包安装到本地仓库并使用tomcat运行

    参考,欢迎点击原文:https://www.cnblogs.com/panchanggui/p/10696458.html 公司有个老项目是spring的,要我们自己本地安装,我发现我maven一直报 ...

  6. Spring Boot 实现各种参数校验(附项目源码)

    本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底! 项目源码:spring-validation 一.简单使用 Java API规范(JSR303)定义了Be ...

  7. Java 学习分享

    建议语言入门可以先看看视频,学习网站可以是github,极客时间,infoQ等,然后去看书深入研究学习.学习最有效的方式一定是自己动手写代码,而不是看别人的代码,自己下载Intelli Idea多敲敲 ...

  8. Java-求根号n

    平方,开根号在java中是很简单的,Math.sqrt(double n)或者 Math.pow(double a, double b),求a的b次方.但是我们可以自己想想,这些方法到底是怎么实现的. ...

  9. 三维模型OBJ格式轻量化压缩在大规模场景的加载和渲染的作用分析

    三维模型OBJ格式轻量化压缩在大规模场景的加载和渲染的作用分析 OBJ格式是一种常用的三维模型文件格式,它存储了三维模型的几何信息和纹理坐标等相关属性.在大规模场景中加载和渲染三维模型时,OBJ格式的 ...

  10. HDU 2045:不容易系列之(3)—— LELE的RPG难题(动态规划)

    一.原题链接 Problem - 2045 (hdu.edu.cn) 二.题面 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole&quo ...