You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Loki/Grafana中通过静态系统列表排查不活跃系统?

实现方案

核心思路

从静态JSON列表中提取所有系统名称,再排除近5分钟内有日志上报的系统,剩余结果即为目标系统。

最终LogQL查询

count by(system) (
  {job="mrs_system_info"} 
  | json allSystems 
  | unnest allSystems 
  | label_format system="{{.allSystems}}"
)
unless
count by(system) (count_over_time({job="mrs_error_list"} [5m]))

各部分说明

  • 静态列表解析:
    • {job="mrs_system_info"}:定位存储静态系统列表的日志条目
    • | json allSystems:解析日志中的JSON结构,提取allSystems数组
    • | unnest allSystems:将数组展开为单个系统的条目(每个系统对应一条记录)
    • | label_format system="{{.allSystems}}":将展开后的系统名称映射为和日志中一致的system标签
    • count by(system):确保每个系统仅保留一条记录(自动去重)
  • 排除在线系统:
    • count by(system) (count_over_time({job="mrs_error_list"} [5m])):统计近5分钟内有日志上报的系统
    • unless:从静态列表结果中移除上述有日志的系统,剩余即为近5分钟未上报的系统

注意事项

  • 确保静态列表中allSystems的系统名称,与mrs_error_list日志里system标签的名称格式完全一致(大小写、特殊字符等),否则会出现匹配失败
  • 如果静态列表包含多条日志,count by(system)会自动完成系统名称去重

内容的提问来源于stack exchange,提问作者Falke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:05:08