按时间合并事件以创建 table 的 3D 散点图

Merge events by time to create a table for 3D Scatterplot

我有一个事件列表,内容如下

event1: _time=123 Tag="X" Value="12.2"
event2: _time=123 Tag="Y" Value="55.2"
event3: _time=123 Tag="Z" Value="3.2"
event4: _time=234 Tag="X" Value="12.4"
event5: _time=234 Tag="Y" Value="55.0"
event6: _time=234 Tag="Z" Value="2.8"

这些值是我想在 3d 散点图中可视化的坐标 (X, Y, Z)。不幸的是,我在一个事件中有每个坐标。

我如何合并这些事件以创建 table 之后与

(wanted command) | table _time X Y Z

???

| eval {Tag}=Value
| stats values(X) AS X, values(Y) AS Y, values(Z) AS Z by _time`

{Tag}=Value 将使用相关值创建一个新字段 X(或 YZ),然后 stats 将它们合并合并为一个事件。

完整示例,

| makeresults count=6
| streamstats count AS i

| eval Value=random()%10
| eval _time=if(i>3,_time,_time+10)
| eval Tag=case(i%3==0,"X", i%3=1,"Y", i%3=2,"Z")
| fields - i

| eval {Tag}=Value
| stats values(X) AS X, values(Y) AS Y, values(Z) AS Z by _time