Grafana+Prometheus系统监控之webhook
Posted 小柒2012
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grafana+Prometheus系统监控之webhook相关的知识,希望对你有一定的参考价值。
概述
Webhook是一个API概念,并且变得越来越流行。我们能用事件描述的事物越多,webhook的作用范围也就越大。Webhook作为一个轻量的事件处理应用,正变得越来越有用。
准确的说webhoo是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。Webhook在数据产生时立即发送数据,也就是你能实时收到数据。这一种不同于典型的API,需要用了实时性需要足够快的轮询。这无论是对生产还是对消费者都是高效的,唯一的缺点是初始建立困难。
Webhook有时也被称为反向API,因为他提供了API规则,你需要设计要使用的API。Webhook将向你的应用发起http请求,典型的是post请求,应用程序由请求驱动。
配置
前两篇文章主要讲的是邮件和钉钉的警报通知方式,但是通知方式单一,并且依赖于第三方服务无法做集群处理。为了更加灵活方便并且高可用的实现我们的预警通知功能,这里我们自己实现Webhook功能。
前两篇看这里:
Grafana+Prometheus系统监控之邮件报警功能
Webhook实现看这里:
我们使用最近比较流行的spring-boot来实现这个功能,部分代码如下:
/**
* JSON数据格式
* body:{
* "imageUrl":"http://grafana.org/assets/img/blog/mixed_styles.png",
* "message":"Someone is testing the alert notification within grafana.",
* "ruleId":0,
* "ruleName":"Test notification",
* "ruleUrl":"http://grafana.52itstyle.com/",
* "state":"alerting",
* "title":"[Alerting] Test notification",
* "evalMatches":[
* {"value":100,"metric":"High value","tags":null},
* {"value":200,"metric":"Higher Value","tags":null}
* ]
* }
*/
@RequestMapping("/send")
public String webhook(@RequestBody String body) {
//处理预警信息(邮件、短信、钉钉)
logger.info("webhook警报系统,body:{}",body);
return "success";
}
源码
以上是关于Grafana+Prometheus系统监控之webhook的主要内容,如果未能解决你的问题,请参考以下文章
Grafana+Prometheus系统监控之SpringBoot
prometheus+grafana+consul+supervisor搭建监控系统之supervisor搭建
Grafana+Prometheus系统监控之webhook
监控工具之---Prometheus数据可视化Grafana