文档文档

stateDuration() 函数

stateDuration() 返回给定状态的累积持续时间。

状态由 fn 谓词函数定义。对于每个连续评估为 true 的记录,状态持续时间会按照指定的 unit 增加记录之间的时间间隔。当记录评估为 false 时,该值将设置为 -1,并且状态持续时间将重置。如果记录在评估期间生成错误,则会丢弃该点,并且不会影响状态持续时间。

状态持续时间将作为附加列添加到每个记录。持续时间以指定的单位表示为整数。

注意: 由于给定状态中的第一个点没有上一个点,因此其状态持续时间将为 0。

函数类型签名
(
    <-tables: stream[A],
    fn: (r: A) => bool,
    ?column: string,
    ?timeColumn: string,
    ?unit: duration,
) => stream[B] where A: Record, B: Record

有关更多信息,请参阅函数类型签名

参数

fn

必需)用于标识记录状态的谓词函数。

column

用于存储状态持续时间的列。默认为 stateDuration

timeColumn

用于计算行之间经过时间的 Time 列。默认为 _time

unit

用于增加状态持续时间的单位。默认为 1s(秒)。

示例单位

  • 1ns(纳秒)
  • 1us(微秒)
  • 1ms(毫秒)
  • 1s(秒)
  • 1m(分钟)
  • 1h(小时)
  • 1d(天)

tables

输入数据。默认为管道转发数据 (<-)。

示例

返回在指定状态下花费的时间

import "sampledata"

sampledata.int()
    |> stateDuration(fn: (r) => r._value < 15)

查看示例输入和输出


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续按当前方式使用它,而无需对代码进行任何更改。

阅读更多内容

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速的最新数据引擎,可实时收集和处理数据,并将其持久保存到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看