events.duration() 函数
events.duration()
是用户贡献的函数,由包作者维护。
events.duration()
计算事件的持续时间。
该函数确定记录与后续记录之间的时间,并将持续时间与第一条记录(事件的开始)关联。要计算最后一个事件的持续时间,该函数会将最后一条记录的时间戳与 stopColumn
中的时间戳或指定的停止时间进行比较。
类似函数
events.duration()
与 elapsed()
和 stateDuration()
类似,但在重要方面有所不同
elapsed()
会删除第一条记录。events.duration()
不会。stateDuration()
计算在状态(由谓词函数确定)中花费的总时间。events.duration()
返回所有记录及其后续记录之间的持续时间。
请参阅下面的示例。
函数类型签名
(
<-tables: stream[A],
?columnName: string,
?stop: time,
?stopColumn: string,
?timeColumn: string,
?unit: duration,
) => stream[B] where A: Record, B: Record
有关更多信息,请参阅函数类型签名。
参数
unit
计算状态持续时间的持续时间单位。默认为 1ns
。
columnName
结果列的名称。默认为 "duration"
。
timeColumn
时间列的名称。默认为 "_time"
。
stopColumn
停止列的名称。默认为 "_stop"
。
stop
计算结果时使用的最晚时间。
如果提供,stop
将覆盖 stopColumn
中的时间值。
tables
输入数据。默认为管道转发数据 (<-
)。
示例
计算状态的持续时间
import "array"
import "contrib/tomhollingworth/events"
data
|> events.duration(unit: 1m, stop: 2020-01-02T00:00:00Z)
与类似函数比较
以下示例包括与输入数据的 _time
和 state
值相关的 events.duration()
、elapsed()
和 stateDuration()
的输出值。
import "array"
import "contrib/tomhollingworth/events"
union(
tables: [
data
|> events.duration(unit: 1m, stop: 2020-01-02T00:00:00Z)
|> map(
fn: (r) =>
({
_time: r._time,
state: r.state,
function: "events.Duration()",
value: r.duration,
}),
),
data
|> elapsed(unit: 1m)
|> map(
fn: (r) =>
({_time: r._time, state: r.state, function: "elapsed()", value: r.elapsed}),
),
data
|> stateDuration(unit: 1m, fn: (r) => true)
|> map(
fn: (r) =>
({
_time: r._time,
state: r.state,
function: "stateDuration()",
value: r.stateDuration,
}),
),
],
)
|> pivot(rowKey: ["_time", "state"], columnKey: ["function"], valueColumn: "value")
此页内容是否有帮助?
感谢您的反馈!