跳到主要内容

日志查询

基于 Loki 的日志检索,左侧「日志管理」下有两个面板,按来源分工:

面板来源适用场景
容器控制台Docker 容器 stdout/stderr(Alloy 采集)排查中间件、基础设施容器日志(MySQL / Redis / Kafka 等)
服务日志HAP 微服务结构化 JSON 日志(serilog 直推)排查业务调用、异常堆栈、按参数(手机号 / 用户 ID / traceID)搜索

两个面板顶部都有搜索关键字(全文、不分大小写)和多选下拉过滤器;时间窗默认最近 1 天,右上角可调。

容器控制台

「容器」下拉选容器名(如 script-app-1milvus-etcd),即可看该容器近期 stdout;配合搜索关键字定位内容。

容器控制台

服务日志

服务日志

每条日志会把结构化字段自动展开在正文下方:

2026-05-13 17:43:22.911 {"Message":"未配置短信服务","level":"error"}
⏵ action: /MD.SmsService.Sms/SendMessage
⏵ level: error ⏵ elapsed_ms: 0
⏵ extras: [[Mobile, +8613800138000], [Message, 您的验证码是…]]
⏵ stack: 未配置短信服务 at MD.Sms.GrpcService…

常用字段:

字段含义
service_nameHAP 微服务名(smssenderservice / workflow / worksheetservice …)
action业务调用方法(gRPC 路径或类方法)
detected_level级别(info / warn / error)
elapsedmilliseconds调用耗时(毫秒)
extras业务参数(常含手机号、ID 等)
stack异常调用栈
hostname服务容器 hostname

典型用法:

  • 按服务:「服务」下拉选 smssenderservice
  • 搜参数:搜索框输 13800138000,同时匹配正文和所有字段(手机号通常在 extras)。
  • 只看错误:「级别」选 error
  • 追一条 trace:搜 traceID 关键字,串起各服务的调用日志。

进阶 LogQL

复杂查询(聚合 / 统计 / 正则)进 Grafana Explore(左下角 Grafana 图标 → Explore)直接写 LogQL:

{service_name="smssenderservice", detected_level="error"} # 短信服务所有 error
{hostname=~".+"} |~ "(?i)13800138000" # 全微服务搜手机号
sum(rate({hostname=~".+"}[5m])) by (service_name) # 各服务 5m 日志速率

语法见 LogQL 官方文档

备注

日志默认保留 30 天(ENV_LOKI_RETENTION=720h),可在 ops.yaml / ConfigMap 调整;磁盘紧张建议配 S3/MinIO 后端。