nightingale1/etc/script/notify
lsy1990 c45cbd02cc
supply plugin to notify maintainer (#1063)
2022-07-22 17:02:49 +08:00
..
Makefile [#886] Feature: 提供一种go plugin 告警通知方式 (#887) 2022-03-20 10:27:17 +08:00
README.md 修复go plugin相关错误 (#964) 2022-05-27 17:38:15 +08:00
notify.go supply plugin to notify maintainer (#1063) 2022-07-22 17:02:49 +08:00

README.md

通过go plugin模式处理告警通知

相比于调用py脚本方式该方式一般无需考虑依赖问题

(1) 编写动态链接库逻辑

package main

type inter interface {
	Descript() string
	Notify([]byte)
}

// 0、Descript 可用于该插件在 server 中的描述
// 1、在 Notify 方法中实现要处理的自定义逻辑

实现以上接口的 struct 实例即为合法 plugin

(2) 构建链接库

参考 notify.go 实现方式,执行 make 后可以看到生成一个 notify.so 链接文件,放到 n9e 对应项目位置即可

(3) 更新 n9e 配置

[Alerting.CallPlugin]
Enable = false
PluginPath = "./etc/script/notify.so"
# 注意此处caller必须在notify.so中作为变量暴露,首字母必须大写才能暴露
Caller = "N9eCaller"