文档文档

BatchNode

batch 节点处理多个子 QueryNode 或 QueryFluxNode 的创建。每次调用 queryqueryFlux 都会创建一个可以进一步配置的子批处理节点。请参阅 QueryNodeQueryFluxNode 批处理任务中的 batch 变量是 BatchNode 的一个实例。

当使用 BatchNode 时,需要 QueryNodeQueryFluxNode。它们定义了批处理数据的来源和计划,应在任何其他 链接方法 之前使用。

示例

var errors = batch
              |query('SELECT value from errors')
              ...
var views = batch
              |query('SELECT value from views')
              ...
var errors = batch
              |queryFlux('''
                from(bucket: "example-bucket")
                  |> range(start: -1m) 
                  |> filter(fn: (r) => r._measurement == "errors")
              ''')
              ...
var views = batch
              |queryFlux('''
                from(bucket: "example-bucket")
                  |> range(start: -1m) 
                  |> filter(fn: (r) => r._measurement == "views")
              ''')
              ...

可用统计信息

  • query_errors:查询时的错误数
  • batches_queried:从查询返回的批次数
  • points_queried:批处理中的总点数

构造函数

链接方法描述
batch没有构造函数签名。

属性方法

设置器描述
quiet ( )禁止来自此节点的所有错误日志记录事件。

链接方法

Deadman, Query, FluxQuery, Stats


属性

属性方法修改调用节点上的状态。它们不会向管道添加另一个节点,并且始终返回对调用节点的引用。属性方法使用 . 运算符标记。

Quiet

禁止来自此节点的所有错误日志记录事件。

batch.quiet()

链接方法

链接方法在管道中创建一个新节点,作为调用节点的子节点。它们不会修改调用节点。链接方法使用 | 运算符标记。

Deadman

用于在低吞吐量(又名“死人开关”)时创建告警的辅助函数。

  • 阈值:如果吞吐量降至阈值以下(点/间隔),则触发告警。
  • 间隔:检查吞吐量的频率。
  • 表达式:也要评估的可选表达式列表。对一天中的时间告警很有用。

示例

    var data = batch
        |query()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |deadman(100.0, 10s)
    //Do normal processing of data
    data...

以上示例等效于此示例

    var data = batch
        |query()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |stats(10s)
            .align()
        |derivative('emitted')
            .unit(10s)
            .nonNegative()
        |alert()
            .id('node \'stream0\' in task \'{{ .TaskName }}\'')
            .message('{{ .ID }} is {{ if eq .Level "OK" }}alive{{ else }}dead{{ end }}: {{ index .Fields "emitted" | printf "%0.3f" }} points/10s.')
            .crit(lambda: "emitted" <= 100.0)
    //Do normal processing of data
    data...

idmessage 告警属性可以通过 ‘deadman’ 配置部分全局配置。

由于 AlertNode 是最后一部分,因此可以像往常一样进一步修改它。示例

    var data = batch
        |query()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |deadman(100.0, 10s)
            .slack()
            .channel('#dead_tasks')
    //Do normal processing of data
    data...

您可以指定其他 lambda 表达式,以进一步约束何时触发死人开关。示例

    var data = batch
        |query()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    // Only trigger the alert if the time of day is between 8am-5pm.
    data
        |deadman(100.0, 10s, lambda: hour("time") >= 8 AND hour("time") <= 17)
    //Do normal processing of data
    data...
batch|deadman(threshold float64, interval time.Duration, expr ...ast.LambdaNode)

返回: AlertNode

Query

要执行的查询。WHERE 子句中不得包含时间条件,也不得包含 GROUP BY 子句。时间条件根据周期、偏移量和计划动态添加。GROUP BY 子句根据传递给 groupBy 方法的维度动态添加。

batch|query(q string)

返回: QueryNode

QueryFlux

要执行的 Flux 查询。

batch|QueryFlux(queryStr string)

返回: QueryFluxNode

Stats

创建一个新的数据流,其中包含节点的内部统计信息。间隔表示基于实时发出统计信息的频率。这意味着间隔时间独立于源节点正在接收的数据点的时间。

batch|stats(interval time.Duration)

返回: StatsNode


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源现已发布公开 Alpha 版本

InfluxDB 3 开源现在可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看