如何在 splunk 中为时间戳和提取字段创建时间表?

问题描述 投票:0回答:1

我正在尝试为每个事件的时间戳和 splunk 中的 TotalTimeTaken 值创建一个时间表。

我的询问:

index=XYZ  Total Time Taken  StudentController   
| rex "Total Time Taken: (?<TotalTimeTaken>[^,}]+)"
| timechart  TotalTimeTaken limit=5

预期数据表:

_时间 总耗时
2024-04-03T06:27:07.371-04:00 52 毫秒
2024-04-03T06:27:07.328-04:00 23 毫秒
2024-04-03T06:27:07.306-04:00 24 毫秒
2024-04-03T06:27:07.293-04:00 74 毫秒
2024-04-03T06:27:07.283-04:00 22 毫秒

但是时间表并没有如期到来。需要 TotalTimeTaken 的精确值而不是计数。

有什么方法可以根据现有数据集构建图表吗? 我创建了如上表所示的数据集。如何使用此表格数据集并从中创建折线图?

visualization splunk
1个回答
0
投票

我在这里看到两个问题。第一个是

timechart
命令需要数字数据,但 TotalTimeTaken 字段是一个字符串,因为“ms”。这很容易处理。第二个问题是
timechart
命令的最小分辨率为 1 秒,因此无法在同一秒内绘制 5 个值。通过使用聚合函数(
max
min
avg
等)来处理该问题。

这是使用示例数据的随处运行示例。

| makeresults 
| eval _raw="_time  TotalTimeTaken
2024-04-03T06:27:07.371-04:00   52 ms
2024-04-03T06:27:07.328-04:00   23 ms
2024-04-03T06:27:07.306-04:00   24 ms
2024-04-03T06:27:07.293-04:00   74 ms
2024-04-03T06:27:07.283-04:00   22 ms"
| multikv forceheader=1
| eval _time=strptime(time_,"%Y-%m-%dT%H:%M:%S.%3N%:z")
``` Above sets up test data.  Skip IRL ```
``` Strip out the unit label ```
| rex field=TotalTimeTaken "(?<TotalTimeTaken>\d+)"
| timechart values(TotalTimeTaken) limit=5
© www.soinside.com 2019 - 2024. All rights reserved.