使用scollector在bosun中定义新外部收集器的步骤是什么 我们可以编写python或shell脚本来收集数据吗?
答案 0 :(得分:7)
围绕此问题的文档并不是最新的。您可以按照http://godoc.org/bosun.org/cmd/scollector#hdr-External_Collectors中的描述执行此操作,但我们也支持更好的JSON输出。
无论哪种方式,您都可以编写内容并将其放在外部收集器目录中,然后是频率目录,然后是可执行文件脚本或二进制文件。类似的东西:
<external_collectors_dir>/<freq_sec>/foo.sh
。
如果目录频率为零0
,那么该脚本应该会持续运行,并在代码中放入一个睡眠(这是我首选的外部收集器方法)。脚本将telnet格式或未记录的JSON格式输出到stdout。 Scollector选择它,并将该信息排队等待发送。
我不久前创建了一个问题来记录https://github.com/bosun-monitor/bosun/issues/1225。在我们其中一个人解决这个问题之前,这里是添加了JSON https://github.com/bosun-monitor/bosun/commit/fced1642fd260bf6afa8cba169d84c60f2e23e92
的PR答案 1 :(得分:2)
除了Kyle所说的,你可以看看一些现有的外部收藏家,看看他们输出了什么。 here是用java编写的,我们的一位同事写的是监视jvm的东西。它使用文本格式,简单地说:
{"metric":"exceptional.exceptions.count","timestamp":1438788720,"value":0,"tags":{"application":"AdServer","machine":"ny-web03","source":"NY_Status"}}
如果您想使用JSON格式,以下是我们的收藏家之一的示例:
{"Metric":"exceptional.exceptions.count","Name":"rate","Value":"counter"}
{"Metric":"exceptional.exceptions.count","Name":"unit","Value":"errors"}
{"Metric":"exceptional.exceptions.count","Name":"desc","Value":"The number of exceptions thrown per second by applications and machines. Data is queried from multiple sources. See status instances for details on exceptions."}`
您还可以发送元数据:
2015/08/05 15:32:00 lookup OR-SQL03: no such host
或者向stderror发送错误消息:
$