巧妙地格式化毫秒
Formatting milliseconds smartly
我有一个查询以毫秒为单位汇总了一些数据:
requests
| summarize avg(duration) by name
当我显示此数据时,我想对其进行格式化,以便它以智能方式显示时间量:
示例:
- 1500 将显示 1.5 秒
- 300 将显示 300 毫秒
- 120000 将显示 2 分钟
我知道 Application Insights 的内置图表在“性能”选项卡中执行此操作,但我找不到执行此操作的内置函数。有谁知道是否有这样做的功能?
下面是一个选项,使用 timespan
算法和一些字符串操作
或者 - 如果符合您的要求 - 您可以使用 format_timespan()
:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/format-timespanfunction
let format_ms_as_pretty_string = (t:long)
{
case(t < 1s / 1ms, strcat(t, " ms"),
t < 1m / 1ms, strcat(round(1.0 * t * 1ms / 1s, 3), " secs"),
t < 1h / 1ms, strcat(round(1.0 * t * 1ms / 1m, 3), " mins"),
strcat(round(1.0 * t * 1ms / 1h, 3), " hours"))
}
;
let input = datatable(t:long) [1500,300,120000,8481600,360100] // replace this with your input
;
input
| extend output = format_ms_as_pretty_string(t)
t
output
1500
1.5 secs
300
300 ms
120000
2.0 mins
8481600
2.356 hours
360100
6.002 mins
我有一个查询以毫秒为单位汇总了一些数据:
requests
| summarize avg(duration) by name
当我显示此数据时,我想对其进行格式化,以便它以智能方式显示时间量:
示例:
- 1500 将显示 1.5 秒
- 300 将显示 300 毫秒
- 120000 将显示 2 分钟
我知道 Application Insights 的内置图表在“性能”选项卡中执行此操作,但我找不到执行此操作的内置函数。有谁知道是否有这样做的功能?
下面是一个选项,使用 timespan
算法和一些字符串操作
或者 - 如果符合您的要求 - 您可以使用 format_timespan()
:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/format-timespanfunction
let format_ms_as_pretty_string = (t:long)
{
case(t < 1s / 1ms, strcat(t, " ms"),
t < 1m / 1ms, strcat(round(1.0 * t * 1ms / 1s, 3), " secs"),
t < 1h / 1ms, strcat(round(1.0 * t * 1ms / 1m, 3), " mins"),
strcat(round(1.0 * t * 1ms / 1h, 3), " hours"))
}
;
let input = datatable(t:long) [1500,300,120000,8481600,360100] // replace this with your input
;
input
| extend output = format_ms_as_pretty_string(t)
t | output |
---|---|
1500 | 1.5 secs |
300 | 300 ms |
120000 | 2.0 mins |
8481600 | 2.356 hours |
360100 | 6.002 mins |