如何在Grafana中基于Loki日志查询展示离线系统列表
实现Grafana表格展示离线系统名称
核心思路
要列出具体离线系统,不能只做数量相减,得用Loki的集合筛选能力,找出过去7天发送过Timestamp日志、但过去1分钟未发送的system标签值。
具体LogQL查询语句
使用Loki的unless操作符,它会返回第一个查询结果中,不存在于第二个查询结果的条目:
count by(system) (count_over_time({job="mrs_error_list"} |~ "Timestamp" [7d])) unless count by(system) (count_over_time({job="mrs_error_list"} |~ "Timestamp" [1m]))
- 第一个查询:提取过去7天有Timestamp日志的所有系统(按
system分组计数) unless:剔除掉第二个查询里的在线系统- 第二个查询:提取过去1分钟有Timestamp日志的所有在线系统
Grafana表格配置步骤
- 新建Grafana面板,选择Table可视化类型
- 数据源选择你的Loki实例
- 将上述LogQL语句粘贴到查询框
- 进入可视化面板的字段设置:
- 保留
system字段作为表格列(显示系统名称) - 可移除
value字段(计数对展示离线系统无意义)
- 保留
- 按需调整表格样式,比如将列标题修改为“离线系统名称”
注意事项
- 如果你的日志中标识系统的标签不是
system,请替换为实际的标签键 - 若需查看离线系统最后一次发日志的时间,可额外添加查询获取最近日志时间,关联到表格中
内容的提问来源于stack exchange,提问作者Falke
相关产品推荐
相关产品推荐

