当前位置: 首页 > news >正文

java项目实现钉钉异常告警实时监控

最近有个小伙伴问我,我们的项目核心业务的地方总是有异常,虽然有打印日志,但不能立马通知我;所以今天我就教大家如何实现异常报警实时提醒

1.需要有钉钉

自己新建的企业用户
在这里插入图片描述

2.建一个群,需要有三人以上;点击机器人

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.自定义机器人里面设置key和秘钥

在这里插入图片描述
在这里插入图片描述

key

在这里插入图片描述
在这里插入图片描述

3.发送消息的java代码

@Slf4j
public class MessageWarningUtils {public static void sendMessage(String error, String token, String secretKey) {try {OapiRobotSendRequest request = new OapiRobotSendRequest();OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();sendMarkdown(request, markdown, error);DingTalkClient client = new DefaultDingTalkClient(token + sign(secretKey));OapiRobotSendResponse response = client.execute(request);if (response != null && response.getErrcode() != 0) {throw new CustomException("系统触发钉钉流控!");}} catch (Exception e) {log.error("系统发送钉钉消息失败=", e);}}private static String sign(String dingTalkSecretKey) {try {Long timestamp = System.currentTimeMillis();String stringToSign = timestamp + "\n" + dingTalkSecretKey;Mac mac = Mac.getInstance("HmacSHA256");mac.init(new SecretKeySpec(dingTalkSecretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");return "&timestamp=" + timestamp + "&sign=" + sign;} catch (Exception e) {log.error("系统钉钉消息提醒签名异常=", e);}return "";}/*** 发送markdown文档格式*/public static void sendMarkdown(OapiRobotSendRequest request, OapiRobotSendRequest.Markdown markdown, String error) {request.setMsgtype("markdown");markdown.setTitle("平台告警");markdown.setText("### @所有人 \n" +"### **异常信息:** " + error + "\n\n");OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();at.setIsAtAll(false);List<String> mobiles = new ArrayList<>();mobiles.add("所有人");at.setAtUserIds(mobiles);request.setAt(at);request.setMarkdown(markdown);}
}

4.获取钉钉的key和签名

建机器人的时候,有截图 key和签名,放在你的项目配置文件里面就可以拿到了

@Component
public class DingDingConfig {@Resourceprivate Environment environment;public String getToken() {return environment.getProperty("dingding.warning.token");}public String getSecretKey() {return environment.getProperty("dingding.warning.secretKey");}public String getToken2() {return environment.getProperty("dingding.warning2.token");}public String getSecretKey2() {return environment.getProperty("dingding.warning2.secretKey");}
}

5.测试异常消息发送

@Resourceprivate DingDingConfig dingDingConfig;public static void main(String[] args) {try {throw new RuntimeException("我就故意报错");}catch (Exception e){MessageWarningUtils.sendMessage("应付账单下载异常=" + e, dingDingConfig.getToken(), dingDingConfig.getSecretKey());}}

dingDingConfig 有可能报错,你重新设置下就好了

6.结果

在这里插入图片描述

有问题,请留言讨论
项目发消息的过程中有可能会报IP白名单问题,大家可以去百度的钉钉的相关配置下,设置下就好了

相关文章:

java项目实现钉钉异常告警实时监控

最近有个小伙伴问我&#xff0c;我们的项目核心业务的地方总是有异常&#xff0c;虽然有打印日志&#xff0c;但不能立马通知我&#xff1b;所以今天我就教大家如何实现异常报警实时提醒 1.需要有钉钉 自己新建的企业用户 2.建一个群&#xff0c;需要有三人以上&#xff1b;…...

Spring Boot应用:电子商务平台开发

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…...

怎么在Vue3项目中引入Vant组件库并使用?

文章目录 前言一、项目中使用步骤1.安装&#xff1a;2.样式的导入&#xff08;2种方法&#xff09;2.1 main.ts全局导入&#xff08;平常自己的项目用的这个全局&#xff09;2.2 按需引入组件样式 (简单介绍一下)1.安装插件2.配置插件 3.组件按需使用&#xff1a;App.vue 总结 …...

springboot中有哪些方式可以解决跨域问题

文章目录 什么是跨域解决方案CrossOrigin注解实现WebMvcConfigurer接口CorsFilter过滤器如何选择&#xff1f; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Talk is cheap &#xff0…...

Temporal Dynamic Quantization for Diffusion Models阅读

文章目录 AbstractIntroductionBackgrounds and Related Works2.1 扩散模型2.2 量化2.3 量化感知训练和训练后量化 TemporalDynamic Quantization3.1 量化方法3.2 扩散模型量化的挑战3.3 TDQ模块的实现3.4 工程细节时间步的频率编码TDQ模块的初始化 Experimental SetupResults5…...

828华为云征文|华为云Flexus X实例性能实测:速度与稳定性的完美结合

828华为云征文&#xff5c;华为云Flexus X实例性能实测&#xff1a;速度与稳定性的完美结合 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、实践环境介绍2.1 本次实践环境规划2.2 本次实践介绍 …...

【PyTorch】图像分割

图像分割是什么 Image Segmentation 将图像每一个像素分类 图像分割分类 超像素分割&#xff1a;少量超像素代替大量像素&#xff0c;常用于图像预处理语义分割&#xff1a;逐像素分类&#xff0c;无法区分个体实例分割&#xff1a;对个体目标进行分割全景分割&#xff1a;…...

如何快速建立自己的异地互联的远程视频监控系统,通过web浏览器可以直接查看公网上的监控视频(上)

目录 一、需求 二、方案 2.1、计划方案 2.2、实施准备 2.2.1所需配置的产品和服务 2.2.1.1云主机 &#xff08;1&#xff09;选择云平台 &#xff08;2&#xff09;配置云服务器 2.2.2.2视频监控平台软件 &#xff08;1&#xff09;视频监控平台软件 &#xff08;2&am…...

实验2思科网院项目2.7.2-packet-tracer---configure-single-area-ospfv2---实践练习

实践练习 2.7.2-packet-tracer---configure-single-area-ospfv2---实践练习physical-mode 实验拓扑 相关设备配置 实验目标: 第 1 部分&#xff1a;构建网络并配置设备的基本设置 第 2 部分&#xff1a;配置和验证单区域 OSPFv2 的基本部署 第 3 部分&#xff1a;优化和验…...

Nginx实战经验分享:从小白到专家的成长历程!

目录 一、Nginx概述1、Nginx简介&#xff08;1&#xff09;事件驱动模型&#xff08;2&#xff09;异步处理&#xff08;3&#xff09;模块化设计&#xff08;4&#xff09;高性能&#xff08;5&#xff09;反向代理&#xff08;6&#xff09;负载均衡&#xff08;7&#xff09…...

从画质设置看游戏引擎(其一)

前往我的博客&#xff0c;获取无广告&#xff0c;更好的阅读体验 1. 抗锯齿&#xff08;Anti-Aliasing&#xff09; 1.1 锯齿问题的起因 在三维模型的世界中&#xff0c;模型是连续的&#xff0c;但是屏幕像素是不连续&#xff0c;是离散的&#xff1b; 即当一个圆形显示在显…...

#git 问题failed to resolve head as a valid ref

问题如下&#xff1a; 解决方法&#xff1a; 1、运行 git fsck --full 可以查看具体error信息&#xff0c;一般都是head索引问题 2、.git\refs\heads\xxx&#xff08;当前分支&#xff09;txt编辑器打开显示乱码&#xff0c;而不是hash编码 3、在.git\logs\refs\heads\xxx&a…...

YOLOv11,地瓜RDK X5开发板,TROS端到端140FPS!

YOLOv11 Detect YOLOv11 Detect YOLO介绍性能数据 (简要) RDK X5 & RDK X5 Module 模型下载地址输入输出数据公版处理流程优化处理流程步骤参考 环境、项目准备导出为onnxPTQ方案量化转化使用hb_perf命令对bin模型进行可视化, hrt_model_exec命令检查bin模型的输入输出情况…...

Python精选200Tips:181-182

针对图像的经典卷积网络结构进化史及可视化 针对图像的经典卷积网络结构进化史及可视化&#xff08;续&#xff09;P181--MobileNet【2017】模型结构及创新性说明模型结构代码MobileNet V1版本MobileNet V2版本MobileNet V3 版本Small版本Large版本 P182--EfficientNet【2019】…...

SpringCloud 配置 feign.hystrix.enabled: true 不生效

SpringCloud 配置 feign.hystrix.enabled: true 不生效的原因 feign 启用 hystrix feign 默认没有启用 hystrix&#xff0c;添加配置&#xff0c;启用 hystrix feign.hystrix.enabledtrue application.yml 添加配置 feign:hystrix:enabled: true启用 hystrix 后&#xff0c;访…...

9.24-k8s服务发布

Ingress 使用域名发布 K8S 服务 部署项目 一、先部署mariadb [rootk8s-master ~]# mkdir aaa [rootk8s-master ~]# cd aaa/ [rootk8s-master aaa]# # 先部署mariadb [rootk8s-master aaa]# # configmap [rootk8s-master aaa]# vim mariadb-configmap.yaml apiVersion: v1 ki…...

UI设计师面试整理-作品集展示

在UI设计师的面试中,作品集展示是非常关键的一环。它不仅展示了你的设计技能和风格,也让面试官了解你的设计思维和解决问题的能力。下面是如何有效地准备和展示你的作品集的建议: 1. 选择合适的项目 ● 多样性:选择能展示你在不同领域或平台上的设计能力的项目。确保作品集…...

CMU 10423 Generative AI:lec10(few-shot、提示工程、上下文学习)

文章目录 1 概述2 摘录2.1 zero-shot 和 few-shot一、Zero-shot Learning&#xff08;零样本学习&#xff09;特点&#xff1a;工作原理&#xff1a;优点&#xff1a;缺点&#xff1a; 二、Few-shot Learning&#xff08;少样本学习&#xff09;特点&#xff1a;工作原理&#…...

做数据抓取工作要如何选择ip池

选择合适的IP池对于数据抓取工作至关重要。一个优质的IP池可以提高抓取的效率和成功率&#xff0c;同时减少被目标网站封禁的风险。以下是选择IP池时需要考虑的一些关键因素&#xff1a; 1. IP类型 住宅IP&#xff1a;住宅IP通常来自真实用户&#xff0c;难以被识别为代理。它…...

防止电脑电池老化,禁止usb或者ac接口调试时充电

控制android系统&#xff0c;开发者模式&#xff0c;开启和禁止充电 连接 Android 手机到电脑的 USB 端口。 下载并安装 Android Debug Bridge (ADB) 工具[1]。 USB&#xff1a; 在命令行中输入 adb shell dumpsys battery set usb 0&#xff0c;以禁止 USB 充电。 在命令…...

芯片设计演进:从摩尔定律到软件驱动与异构集成的工程实践

1. 项目概述&#xff1a;一位芯片老兵的CMOS缩放宣言在半导体这个日新月异的行业里&#xff0c;每隔几年就会听到“摩尔定律已死”的论调。这几乎成了一个周期性出现的“行业寓言”。但如果你在2014年&#xff0c;有机会和吉姆凯勒&#xff08;Jim Keller&#xff09;——这位先…...

EdgeRemover技术深度解析:Windows系统级浏览器管理解决方案

EdgeRemover技术深度解析&#xff1a;Windows系统级浏览器管理解决方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …...

喜马拉雅音频下载器:三分钟学会批量保存心爱内容

喜马拉雅音频下载器&#xff1a;三分钟学会批量保存心爱内容 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字音频内容日益丰…...

AI编程助手成本优化:混合路由策略如何将API账单降低73%

1. 项目概述&#xff1a;当AI编程助手成为API预算的“吞金兽”如果你正在为团队开发或集成一个AI编程助手&#xff0c;并且看着每月五位数的API账单感到头皮发麻&#xff0c;这篇文章就是为你准备的。我亲眼见过不少开发团队&#xff0c;在享受着AI辅助编程带来的效率提升时&am…...

从U盘到移动硬盘:深入拆解USB存储设备里的BOT和UASP协议栈

从U盘到移动硬盘&#xff1a;深入拆解USB存储设备里的BOT和UASP协议栈 当你将一块移动固态硬盘插入电脑的USB 3.2接口&#xff0c;期待每秒上千兆字节的传输速度时&#xff0c;是否想过这背后隐藏着怎样的协议魔法&#xff1f;在USB存储设备的世界里&#xff0c;BOT&#xff08…...

告别手动重命名!Win10下用CMD脚本批量给照片加001-999编号(保姆级教程)

告别手动重命名&#xff01;Win10下用CMD脚本批量给照片加001-999编号&#xff08;保姆级教程&#xff09; 每次整理上百张照片时&#xff0c;最痛苦的就是一张张手动重命名。作为一名经常需要处理大量素材的自媒体创作者&#xff0c;我试过各种方法——从资源管理器的F2快捷键…...

华为eNSP Cloud网卡异常排查指南:从WinPcap兼容性到虚拟网卡同步

1. 华为eNSP Cloud网卡异常排查指南 最近在帮朋友调试华为eNSP Cloud时遇到了网卡异常的问题&#xff0c;折腾了大半天才解决。这个问题其实挺常见的&#xff0c;特别是对于刚接触eNSP Cloud的新手来说。今天我就把完整的排查流程和解决方法分享给大家&#xff0c;希望能帮到遇…...

零命令行部署飞书AI机器人:桌面应用实现开箱即用

1. 项目概述&#xff1a;一个为普通人设计的飞书AI机器人桌面应用 如果你在飞书里用过官方提供的“AI助手”&#xff0c;可能会觉得它功能不错&#xff0c;但总有些限制——不能自由选择模型&#xff0c;无法深度定制&#xff0c;更别提把它无缝集成到你的工作流里了。于是&am…...

别再硬编码边界了!OpenFOAM中巧用多孔介质源项模拟复杂固体的新思路

突破传统边界&#xff1a;OpenFOAM中多孔介质源项模拟固体的工程实践 在计算流体动力学&#xff08;CFD&#xff09;模拟中&#xff0c;复杂几何形状的固体边界处理一直是工程师面临的棘手问题。传统方法如动网格技术计算成本高昂&#xff0c;浸入边界法实现复杂&#xff0c;而…...

SoC硅验证挑战与ClearBlue解决方案解析

1. SoC硅验证与调试的挑战与ClearBlue解决方案在复杂SoC芯片的开发周期中&#xff0c;硅验证阶段往往是最耗时、成本最高且最难预测的环节。当第一颗芯片从晶圆厂返回时&#xff0c;设计团队面临的核心挑战是&#xff1a;如何在真实工作环境和全速运行条件下&#xff0c;快速验…...