如何收集自监控指标
LoongCollector 目前提供用于暴露自监控指标的 Input 插件;在一个**采集配置(collection pipeline)**中加入该插件即可采集自监控数据。
创建自监控采集配置
选择输入插件自监控指标数据。这里需要注意一点,就是
input_internal_metrics插件输出的数据格式是 C++ 的多值 MetricEvent 格式(UntypedMultiDoubleValues),需要确保数据的下游支持这种格式数据的处理。选择输出插件本地文件。该插件为原生输出插件,使用的
Serializer支持 C++ 的多值 MetricEvent 格式(UntypedMultiDoubleValues)的解析,所以可以直接使用来输出自监控指标数据。我们输出到self_monitor/self_metrics.log文件,方便查看与分析。原生输出插件与Serializer的关系请参见如何开发原生Flusher插件。最终的 YAML 如下。将其保存到运行目录下的
conf/continuous_pipeline_config/local,LoongCollector 会自动加载该采集配置。enable: true inputs: - Type: input_internal_metrics Agent: Enable: true Interval: 1 Runner: Enable: true Interval: 1 Pipeline: Enable: true Interval: 1 Plugin: Enable: true Interval: 10 Component: Enable: true Interval: 10 PluginSource: Enable: true Interval: 10 flushers: - Type: flusher_file FilePath: self_monitor/self_metrics.log
查看自监控指标数据
采集配置生效后,大约一分钟,可以看到自监控指标数据输出到self_monitor/self_metrics.log文件。文件中,每行均为一条json格式的指标。下面是其中一行 agent 级指标展开后的参考样例。__name__是指标类型,__labels__是标识该条指标对应的对象的标签,__time__是指标输出的时间戳,__value__是具体指标的值的map。
{
"__labels__":{
"hostname":"xxx",
"instance_id":"xxx",
"os":"Linux",
"os_detail":"xxx",
"project":"",
"start_time":"2024-12-26 06:20:25",
"uuid":"xxx",
"version":"0.0.1"
},
"__name__":"agent",
"__source__":"xxx.xxx.xxx.xxx",
"__time__":1735194085,
"__value__":{
"cpu":0.002,
"go_memory_used_mb":0.0,
"go_routines_total":0.0,
"memory_used_mb":25.0,
"open_fd_total":0.0,
"pipeline_config_total":1.0
}
}