根据collectd naming schema - 从collectd插件中转出的指标需要遵循此结构
host / plugin - plugin_instance / type - type_instance
适用于cpu,内存等系统指标,但对于通过健康URL公开其健康状态的应用程序,可以使用任意形式嵌套
的参数{"datacenter": {"region": {"server": {"service": {"parameter": value } } } } }
当被collectd调度时,应该转换为
的石墨模式$datacenter.$region.$server.$service.$parameter = $value
但是当前的collectd命名架构不允许这样做。如何在collectd中实现这一目标?
答案 0 :(得分:0)
其他人如前面提到的那样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需要知道被推送的值的类型。