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

Splunk查询问题:按天统计应用日志大小转MB后仍显示字节

正确的Splunk查询实现方案

原查询的核心问题是:使用timechart ... by app时,每个匹配的应用会生成独立的字段(例如daily_log_size_org-app1、daily_log_size_org-app2),而非统一的daily_log_size字段。后续的eval语句无法定位到不存在的daily_log_size字段,因此转换MB的逻辑完全不生效,导致数据仍以字节显示。

推荐使用更简洁高效的前置转换方案,直接在计算单条日志大小后转为MB,再按天按应用求和:

index="my-index" env="prod" log.level IN ("DEBUG", "WARN")
| search app="org-*"
| eval log_size_mb=round(len(_raw)/1024/1024, 2)
| timechart span=1d sum(log_size_mb) as daily_log_size_mb by app

方案说明

  1. 前置转换MB:先通过eval log_size_mb=round(len(_raw)/1024/1024, 2)将单条日志的字节大小转为保留两位小数的MB值
  2. 按天按应用求和:timechart直接对MB值求和,生成的每个应用字段(如daily_log_size_mb_org-app1)均为MB单位的统计结果,可直接用于可视化对比

如果需要保留原有的字节计算逻辑再转换,也可以用foreach遍历动态生成的字段进行批量转换:

index="my-index" env="prod" log.level IN ("DEBUG", "WARN")
| search app="org-*"
| eval log_size=len(_raw)
| timechart span=1d sum(log_size) as daily_log_size by app
| foreach daily_log_size_* [
    eval <<FIELD>>=round(<<FIELD>>/1024/1024, 2)
    | rename <<FIELD>> as <<MATCHSTR>>_daily_log_size_mb
  ]
| fields - daily_log_size_*

该方案逻辑

  • 用foreach遍历所有以daily_log_size_开头的字段(每个应用对应一个)
  • 逐个将字节值转为MB并保留两位小数,同时重命名字段为应用名_daily_log_size_mb格式
  • 最后删除原始的字节数字段,只保留MB单位的统计结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:21:00