Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Splunk中转换带有小数秒的timespan字符串(例如HH:MM:SS.ff..)以进行图表绘制?_C#_.net_Time_Data Conversion_Splunk - Fatal编程技术网

C# 如何在Splunk中转换带有小数秒的timespan字符串(例如HH:MM:SS.ff..)以进行图表绘制?

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序列)不是提取数据的简单或容易复制的方法;

Splunk作为“将[s]一个持续时间格式
[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*分钟+秒+微秒
,将其转换为秒。当然,您需要在手之前提取持续时间。