Open fuqihuan opened 2 weeks ago
1 没看太明白 2 这个做不了,有些多进程的检查,有几个pid算存活? 标准怎么给出?
1 欢迎提个PR哈 2 自动判断不了,exec也判断不了。比如php-fpm进程,达到start_servers进程数就算存活, 那每个人的start_servers不一样,exec是不是不能写死这个数目?采集数据后,我不知道是你的exec脚本采集有问题,还是真的进程数就这几个。 就是想自动发现进程数的都不靠谱,就得配置的人知道有多少进程,从采集结果来判断才可以。
第2点,其实我的场景是有很多同名同质进程。但是有一定规律。举例以下3个进程。 /data/abc_efg_1/server/bin/ctl start --host xxxxx /data/abc_efg_3/server/bin/ctl start --host xxxxx /data/abc_efg_5/server/bin/ctl start --host xxxxx
另外: /data/下这个 [a-zA-Z]_[a-zA-Z]_[0-9]+ 规则的目录是有可能新增或删减的。我的目的是想自动发现这些进程采集和判断这些进程的存活。举例: 如果/data/目录下创建了一个/data/abc_xxx_3这样的目录时,且没有启动对应的进程,我则可以快速发现。
当前能够用 labels_from_cmdline_reggroup 来收集各个进程的对应指标。但无法得知进程的存活状态。有以下几个思路:
通用场景呢? 个性化场景放到exec中比较合适。
通用场景的话,我觉得应该是应用在自动发现服务自动监控上。 我们的场景大致是以下内容。
这种非标准场景,就是做不到自动发现,是发现少了,还是真的节点、进程不存在。
另外: /data/下这个 [a-zA-Z][a-zA-Z][0-9]+ 规则的目录是有可能新增或删减的。我的目的是想自动发现这些进程采集和判断这些进程的存活。举例: 如果/data/目录下创建了一个/data/abc_xxx_3这样的目录时,且没有启动对应的进程,我则可以快速发现。
基于正则做自动发现,只能是规则性的,没法做列表性的。此种需求需要列表性的东西来做发现。 或者,自行使用脚本进行校验。
categraf 的 procstat 没有做 stat 存储,只是一个刮取器,不该叠加太复杂的需求,也不要强加太多定制或者巡检需求给刮取器。
进程级的几种情况
当然,有一些解决方案
配置了labels_from_cmdline_reggroup,mem_rss这些都没打上对应的lable,看代码上是没加上 ins.makeCmdlineLabelReggroupTag(p) 。
mem_rss 这里,确实是有疏漏忘了加。我这里主要是用于大范围监控jvm gc和golang net,对mem没有开启,疏忽了。
稍后会补 PR
@zzmark 也请关注正则的性能消耗 https://github.com/flashcatcloud/categraf/issues/982
引用原链接:https://github.com/flashcatcloud/categraf/pull/951