prober插件通过API采集和管理数据。目前有插件:elasticsearchgithubhaproxymongodbmysqlnginxprometheusrabbitmqredistenginezookeeperprober插件使用telegraf(https://www.influxdata.com/time-series-platform/telegraf/T))对插件接口进行了封装。可以:直接封装一个telegraf写一个telegraf插件,再封装成prober插件。下面以src/modules/monapi/plugins/demo为例介绍插件的开发。Telegraf插件开发安全提示,需要实现这样一个接口类型:下面是demo插件的实现:这样就有一个telegraf插件,再封装成prober插件-在。插件中Gather方法中的acc是一个接口,具体实例由运行环境提供。当插件在prober中运行时,acc在src/modules/prober/manager/accumulator.goProber中实现,prober会周期性的从monapi中获取collectRule列表。检查以更新您自己的插件实例。createrulecollectorupdaterulecollectordeleterulecollector其中更新规则是通过deleteold和createnew实现的。monapi之所以需要加载插件,是因为需要获取插件的参数说明,从而渲染出合适的UI界面,方便用户输入。这是demo的参数说明:关于ui的信息说明放在了structField的tag里面,具体的tag如下:结构体中的参数,然后将用户输入的数据存入数据库后,分发给各个prober执行。prober获取规则后,通过插件的TelegrafInput方法将规则转化为telegraf.Input实例。测试src/modules/monapi/plugins/demo/demo_test.go部署内置编译修改src/modules/monapi/plugins/all/all.go,添加demo重新编译monapi&prober插件加载将自己的插件编译成动态库文件(.so),复制到monapi&prober工作目录下的plugins/下,观看视频讲解:www.bilibili.com/video/BV1MK...
