Documentation

加载目录服务

加载目录服务启用基于文件的Kapacitor任务、模板和主题处理程序的定义,这些定义在启动时或当向进程发送SIGHUP信号时加载。

配置

负载目录服务的配置在Kapacitor配置文件的[load]部分指定。

[load]
 enabled = true
 dir="/path/to/directory"

dir 指定定义文件所在的目录。

该服务将尝试从三个子目录加载定义。

目录 tasks 应该包含任务 TICKscripts 和相关的模板任务定义文件(可以是 YAML 或 JSON)。

目录 templates 应包含模板化的 TICKscripts。

handlers目录将包含YAML或JSON格式的主题处理程序定义。

任务

任务文件必须放置在负载服务目录的 tasks 子目录中。任务 TICK 脚本是根据以下方案指定的:

  • id - 不带.tick扩展名的文件名
  • type - 由任务的自我检查确定(流或批处理)
  • dbrp - 使用dbrp关键字定义,后跟指定的数据库和保留策略

在以下示例中,TICKscript 将为 dbrp telegraf.autogen 创建一个名为 my_taskstream 任务。

// /path/to/directory/tasks/my_task.tick
dbrp "telegraf"."autogen"

stream
    |from()
        .measurement('cpu')
        .groupBy(*)
    |alert()
        .warn(lambda: "usage_idle" < 20)
        .crit(lambda: "usage_idle" < 10)
        // Send alerts to the `cpu` topic
        .topic('cpu')

任务模板

模板文件必须放置在加载服务目录的 templates 子目录中。任务模板按照以下方案定义:

  • id - 文件名,不带扩展名
  • type - 由任务的自省确定(流或批处理)
  • dbrp - 使用dbrp关键字定义,后面跟随指定的数据库和保留策略

以下TICKscript示例将为dbrp telegraf.autogen 创建一个名为 my_templatestream 模板。

// /path/to/directory/templates/my_template.tick
dbrp "telegraf"."autogen"

var measurement string
var where_filter = lambda: TRUE
var groups = [*]
var field string
var warn lambda
var crit lambda
var window = 5m
var slack_channel = '#alerts'

stream
    |from()
        .measurement(measurement)
        .where(where_filter)
        .groupBy(groups)
    |window()
        .period(window)
        .every(window)
    |mean(field)
    |alert()
         .warn(warn)
         .crit(crit)
         .slack()
         .channel(slack_channel)

模板化任务

模板任务文件必须放在负载服务目录的 tasks 子目录中。
模板任务根据以下方案定义:

  • id - 不带扩展名的文件名,没有 yamlymljson 扩展名
  • dbrps - 如果在模板中未指定则为必需
  • template-id - 必需
  • vars - 模板变量的列表

在这个例子中,模板化任务 YAML 文件创建了一个 stream 任务,名为 my_templated_task,用于 dbrp telegraf.autogen

# /path/to/directory/tasks/my_templated_task.tick
dbrps:
  - { db: "telegraf", rp: "autogen"}
template-id: my_template
vars:
  measurement:
   type: string
   value: cpu
  where_filter:
   type: lambda
   value: "\"cpu\" == 'cpu-total'"
  groups:
   type: list
   value:
       - type: string
         value: host
       - type: string
         value: dc
  field:
   type: string
   value : usage_idle
  warn:
   type: lambda
   value: "\"mean\" < 30.0"
  crit:
   type: lambda
   value: "\"mean\" < 10.0"
  window:
   type: duration
   value : 1m
  slack_channel:
   type: string
   value: "#alerts_testing"

也可以使用JSON创建相同的任务,如此示例所示:

{
  "dbrps": [{"db": "telegraf", "rp": "autogen"}],
  "template-id": "my_template",
  "vars": {
    "measurement": {"type" : "string", "value" : "cpu" },
    "where_filter": {"type": "lambda", "value": "\"cpu\" == 'cpu-total'"},
    "groups": {"type": "list", "value": [{"type":"string", "value":"host"},{"type":"string", "value":"dc"}]},
    "field": {"type" : "string", "value" : "usage_idle" },
    "warn": {"type" : "lambda", "value" : "\"mean\" < 30.0" },
    "crit": {"type" : "lambda", "value" : "\"mean\" < 10.0" },
    "window": {"type" : "duration", "value" : "1m" },
    "slack_channel": {"type" : "string", "value" : "#alerts_testing" }
  }
}

主题处理器

主题处理程序文件必须放置在加载服务目录的 handlers 子目录中。

id: handler-id
topic: cpu
kind: slack
match: changed() == TRUE
options:
  channel: '#alerts'


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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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