如何将Python采集的时序日志映射为Grafana时间序列图表
半结构化CPU温度日志接入Grafana生成时序图操作指南
第一步:日志结构化预处理
你当前存储的两行一组半结构化日志无法被Grafana直接识别,需要先做结构化转换,优先推荐直接修改现有每5分钟运行一次的Python采集脚本,从源头输出结构化数据:
- 去掉冗余的人类可读时间行(即
2022-06-30 13:10:02这类行),直接以time=后面的Unix时间戳作为唯一时间字段 - 采集到的
Composite、Packageid0、Core0~Core7共10个温度指标,直接写入轻量时序数据库(新手推荐InfluxDB,部署成本低),写入时给每个指标打上metric=xxx的标签,对应的值为采集到的浮点型温度数 - 如果需要兼容历史存量日志,可以写个简单的Python脚本批量解析现有日志,输出为标准CSV格式,格式样例如下:
timestamp,metric_name,value 1656583802073,Composite,35.85 1656583802073,Packageid0,44.0 1656583802073,Core0,41.0 1656583802073,Core1,39.0 1656583802073,Core2,40.0
注意:时间戳需要转换为毫秒级Unix时间,避免Grafana时间解析错位
第二步:Grafana数据源配置
- 若使用InfluxDB存储:进入Grafana侧边栏「连接」-「添加新连接」,搜索InfluxDB,填入服务部署地址、端口、对应数据库名、鉴权信息,点击「保存并测试」,提示连通成功即可
- 若使用CSV格式存储历史数据:先在Grafana插件市场安装
CSV Data Source插件,上传转换好的CSV文件,配置解析规则时指定timestamp列为时间字段,解析精度设为毫秒 - 若使用Prometheus生态存储:添加Prometheus数据源,填入服务访问地址,测试连通后即可使用
第三步:时序面板配置
- 新建仪表盘,添加
Time series类型面板,选中之前配置好的数据源 - 编写查询规则:
- InfluxDB场景:选择存储指标的表,查询字段取温度值,按
metric_name标签分组,时间范围跟随仪表盘全局时间选择器自动适配 - CSV场景:选择所有指标字段,指定
timestamp为X轴,value为Y轴
- InfluxDB场景:选择存储指标的表,查询字段取温度值,按
- 样式调整对齐参考效果:
- 左侧Y轴单位设置为
摄氏度(°C),根据你采集的数值范围设置Y轴最小值为20、最大值为80,避免曲线贴边 - 底部图例配置为显示指标名、当前值、周期内最大值,方便快速查看各核心温度状态
- 线条样式可选择平滑曲线,打开采样点标记,每5分钟一个的原始采集点会在曲线上显示为实心圆点
- 给不同类别的指标配置区分度高的颜色:比如Composite整体温度用红色,CPU封装温度Packageid0用橙色,各个核心温度用蓝色系不同深浅区分
- 左侧Y轴单位设置为
配置提示:因为你的采集间隔是5分钟,查询时不要开启超过1倍的降采样,避免原始采集点被聚合丢失精度。
内容的提问来源于stack exchange,提问作者Sh Malik
相关产品推荐
相关产品推荐

