我正在尝试为每个事件的时间戳和 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 的精确值而不是计数。
有什么方法可以根据现有数据集构建图表吗? 我创建了如上表所示的数据集。如何使用此表格数据集并从中创建折线图?
我在这里看到两个问题。第一个是
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