以syslog形式推送告警信息到UMP平台--主要为接口思路

2024-03-29 18:44

本文主要是介绍以syslog形式推送告警信息到UMP平台--主要为接口思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

客户需求,根据当前时间获取到的接口返回值中的关键字段的数值进行判断,当超过阈值时推送可恢复告警,推送一次即可,待数据正常时推送告警恢复,工作日8点到18点执行。【代码还在整理中】

问题分析

  1. 告警通知:客户UMP平台设置监控策略,我要做的就是把告警信息推送到客户的UMP平台,后续由UMP平台短信通知给客户。
  2. 推送告警:通过SocketClientUdp连接,Handler.sendMessage形式推送syslog信息。
  3. syslog格式,根据客户提供模板,因为客户要根据syslog里的字段来制定短信通知策略。

处理逻辑

开头说的可恢复告警,是指当超过阈值时推送告警,等阈值正常还要推送告警恢复。
本次未要求对接口做告警策略,即如第三方接口调用有问题时我们不做处理。 1

Level 1Level 2Level 3Level 4Level 5Level 6Level 7Level 8
接口中是否有数据打印日志:接口无数据。
返回值是否有告警?无,此时的key值是多少?值为0,打印日志:接口数据正常,
值为1,打印日志 :接口数据无告警,库中告警数据恢复,Handler.sendMessage("告警恢复"),同时清理表数据。
有,此时的key值是多少?值为0,打印日志:接口数据有告警,Handler.sendMessage("推送告警"),写入数据库。
值为1库里是否有本次接口中告警数据将不包含的部分筛选出一个list里,打印日志,Handler.sendMessage("推送告警"),写入数据库。
打印日志:此条数据重复。
本次接口告警中是否有库中数据打印日志:推送告警恢复,Handler.sendMessage("告警恢复"),将此条数据从数据库中删除。
打印日志:有未恢复告警。
数据库是否有告警key=0
取数data,并key=1。


  1. 对接口做策略调整时的处理逻辑。
    (1)接口返回是否正常。
    (2)接口返回值中的数据长度是否正常。 ↩︎

当前接口!=null
Level 1Level 2Level 3Level 4Level 5
是,不为null。当前ERROR_DATA的值是否>0ERROR_DATA=0,打印日志:目前接口正常,可推送告警回复。Handler.sendMessage("推送告警恢复syslog--接口数据")
打印日志:本次接口正常,接下来对接口数据长度进行判断。
否,为null。当前ERROR_DATA的值是否为默认值=0ERROR_DATA++,打印日志:接口有问题,推送告警。Handler.sendMessage("推送告警syslog--接口数据")
不做处理,打印日志:接口仍有问题,告警未恢复。
当前接口长度是否为100是,当前MISS_DATA的值是否为默认值=0MISS_DATA++,打印日志:接口少于100条数据,需推送告警信息。Handler.sendMessage("推送告警syslog-接口数据长度")
打印日志:接口悢仍少于100条,告警未恢复。
否,当前MISS_DATA的值是否>0MISS_DATA=0,打印日志:接口数据长度正常,可推送告警回复,Handler.sendMessage("推送告警恢复syslog-接口数据长度")
打印日志:接口正常且数据长度完整,无需推送告警。

这篇关于以syslog形式推送告警信息到UMP平台--主要为接口思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859343

相关文章

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

Java中接口和抽象类的异同以及具体的使用场景

《Java中接口和抽象类的异同以及具体的使用场景》文章主要介绍了Java中接口(Interface)和抽象类(AbstractClass)的区别和联系,包括相同点和不同点,以及它们在实际开发中的具体使... 目录一、接口和抽象类的 “相同点”二、接口和抽象类的 “核心区别”关键区别详解(避免踩坑)三、具体使

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现