根据从collectd中转储的collectd naming schema指标,插件需要遵循以下结构
host / plugin - plugin_instance / type - type_instance这适用于cpu、内存等系统指标,但对于通过健康URL暴露其健康状态的应用程序,可以具有任意嵌套的表单参数
{"datacenter": {"region": {"server": {"service": {"parameter": value } } } } },当由collectd调度时,应将其转换为
$datacenter.$region.$server.$service.$parameter = $value但是当前收集的命名模式不允许这样做。如何在collectd中做到这一点呢?
发布于 2017-03-28 02:32:19
正如前面提到的here,其他人也曾遇到过这个问题
我找到了一个拐弯抹角的方法:
现在,如果我编写一个exec插件:
#!/bin/bash
HOSTNAME="${COLLECTD_HOSTNAME:-localhost}"
INTERVAL="${COLLECTD_INTERVAL:-10}"
function gen_random() {
echo $RANDOM % 10 + 1 | bc
}
while sleep "$INTERVAL"; do
VALUE=$(do_magic)
echo "PUTVAL \"$HOSTNAME/region.datacenter.rack.cluster.server.service/gauge-service_parameter\" interval=$INTERVAL N:$VALUE" | tee -a /var/tmp/test.log;
done这将在石墨中创建以下层次:
region/
region/datacenter
region/datacenter/rack
region/datacenter/rack/cluster
region/datacenter/rack/cluster/server
region/datacenter/rack/cluster/server/service
region/datacenter/rack/cluster/server/service/gauge-service_parameter.wsp请注意,前缀"gauge“很重要,因为collectd需要知道正在推送的值的类型。
https://stackoverflow.com/questions/43052484
复制相似问题