C# 如何在Splunk中转换带有小数秒的timespan字符串(例如HH:MM:SS.ff..)以进行图表绘制?
Splunk作为“将[s]一个持续时间格式C# 如何在Splunk中转换带有小数秒的timespan字符串(例如HH:MM:SS.ff..)以进行图表绘制?,c#,.net,time,data-conversion,splunk,C#,.net,Time,Data Conversion,Splunk,Splunk作为“将[s]一个持续时间格式[D+]HH:MM:SS转换为秒”的格式 但是,JSON格式日志(通过Serilog)中的数据来自.NET timespan源值,该源值已序列化为“00:00:00.2787721”——请注意分数秒组件 将此字符串作为分数秒值(即0.2787721)导入Splunk以用于绘图的最简单方法是什么?convert的timeformat=选项似乎不适用于时间跨度转换函数 使用rex+math(或其他严重卷积的evals序列)不是提取数据的简单或容易复制的方法;
[D+]HH:MM:SS
转换为秒”的格式
但是,JSON格式日志(通过Serilog)中的数据来自.NET timespan源值,该源值已序列化为“00:00:00.2787721”
——请注意分数秒组件
将此字符串作为分数秒值(即0.2787721
)导入Splunk以用于绘图的最简单方法是什么?convert
的timeformat=
选项似乎不适用于时间跨度转换函数
使用rex
+math(或其他严重卷积的evals序列)不是提取数据的简单或容易复制的方法;我怀疑我是第一个尝试使用这种“常用”格式值的人。您可以使用strtime()以秒为单位获取Unix时间的持续时间,然后从中减去“0秒Unix时间”,即“Unix时间0”以获得实际秒数
|eval number=strptime(Duration,"%H:%M:%S.%2N")-strptime("00:00:00.00","%H:%M:%S.%2N")
.toString(“HH:MM:SS”)@deblaton Jean-Philippe从日志中输入的数据是由.NET编写的
“00:00:00.2787721”
(实际上是Serilog中的一些JSON序列化程序)。分数秒是合适的。我希望将此值转换为Splunk中的浮点值(即0.2787721),以便绘制图表。我更清楚地更新了这个问题。我找到的“最接近的”是eval n=strtime(Duration,“%H:%M:%S.%7N”)
-但这会返回一个“日期”,而不是表示时间跨度的数值。@MarkWaterman这就是我所做的。然而,Splunk不支持这种timespan格式似乎是一个缺陷(即,如果这不是我控制的新日志记录源,那么出现的问题仍然存在)。对于任何展望未来的人来说,我使用的“复杂的求值序列”是rex field=duration“(?\d{2}\:(?\d{2}\:(?\d{2})(?\d{2})(?\.\d+)”|评估持续时间秒=216000*小时+3600*分钟+60*分钟+秒+微秒
,将其转换为秒。当然,您需要在手之前提取持续时间。