我正在尝试使用Bosun来确定某些进程是否正在运行,然后最终提醒它们是向上的还是向下的。我可能误解了医生,但我搞不懂。
波孙跑得很好。我让scollector在Ubuntu14LTS上运行,并正确使用我的配置文件。
以下是我在我的scollector.toml中拥有的内容:
host="blah:8070"
hostname="cass01"
[[Process]]
command = "^.*(java).*(CassandraDaemon)$"
name = "Cassandra"然后,我希望在我的主机cass01下看到一个公制的标题"cassandra“,但它是无处可见的。还有其他衡量标准。
发布于 2015-08-21 18:44:59
目前,Command是二进制进程路径上的部分匹配,直到第一个空格分隔符。Args参数是区分进程的多个实例的正则表达式。因此,对于java进程,您可以使用如下内容:
[[Process]]
Command = "java"
Name = "Cassandra"
Args = "CassandraDaemon$"这将匹配如下命令行:
/usr/bin/java /usr/bin/CassandraDaemon这假设该进程的/proc/<pid>/cmdline以CassandraDaemon结尾。如果不以该字符串结尾,则需要将Args更改为"CassandraDaemon“,这将匹配包含该字符串的任何java进程。
此外,一些进程将cmdline更改为nul分隔字符串以外的其他内容。在这些情况下,需要使用Command参数进行匹配,因为Args需要nul分隔符。示例:
cat /proc/80156/cmdline | hexdump -C
00000000 2f 75 73 72 2f 62 69 6e 2f 72 65 64 69 73 2d 73 |/usr/bin/redis-s|
00000010 65 72 76 65 72 20 2a 3a 36 33 37 39 00 00 00 00 |erver *:6379....|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 |.|
00000031
#Example for cmdline without NUL (00) delimiters between args
[[Process]]
Command = "redis-server *:6379"
Name = "redis-core"一旦使用了正确的匹配值,您就会看到指标显示在linux.proc.*下面,其中name标记将与TOML文件中使用的名称相匹配。
https://stackoverflow.com/questions/32146992
复制相似问题