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

基于Loki日志在Grafana中构建请求计数与耗时统计图表

解决方案

1. 提取日志中的耗时数值

你的日志格式固定,末尾的[数字] ms是请求耗时,用Loki的pattern函数可以直观提取并转为数值类型,方便后续计算:

{job="你的Docker应用job名"} |= "Application - GET /programs/statement" 
| pattern `<app> - <method> <path> <params> <status> <status_text> <duration:int> ms`

其中<duration:int>会自动把提取到的耗时字符串转为整数,为聚合计算做准备。

2. 计算请求耗时的最小值/最大值

提取出耗时字段后,用Loki的时间聚合函数就能得到指定时间窗口内的极值:

最大耗时查询

max_over_time(
  {job="你的Docker应用job名"} |= "Application - GET /programs/statement" 
  | pattern `<app> - <method> <path> <params> <status> <status_text> <duration:int> ms`
  | unwrap duration [1m]
) by (job)
  • unwrap duration:将提取的duration字段从日志流解析为可计算的数值
  • max_over_time([1m]):按1分钟时间窗口,计算每个窗口内的最大耗时
  • by (job):可根据需求替换为method、status等维度,实现分组统计

最小耗时查询

把max_over_time替换为min_over_time即可:

min_over_time(
  {job="你的Docker应用job名"} |= "Application - GET /programs/statement" 
  | pattern `<app> - <method> <path> <params> <status> <status_text> <duration:int> ms`
  | unwrap duration [1m]
) by (job)

3. Grafana图表配置

  • 图表类型选择:用折线图展示耗时随时间的变化趋势,用统计面板直接展示当前的最小/最大值
  • 多指标同屏:在同一面板添加三个查询(记录数、最小耗时、最大耗时),即可同时查看三类数据
  • 时间窗口调整:根据业务需求修改[1m]为[5m]、[1h]等,适配不同粒度的监控需求

补充:记录数统计(参考格式)

和耗时查询统一格式的记录数统计写法:

count_over_time(
  {job="你的Docker应用job名"} |= "Application - GET /programs/statement" [1m]
) by (job)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:42:10