Documentation

创建自定义检查

在用户界面中,您可以创建两种检查thresholddeadman

使用 Flux 任务,可以创建一个自定义检查,提供一些优势:

  • 自定义并转换您希望用于检查的数据。
  • 为您的警报设置自定义条件(除了 thresholddeadman )。

创建任务

  1. 在 InfluxDB 用户界面中,选择左侧导航菜单中的 任务

  2. 点击 创建任务

  3. Name 字段中,输入一个描述性名称,然后在 Every 字段中输入任务运行的频率(例如,10m)。有关更多详细信息,例如使用 cron 语法或包含偏移,请参阅 Task configuration options

  4. 输入您的自定义检查的Flux脚本,包括monitor.check函数。

使用/api/v2/checks/{checkID}/query API接口查看在UI中构建的检查的Flux代码。 这对构建自定义检查非常有用。

示例:监控失败的任务

下面的脚本相当复杂,可以作为类似任务的框架。 它执行以下操作:

  • 导入必要的 influxdata/influxdb/monitor 包,以及其他数据处理的包。
  • 查询_tasks存储桶以获取您的检查生成的所有状态。
  • 设置要警报的 _level,例如 critwarninfook
  • 创建一个 check 对象,用于指定检查的 ID、名称和类型。
  • 定义 okcrit 状态。
  • check上执行monitor函数,使用task_data

示例警报任务脚本

import "strings"
import "regexp"
import "influxdata/influxdb/monitor"
import "influxdata/influxdb/schema"

option task = {name: "Failed Tasks Check", every: 1h, offset: 4m}

task_data = from(bucket: "_tasks")
    |> range(start: -task.every)
    |> filter(fn: (r) => r["_measurement"] == "runs")
    |> filter(fn: (r) => r["_field"] == "logs")
    |> map(fn: (r) => ({r with name: strings.split(v: regexp.findString(r: /option task = \{([^\}]+)/, v: r._value), t: "\\\\\\\"")[1]}))
    |> drop(columns: ["_value", "_start", "_stop"])
    |> group(columns: ["name", "taskID", "status", "_measurement"])
    |> map(fn: (r) => ({r with _value: if r.status == "failed" then 1 else 0}))
    |> last()

check = {
    // 16 characters, alphanumeric
    _check_id: "0000000000000001",
    // Name string
    _check_name: "Failed Tasks Check",
    // Check type (threshold, deadman, or custom)
    _type: "custom",
    tags: {},
}
ok = (r) => r["logs"] == 0
crit = (r) => r["logs"] == 1
messageFn = (r) => "The task: ${r.taskID} - ${r.name} has a status of ${r.status}"

task_data
    |> schema["fieldsAsCols"]()
    |> monitor["check"](data: check, messageFn: messageFn, ok: ok, crit: crit)

创建自定义检查不会发送通知邮件。 有关如何创建通知邮件的信息,请参见 创建通知端点创建通知规则, 和 发送警报邮件



Flux的未来

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

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

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

由TSM驱动的InfluxDB Cloud