thingboard告警信息格式美化

原始报警json内容:

javascript 复制代码
{ 

	"severity": "CRITICAL",
	"acknowledged": false,
	"cleared": false,
	"assigneeId": null,
	"startTs": 1739801102349,
	"endTs": 1739801102349,
	"ackTs": 0,
	"clearTs": 0,
	"assignTs": 0,
	"propagate": false,
	"propagateToOwner": false,
	"propagateToTenant": false,
	"propagateRelationTypes": [],
	"originatorName": "DTU-863569063344204",
	"originatorLabel": "DTU-863569063344204",
	"assignee": null,
	"name": "Inactivity TimeOut",
	"status": "ACTIVE_UNACK",
	"details": {}
}

报警格式美化js代码:

javascript 复制代码
var date = new Date();
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);

var currentTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;

// 解析告警时间
function formatUnixTime(unixTimestamp) {
    var date = new Date(unixTimestamp);
    var year = date.getFullYear();
    var month = ('0' + (date.getMonth() + 1)).slice(-2);
    var day = ('0' + date.getDate()).slice(-2);
    var hours = ('0' + date.getHours()).slice(-2);
    var minutes = ('0' + date.getMinutes()).slice(-2);
    var seconds = ('0' + date.getSeconds()).slice(-2);
    return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}

// 格式化报警级别
var severityMap = {
    "CRITICAL": "🔥 **严重告警**",
    "MAJOR": "⚠ **主要告警**",
    "MINOR": "🔶 **次要告警**",
    "WARNING": "ℹ **警告**"
};
var severity = severityMap[msg.severity] || "⚠ **未知级别**";

// 确认状态
var acknowledged = msg.acknowledged ? "✅ 已确认" : "❌ 未确认";
var cleared = msg.cleared ? "✅ 已清除" : "❌ 未清除";

// 组装格式化的告警信息
var messageContent =
    "📢 **设备告警通知** 📢\n" +
    "------------------------------\n" +
    "📅 **当前时间**: " + currentTime + "\n" +
    "📍 **设备名称**: " + msg.originatorName + "\n" +
    "🔖 **设备标识**: " + msg.originatorLabel + "\n" +
    "⚠ **告警名称**: " + msg.name + "\n" +
    "🚨 **告警级别**: " + severity + "\n" +
    "🕒 **告警开始时间**: " + formatUnixTime(msg.startTs) + "\n" +
    "🕒 **告警结束时间**: " + formatUnixTime(msg.endTs) + "\n" +
    "🔎 **告警状态**: " + msg.status + "\n" +
    "📌 **确认状态**: " + acknowledged + "\n" +
    "📌 **清除状态**: " + cleared + "\n" +
    "------------------------------";

var newMsg = {
    "msgtype": "text",
    "text": {
        "content": messageContent,
        "mentioned_list": ["wangqing", "@all"],
        "mentioned_mobile_list": ["13800001111", "@all"]
    }
};

return {
    msg: newMsg
};

输出到企业微信消息:

相关推荐
apocelipes1 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Full Stack Developme1 小时前
java.text 包详解
java·开发语言·python
fruge2 小时前
Ubuntu服务器已下载Nginx安装包的安装指南
服务器·nginx·ubuntu
哆啦A梦15882 小时前
搜索页面布局
前端·vue.js·node.js
_院长大人_2 小时前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
刘梦凡呀2 小时前
C#获取钉钉平台考勤记录
java·c#·钉钉
best_virtuoso3 小时前
PostgreSQL 常见数组操作函数语法、功能
java·数据结构·postgresql
yudiandian20143 小时前
02 Oracle JDK 下载及配置(解压缩版)
java·开发语言
孤独得猿3 小时前
聊天室项目开发——etcd的安装和使用
linux·服务器·c++·etcd
楚韵天工3 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物