当前位置: 首页 > 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 充电。 在命令…...

Super IO插件终极指南:5分钟掌握Blender文件处理革命

Super IO插件终极指南&#xff1a;5分钟掌握Blender文件处理革命 【免费下载链接】super_io blender addon for copy paste import / export 项目地址: https://gitcode.com/gh_mirrors/su/super_io Super IO是一款彻底改变Blender工作流程的革命性插件&#xff0c;它通…...

从B站视频到跑通代码:手把手复现大疆C板控制M2006电机的完整流程(STM32CubeMX + C610电调)

大疆C板驱动M2006电机全流程解析&#xff1a;从CubeMX配置到CAN通信实战 第一次拿到大疆RoboMaster C板时&#xff0c;看着官方文档和一堆外设确实有点无从下手。特别是当需要控制M2006这种高性能电机时&#xff0c;文档中的信息分散在不同章节&#xff0c;而社区里的完整教程又…...

Docker Desktop 快速搭建本地 Kubernetes 集群:解决镜像拉取与生态集成

1. 项目概述&#xff1a;在本地桌面环境快速搭建K8s生态 如果你是一名开发者或者运维工程师&#xff0c;想在自己的Mac或Windows电脑上快速体验和学习Kubernetes&#xff08;K8s&#xff09;及其周边生态&#xff0c;比如Istio服务网格、Helm包管理器&#xff0c;那么Docker D…...

基于MCP协议构建AI知识库:Alexandria项目部署与核心工作流解析

1. 项目概述&#xff1a;让AI拥有自己的“亚历山大图书馆”如果你和我一样&#xff0c;长期与各种AI助手&#xff08;比如Claude、Cursor、Codex&#xff09;打交道&#xff0c;肯定会遇到一个头疼的问题&#xff1a;知识无法沉淀。今天你花半小时教会AI助手某个项目的架构细节…...

如何快速掌握microeco:微生物组学数据分析的完整实战指南

如何快速掌握microeco&#xff1a;微生物组学数据分析的完整实战指南 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco 你是否曾因复杂的微生物组学数据分析而感到…...

独立开发者如何借助Taotoken应对大模型API调用波动

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken应对大模型API调用波动 对于独立开发者而言&#xff0c;项目的稳定性和可控成本是生存与发展的关键。在…...

告别内存焦虑!STM32H743全系列SRAM(ITCM/DTCM/AXI)实战分配指南(MDK/IAR双环境)

STM32H743内存优化实战&#xff1a;从理论到精准分配的完整指南 在嵌入式系统开发中&#xff0c;内存管理往往是决定项目成败的关键因素之一。STM32H743作为STMicroelectronics推出的高性能微控制器系列&#xff0c;其复杂的内存架构既带来了性能优势&#xff0c;也增加了开发难…...

Sora 2视频生成质量跃升47%的关键——Gaussian Splatting空间梯度重参数化技术(独家逆向工程报告)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora 2视频生成质量跃升47%的实证观测与技术归因 近期在多个基准测试中&#xff0c;Sora 2在UCF101-VideoQA、TVD和VidBench v2上的平均PSNR提升达47.2%&#xff0c;SSIM同步上升39.8%&#xff0c;关键…...

基于MCP协议的Shopify数据AI分析:自动化广告优化实战指南

1. 项目概述&#xff1a;用AI打通Shopify数据与广告投放的任督二脉 如果你在运营一个Shopify独立站&#xff0c;并且正在为Google、Meta&#xff08;Facebook/Instagram&#xff09;或TikTok广告投放而头疼&#xff0c;那么你很可能正经历着所有电商卖家的共同困境&#xff1a;…...

OSINT自动化框架openeir:模块化设计与情报收集流水线构建

1. 项目概述&#xff1a;一个面向开源情报的现代化工具箱最近在整理自己的技术栈时&#xff0c;发现一个挺有意思的项目&#xff0c;叫heyeir/openeir。乍一看这个名字&#xff0c;可能会有点摸不着头脑&#xff0c;但如果你对开源情报&#xff08;OSINT&#xff09;领域有所涉…...