文档文档

Kapacitor 命令行客户端

两个关键的可执行文件作为 Kapacitor 的一部分打包。kapacitord 守护程序运行 Kapacitor 服务器,包括其 HTTP 接口。kapacitor 命令行界面 (CLI) 利用 HTTP 接口和其他资源,以提供对许多 Kapacitor 功能的访问。

Kapacitor 入门中介绍了 kapacitor 客户端的一般介绍。

执行客户端时,可以接受两个选项和一个命令,后跟适用于该命令的参数。

kapacitor [options] [command] [args]

本文档概述了 kapacitor CLI 提供的命令

通用选项

默认情况下,客户端尝试通过 HTTP 与在 localhost 端口 9092 上运行的服务器通信。服务器也可以在启用 SSL 的情况下部署。两个命令行选项使您可以覆盖默认通信设置,并针对任何 Kapacitor 服务器使用客户端。

-url

-url 选项为 Kapacitor 服务器提供 HTTP url 字符串 (http(s)://host:port)。如果未在命令行中设置,则使用环境变量 KAPACITOR_URL 的值。这可用于在远程 Kapacitor 服务器上运行 kapacitor 命令。

在 Kapacitor URL 中包含身份验证凭据

如果在 InfluxDB 和 Kapacitor 上启用了身份验证,请在 Kapacitor URL 中包含您的 InfluxDB 用户名和密码作为查询参数,分别为 up。为了方便和安全起见,InfluxData 建议将这些凭据作为 Kapacitor URL 的一部分存储在 KAPACITOR_URL 环境变量中。

export KAPACITOR_URL=https://192.168.67.88:9092?u=username&p=password

# When KAPACITOR_URL is defined, the -url flag isn't necessary.
kapacitor list tasks

-skipVerify

-skipVerify 选项禁用 SSL 验证。连接到使用自签名 SSL 证书保护的 Kapacitor 服务器时,应使用此选项。如果未在命令行中设置,则使用环境变量 KAPACITOR_UNSAFE_SSL 的值。

使用命令行选项
$ kapacitor -skipVerify -url https://192.168.67.88:9093 list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
cpu_alert                                          stream    disabled  false     ["telegraf"."autogen"]
cpu_alert_topic                                    stream    disabled  false     ["telegraf"."autogen"]
top_scores                                         stream    disabled  false     ["game"."autogen"]

核心命令

核心命令是在命令行应用程序中最常见的命令,或者是最常用的命令。

help

help 命令显示帮助消息。要获取有关任何命令的更详细帮助,请键入 kapacitor help <command>

version

version 命令打印 kapacitor 客户端的发行版本。

list

list 命令可用于打印不同 Kapacitor 工件的列表。

delete

delete 命令可用于删除不同的 Kapacitor 工件。

命令 listdelete 在以下部分中更详细地介绍。

服务器管理

kapacitor 客户端可用于调查服务器的各个方面、备份其数据以及处理日志。一项计划中的功能将是将任务定义推送到其他服务器的能力。

backup

backup 命令在指定的filepath 创建 Kapacitor 数据库的备份。

# Syntax
kapacitor backup [PATH_TO_BACKUP_FILE]

# Example
kapacitor backup ~/bak/kapacitor-20180101.db

此命令将静默成功。没有状态消息返回到控制台。将报告诸如权限不足或目录不存在之类的错误。要验证结果,请检查文件系统。

stats

stats 命令显示有关 Kapacitor 服务器的统计信息。它需要 generalingress 参数。

# Syntax
kapacitor stats <general|ingress>

stats general

使用 kapacitor stats general 查看诸如服务器 ID 或主机名之类的值,以及诸如 Kapacitor 使用的任务和订阅数量之类的计数。

$ kapacitor stats general
ClusterID:                    ef3b3f9d-0997-4c0b-b1b6-5d0fb37fe509
ServerID:                     90582c9c-2e25-4654-903e-0acfc48fb5da
Host:                         localhost
Tasks:                        8
Enabled Tasks:                2
Subscriptions:                12
Version:                      1.7.6~n201711280812

stats ingress

使用 kapacitor stats ingress 命令查看 InfluxDB 指标和通过 Kapacitor 服务器的数据点数量。此命令可用于确保 InfluxDB 数据正在写入 Kapacitor。

$ kapacitor stats ingress
Database   Retention Policy Measurement    Points Received
_internal  monitor          cq                        5274
_internal  monitor          database                 52740
_internal  monitor          httpd                     5274
_internal  monitor          queryExecutor             5274
_internal  monitor          runtime                   5274
_internal  monitor          shard                   300976
_internal  monitor          subscriber              126576
_internal  monitor          tsm1_cache              300976
_internal  monitor          tsm1_engine             300976
_internal  monitor          tsm1_filestore          300976
_internal  monitor          tsm1_wal                300976
_internal  monitor          write                     5274
_kapacitor autogen          edges                    26370
_kapacitor autogen          ingress                  73817
_kapacitor autogen          kapacitor                 2637
_kapacitor autogen          load                      2637
_kapacitor autogen          nodes                    23733
_kapacitor autogen          runtime                   2637
_kapacitor autogen          topics                   73836
chronograf autogen          alerts                    1560
telegraf   autogen          cpu                      47502
telegraf   autogen          disk                     31676
telegraf   autogen          diskio                   52800
telegraf   autogen          kernel                    5280
telegraf   autogen          mem                       5280
telegraf   autogen          processes                 5280
telegraf   autogen          swap                     10560
telegraf   autogen          system                   15840

vars

vars 命令显示与 Kapacitor 服务器关联的各种变量。结果以 JSON 格式输出。

$ kapacitor vars
{"cluster_id": "39545771-7b64-4692-ab8f-1796c07f3314",
"cmdline": ["kapacitord"],
"host": "localhost",
"kapacitor": {"795eb8bd-00b5-4a78-9a10-6190546e0a08": {"name": "nodes", "tags": {"host": ...

# Output example has been truncated

为了使输出更具可读性,请将命令通过管道传输到 JSON 格式化程序。

# Example using a Python JSON formatter
kapacitor vars | python -m json.tool

push

push 命令保留用于计划中的功能,该功能将允许将任务从一个 Kapacitor 服务器推送到另一个服务器。

服务

服务是 Kapacitor 服务器的功能模块,用于处理与第三方应用程序的通信、服务器配置以及数据的发现和抓取。有关服务的更多信息,请参阅配置文档。

list service-tests

list service-tests 列出服务器上当前可用的所有服务测试。

# Syntax
kapacitor list service-tests [ <SERVICE_NAME> | <PATTERN> ]

# Example
kapacitor list service-tests

PATTERN 可以是类似 grep 的模式。例如,要运行以字母“a”开头的所有服务的测试,请使用字符串“a*”。

根据您使用的终端,您可能需要通过将模式用引号引起来来将其作为字符串传递。例如:"a*"

服务测试列表输出示例
Service Name
alerta
azure
consul
dns
ec2
file-discovery
gce
hipchat
httppost
influxdb
kubernetes
marathon
mqtt
nerve
opsgenie
pagerduty
pushover
scraper
sensu
serverset
slack
smtp
snmptrap
static-discovery
swarm
talk
telegram
triton
victorops

service-tests

service-tests 命令执行一个或多个可用的服务测试。

kapacitor service-tests [ <SERVICE_NAME> | <PATTERN> ]

PATTERN 可以是类似 grep 的模式。例如,要运行以字母“a”开头的所有服务的测试,请使用字符串“a*”。

根据您使用的终端,您可能需要通过将模式用引号引起来来将其作为字符串传递。例如:"a*"

运行服务测试示例
$ kapacitor service-tests slack talk smtp
Service             Success   Message
slack               true
talk                false     service is not enabled
smtp                false     service is not enabled

通过结合 list service-testsservice-tests 命令,可以在 Linux 系统上使用以下命令测试所有服务:

kapacitor list service-tests | xargs kapacitor service-tests

日志记录

Kapacitor 记录了关于自身、其服务和其任务的大量信息。有关配置日志记录的信息,请参阅配置文档。

logs

logs 命令输出整个 Kapacitor 日志流或特定服务的日志流。日志流可以按日志级别进行过滤。

# Syntax
kapacitor logs [service=<SERVICE_ID>] [lvl=<LEVEL>]

lvl 的值可以是以下之一:

  1. debug
  2. info
  3. error

默认情况下,这将仅返回所选级别的消息。要查看所选级别及更高级别的消息,请在字符串末尾添加 + 字符。

监视 HTTP 服务的 DEBUG 级别及以上的日志消息
$ kapacitor logs service=http lvl=debug+
ts=2018-01-15T10:47:10.017+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.014048161+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e3c47c4-f9d9-11e7-85c5-000000000000 duration=3.234836ms
ts=2018-01-15T10:47:10.020+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.013091282+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e3c2267-f9d9-11e7-85c4-000000000000 duration=7.555256ms
ts=2018-01-15T10:47:10.301+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.301315013+01:00 method=POST uri=/write?consistency=&db=telegraf&precision=ns&rp=autogen protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e681d20-f9d9-11e7-85c7-000000000000 duration=306.967µs
ts=2018-01-15T10:47:10.301+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:47:10.301249656+01:00 method=POST uri=/write?consistency=&db=telegraf&precision=ns&rp=autogen protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0e681a95-f9d9-11e7-85c6-000000000000 duration=387.042µs
# ...

跟踪 Kapacitor 日志

要跟踪所有 Kapacitor 日志,请在不使用 servicelevel 参数的情况下运行命令。

$ kapacitor logs
ts=2018-01-15T10:54:07.884+01:00 lvl=info msg="created log session" service=sessions id=33a21e96-49d5-4891-aad8-0bc96099d148 content-type=
ts=2018-01-15T10:54:10.017+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:54:10.014885535+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0893527c-f9da-11e7-8672-000000000000 duration=2.870539ms
ts=2018-01-15T10:54:10.020+01:00 lvl=info msg="http request" service=http host=127.0.0.1 username=- start=2018-01-15T10:54:10.017509083+01:00 method=POST uri=/write?consistency=&db=_internal&precision=ns&rp=monitor protocol=HTTP/1.1 status=204 referer=- user-agent=InfluxDBClient request-id=0893b8f6-f9da-11e7-8673-000000000000 duration=2.920775ms
# ...

level

level 命令设置从 Kapacitor 服务器写入日志文件的 Kapacitor 日志流的日志级别。在 Linux 系统上,此文件默认位于 /var/log/kapacitor/kapacitor.log。它采用的形式如下:

kapacitor level <LEVEL>

LEVEL 的值可以是以下之一:

  1. debug
  2. info
  3. error

要查看命令生效,请跟踪日志文件(例如,$sudo tail -f -n 128 /var/log/kapacitor/kapacitor.log),然后将日志级别设置为 error。

将 Kapacitor 日志级别设置为 ERROR

kapacitor level error

Kapacitor 日志的流应显示停止。要再次激活它,请将日志级别重置为 debug

将日志级别设置为 DEBUG

kapacitor level debug

跟踪的流应再次变为活动状态。

watch

watch 命令跟踪与**任务**关联的日志。

这与 logs 命令不同,后者允许跟踪与服务关联的日志。

# Syntax
kapacitor watch <TASK_ID> [<TAGS> ...]

cpu_alert 任务中流式传输日志**

$ kapacitor watch cpu_alert
ts=2018-01-15T11:31:30.301+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=CRITICAL id=cpu:nil event_message="cpu:nil is CRITICAL" data="&{cpu map[cpu:cpu6 host:algonquin] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 0 0 0 0 0 0 0 100.00000000000199]]}"
ts=2018-01-15T11:31:30.315+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=OK id=cpu:nil event_message="cpu:nil is OK" data="&{cpu map[cpu:cpu7 host:algonquin] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 99.89989989990681 0 0 0 0 0 0 0.1001001001001535]]}"
ts=2018-01-15T11:31:30.325+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=CRITICAL id=cpu:nil event_message="cpu:nil is CRITICAL" data="&{cpu map[host:algonquin cpu:cpu6] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 0 0 0 0 0 0 0 100.00000000000199]]}"
ts=2018-01-15T11:31:30.335+01:00 lvl=debug msg="alert triggered" service=kapacitor task_master=main task=cpu_alert node=alert2 level=OK id=cpu:nil event_message="cpu:nil is OK" data="&{cpu map[host:algonquin cpu:cpu7] [time usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user] [[2018-01-15 10:31:30 +0000 UTC 0 0 99.89989989990681 0 0 0 0 0 0 0.1001001001001535]]}"
# ...

数据采样

有时,在启用任务之前记录数据样本或查询以排除任务故障可能很有用。Kapacitor 命令行客户端包含许多用于管理数据采样的有用命令。

record

record 命令可用于将数据快照或 InfluxDB 查询的结果记录到 Kapacitor 数据库中。数据快照稍后可以使用其 recording-id 访问。有三种类型的记录可用:batchstreamquery

record batch

kapacitor record batch 记录 batch 类型任务中使用的 InfluxDB 查询的结果。它需要一个时间值,用于从 now 开始的过去数据窗口,由参数 -past 定义,或者由参数 -start-stop 定义的过去间隔。-recording-id 是可选的,如果未提供,则会生成。还需要带有 TASK_ID-task 参数。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。

# Syntax
kapacitor record batch (-no-wait) [-past <WINDOW_IN_PAST> | -start <START_TIME> -stop <STOP_TIME>] [-recording-id <ID>] -task <TASK_ID>

# Example
kapacitor record batch -past 5m -recording-id BlueJaySilverTree -task batch_load_test

record stream

kapacitor record stream 记录数据的实时流。它需要一个 -duration 值来确定记录将运行多长时间。还需要标识目标任务的 -task 参数。-recording-id 值是可选的。如果未提供,则会自动生成。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。

此命令与 stream 选项结合使用将运行到时间持续时间到期为止。它在控制台中返回记录 ID。

# Syntax
kapacitor record stream -duration <DURATION> (-no-wait) (-recording-id <ID> ) -task <TASK_ID>

# Example
kapacitor record stream -duration 1m -task cpu_alert

record query

kapacitor record query 记录 InfluxDB 查询。它需要通过 -query 参数提供的 InfluxDB 查询。它还需要 batchstream-type 值。还可以提供 -recording-id,如果未提供,则会生成。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。

# Syntax
kapacitor record query [-cluster <INFLUXDB_CLUSTER_NAME>] [-no-wait] -query <QUERY> [-recording-id <RECORDING_ID>] -type <stream|batch>

# Example
$ kapacitor record query -query 'SELECT cpu, usage_idle from "telegraf"."autogen"."cpu" where time > now() - 5m' -type stream

replay

replay 命令将记录回放到任务以验证任务的行为方式。它需要通过 -recording 参数提供的记录 ID 和通过 -task 参数提供的任务 ID。可选的布尔参数 -real-clock 将切换根据记录中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time 将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。还可以提供可选的 -replay-id,如果未提供,则会生成。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。

# Syntax
kapacitor replay [-no-wait] [-real-clock] [-rec-time] -recording <ID> [-replay-id <REPLAY_ID>] -task <TASK_ID>

# Example
$ kapacitor replay -recording 4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 -task cpu_alert

replay-live

replay-live 命令允许即时播放数据以验证任务行为。它可以针对 batchquery 记录执行。Kapacitor 既不保存也不记录数据库中的数据。

replay-live query

使用 query 参数,回放针对任务执行 InfluxDB 查询。查询应包括数据库、保留策略和指标字符串。

# Syntax
kapacitor replay-live query [-cluster <CLUSTER_URL>] [-no-wait] -query <QUERY> [-real-clock] [-rec-time] [-replay-id <REPLAY_ID>] -task <TASK_ID>

# Example
kapacitor replay-live query -task cpu_alert -query 'select cpu, usage_idle from "telegraf"."autogen"."cpu" where time > now() - 5m'

此命令需要通过 -query 参数提供的 InfluxDB 查询。它还需要由 -task 参数标识的任务。-replay-id 是可选的,但如果未提供,则会自动生成。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。可选的布尔参数 -real-clock 将切换根据其中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time 将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。

replay-live batch

使用 batch 参数,回放使用已存储到 InfluxDB 的批处理数据执行任务。它采用以下形式:

# Syntax
kapacitor replay-live batch [-no-wait] [ -past <TIME_WINDOW> | -start <START_TIME> -stop <STOP_TIME> ] [-real-clock] [-rec-time] [-replay-id <REPLAY_ID>] -task <TASK_ID>

# Example
kapacitor replay-live batch -start 2018-01-16T00:00:00Z -stop 2018-01-16T12:00:00Z -replay-id GoldRoosterColdBridge180116 -task batch_load_test

此命令需要一个时间值,用于从 now 开始的过去数据窗口,由参数 -past 定义,或者由参数 -start-stop 定义的过去间隔。-replay-id 是可选的,如果未提供,则会生成。还需要带有 TASK_ID-task 参数。可选的布尔参数 -no-wait 会将回放生成到单独的进程中并退出,使其在后台运行。可选的布尔参数 -real-clock 将切换根据其中包含的时间戳之间的时间间隔回放数据。可选的布尔参数 -rec-time 将切换为使用实际记录的时间而不是当前时间。默认行为是使用当前时间。

list recordings

list recordings 命令可用于列出现有记录和回放。

$ kapacitor list recordings
ID                                   Type    Status    Size      Date
0970bcb5-685c-48cc-9a92-741633633f1f stream  finished  3.2 kB    15 Jan 18 16:37 CET
78d3a26e-ea1f-4c52-bd56-2016997313fe stream  finished  23 B      15 Jan 18 15:33 CET
4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 stream  finished  2.2 kB    15 Jan 18 15:25 CET
BlueJaySilverTree                    batch   finished  1.0 kB    15 Jan 18 15:18 CET
7d30caff-e443-4d5f-a0f2-6a933ea35284 batch   finished  998 B     15 Jan 18 15:17 CET

list replays

list replays 命令列出所有回放。

$ kapacitor list replays
ID                                   Task            Recording                            Status   Clock   Date
d861ee94-aec1-43b8-b362-5c3d9a036aff cpu_alert       4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 running  real    16 Jan 18 11:02 CET
GoldRoosterColdBridge180116          batch_load_test                                      finished fast    16 Jan 18 10:23 CET
2d9be22c-647a-425e-89fb-40543bdd3670 cpu_alert                                            finished fast    16 Jan 18 10:12 CET
b972582b-5be9-4626-87b7-c3d9bfc67981 batch_load_test                                      finished fast    15 Jan 18 17:26 CET
c060f960-6b02-49a7-9376-0ee55952a7f0 cpu_alert                                            finished fast    15 Jan 18 17:25 CET
4a43565c-4678-4c98-94b7-e534efdff860 cpu_alert       4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished fast    15 Jan 18 16:52 CET
31f8ea34-455b-4eee-abf2-ed1eb60166a5 cpu_alert       4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished real    15 Jan 18 16:50 CET
bbe8567c-a642-4da9-83ef-2a7d32ad5eb1 cpu_alert       4e0f09c5-1426-4778-8f9b-c4a88f5c2b66 finished fast    15 Jan 18 16:49 CET

delete recordings

delete recordings 命令删除一个或多个记录。

# Syntax
kapacitor delete recordings <Recording-ID | Pattern>

# Examples
kapacitor delete recordings d861ee94-aec1-43b8-b362-5c3d9a036aff
kapacitor delete recordings "test*"

ID 需要是记录的完整 ID,最好从 list recordings 命令的结果中复制和粘贴。

Pattern 可以是类似 grep 的模式,用于标识一组记录。例如,如果值 test0<N> 分配给多个 recording-id,(例如 test01test02test03),那么可以使用模式 "test*" 删除所有 test 记录。

此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list recordings 命令。

delete replays

delete replays 命令删除一个或多个回放。

# Syntax
kapacitor delete replays <Replay-ID | Pattern>

# Examples
kapacitor delete replays d861ee94-aec1-43b8-b362-5c3d9a036aff
kapacitor delete replays "jan-run*"

ID 需要是回放的完整 ID,最好从 list replays 命令的结果中复制和粘贴。

Pattern 可以是类似 grep 的模式,用于标识一组回放。例如,如果值 test0<N> 分配给多个 replay-id,(例如 jan-run01jan-run02jan-run03),那么可以使用模式 "jan-run*" 删除所有 run 回放。

此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list replays 命令。

主题和主题处理程序

主题是警报可以发布消息以及其他服务可以订阅以接收这些消息的主题类别。主题处理程序将主题绑定到服务,从而允许通过各种方式转发消息。

使用告警主题文档中介绍了如何使用主题和主题处理程序。

主题是通过 TICKscript 中 AlertNode 的 topic() 方法创建的。

define-topic-handler

define-topic-handler 命令根据主题处理程序脚本的内容定义或重新定义主题处理程序。

# Syntax
kapacitor define-topic-handler <PATH_TO_HANDLER_SCRIPT>

# Example
$ kapacitor define-topic-handler ./slack_cpu_handler.yaml

此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topic-handlers 命令。

list topics

list topics 显示 Kapacitor 当前存储的所有主题。

$ kapacitor list topics
ID                                                             Level     Collected
1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2          OK                0
32fdb276-4d60-42bc-8f5d-c093e97bd3d0:batch_cpu_alert:alert2    OK                0
666c444c-a33e-42b5-af4d-732311b0e148:batch_cpu_alert:alert2    CRITICAL          0
cpu                                                            OK                0
main:batch_load_test:alert2                                    OK                7
main:chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54:alert3 OK             1028
main:chronograf-v1-e77137c5-dcce-4fd5-a612-3cdaa5f98ef9:alert7 OK                0
main:cpu-alert-test:alert3                                     OK                0

list topic-handlers

list topic-handlers 命令显示 Kapacitor 存储的处理程序。

$ kapacitor list topic-handlers
Topic      ID         Kind
cpu        slack      slack

show-topic

使用 show-topic 命令查看主题的详细信息。

# Syntax
kapacitor show-topic [TOPIC_ID]

# Example
$ kapacitor show-topic 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
ID: 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
Level: OK
Collected: 0
Handlers: []
Events:
Event   Level    Message       Date
cpu:nil OK       cpu:nil is OK 13 Nov 17 13:34 CET

show-topic-handler

show-topic-handler 命令将主题处理程序的内容输出到控制台。

# Syntax
kapacitor show-topic-handler [TOPIC_ID] [HANDLER_ID]

# Example
$ kapacitor show-topic-handler cpu slack
ID: slack
Topic: cpu
Kind: slack
Match:
Options: {"channel":"#kapacitor"}

delete topics

使用 delete topics 命令删除一个或多个主题。

# Syntax
kapacitor delete topics <Topic-ID | Pattern>

# Examples
kapacitor delete topics 1252f40d-c998-430d-abaf-277c43d390e1:cpu_alert:alert2
kapacitor delete topics "cluster*"

Pattern 可以是类似 grep 的模式,用于标识一组主题。例如,如果值 cluster0<N> 分配给多个 topic,(例如 cluster01cluster02cluster03),那么可以使用模式 "cluster*" 删除所有 cluster 主题。

此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topics 命令。

delete topic-handlers

topic-handlers 命令删除主题处理程序。

# Syntax
kapacitor delete topic-handlers [TOPIC_ID] [HANDLER_ID]

# Example
kapacitor delete topic-handlers cpu slack

TOPIC_IDHANDLER_ID 的值可以使用 list 命令确定。

此命令不返回状态或附加消息。它静默失败或成功。要验证结果,请使用 list topics 命令。

任务和任务模板

任务和任务定义构成了 Kapacitor 的核心功能。入门指南中介绍了任务,并在 TICKscript 中详细探讨了任务。

任务模板使重用通用任务结构以创建一套类似任务变得容易。模板任务文档中介绍了它们。

define

define 命令用于从 TICKscript 创建新任务。它采用以下三种形式之一:

  1. 作为简单任务
  2. 从模板
  3. 从带有描述符文件的模板

定义简单任务

# Syntax
kapacitor define <TASK_ID> -tick <PATH_TO_TICKSCRIPT> -type <stream|batch> [-no-reload] -dbrp <DATABASE>.<RETENTION_POLICY>

# Example
kapacitor define sandbox -tick sandbox.tick -type stream -dbrp "telegraf"."autogen"

这种形式的 define 命令需要在 define 标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。通过参数 tick 提供到 TICKscript 的必需路径。还需要任务的 -type,以及由参数 -dbrp 标识的目标数据库和保留策略。可选的布尔参数 -no-reload 将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。

此命令不返回状态或附加消息。可能会返回一些与格式错误或无效 TICKscript 相关的错误消息。要验证结果,请使用 list tasks 命令。

从模板定义任务

# Syntax
kapacitor define <TASK_ID> -template <TEMPLATE_ID> -vars <PATH_TO_VARS_FILE> [-no-reload] -dbrp <DATABASE>.<RETENTION_POLICY>

# Example
kapacitor define cpu_idle -template generic_mean_alert -vars cpu_vars.json -dbrp "telegraf"."autogen"

这种形式的 define 命令需要在 define 标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。要使用的必需模板由 -template 参数标识。还需要由参数 -dbrp 标识的目标数据库和保留策略,以及由 -var 参数标识的包含变量定义的文件路径。可选的布尔参数 -no-reload 将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。

此任务不返回状态或附加消息。要验证结果,请使用 list tasks 命令。

从带有描述符文件的模板定义任务

# Syntax
kapacitor define <TASK_ID> -file <PATH_TO_TEMPLATE_FILE> [-no-reload]

# Example
kapacitor define mem_alert -file mem_alert_from_template.json

这种形式的 define 命令需要在 define 标记后立即提供新的或现有的任务标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新任务。如果标识符已存在,则将更新现有任务。需要提供定义模板、数据库和保留策略以及变量的文件路径,并通过 -file 参数提供。可选的布尔参数 -no-reload 将阻止将任务重新加载到内存中。默认行为是重新加载更新的任务。

此任务不返回状态或附加消息。要验证结果,请使用 list tasks 命令。

define-template

使用此命令将任务模板加载到 Kapacitor。它采用以下形式:

# Syntax
kapacitor define-template <TEMPLATE_ID> -tick <PATH_TO_TICKSCRIPT> -type <string|batch>

# Example
kapacitor define-template generic_mean_alert -tick template-task.tick -type stream

此命令需要在 define-template 标记后立即提供新的或现有模板标识符。如果标识符在 Kapacitor 中尚不存在,则将创建新模板。如果标识符已存在,则将更新现有模板。还需要到定义模板的 TICKscript 的路径,并通过参数 -tick 提供。最后,还必须定义任务的 -type

此任务不返回状态或附加消息。要验证结果,请使用 list templates 命令。

enable

enable 命令启用一个或多个任务。首次创建任务时,它们处于 disabled 状态。

# Syntax
kapacitor enable <TASK_ID>

# Example
kapacitor enable cpu_alert

此命令不返回状态或附加消息。要验证结果,请使用 list tasks 命令。

disable

disable 命令禁用一个或多个活动任务。

# Syntax
kapacitor disable <TASK_ID>...

# Examples
kapacitor disable cpu_alert
kapacitor disable cpu_alert cpu_alert_topic sandbox

此命令不返回状态或附加消息。要验证结果,请使用 list tasks 命令。

reload

reload 命令禁用然后重新启用一个或多个任务。在排除任务故障时,停止并再次启动它很有用。

# Syntax
kapacitor reload <TASK_ID>
kapacitor reload cpu_alert

此命令不返回状态或附加消息。要验证结果,请使用 list tasks 命令。

如果在排除故障并更改任务,在重新加载之前,请使用更新的 TICKscript、模板或模板文件使用 define 命令重新定义。

list tasks

list tasks 命令显示 Kapacitor 当前存储的所有任务。

$ kapacitor list tasks
ID                                                 Type      Status    Executing Databases and Retention Policies
8405b862-e488-447d-a021-b1b7fe0d7194               stream    disabled  false     ["telegraf"."autogen"]
batch_load_test                                    batch     enabled   true      ["telegraf"."autogen"]
chronograf-v1-b12b2554-cf38-4d7e-af24-5b0cd3cecc54 stream    enabled   true      ["telegraf"."autogen"]
cpu_alert                                          stream    enabled   true      ["telegraf"."autogen"]
cpu_idle                                           stream    disabled  false     ["telegraf"."autogen"]
sandbox                                            stream    disabled  false     ["blabla"."autogen"]

list templates

list templates 命令显示 Kapacitor 当前存储的所有模板。

$ kapacitor list templates
ID                 Type      Vars
generic_mean_alert stream    crit,field,groups,measurement,slack_channel,warn,where_filter,window

show

show 命令输出任务的详细信息。

# Syntax
kapacitor show [-replay <REPLAY_ID>] <TASK_ID>

# Example
kapacitor show cpu_alert

REPLAY_ID 是当前正在运行的回放的标识符。

显示任务输出示例
ID: cpu_alert
Template: template_id (included if task was created from a template)
Error:
Template:
Type: stream
Status: enabled
Executing: true
Created: 13 Nov 17 13:38 CET
Modified: 16 Jan 18 17:11 CET
LastEnabled: 16 Jan 18 17:11 CET
Databases Retention Policies: ["telegraf"."autogen"]
TICKscript:
stream
    // Select just the cpu measurement from our example database.
    |from()
        .measurement('cpu')
    |alert()
        .crit(lambda: int("usage_idle") < 70)
        // Whenever we get an alert write it to a file.
        .log('/tmp/alerts.log')

DOT:
digraph cpu_alert {
graph [throughput="0.00 points/s"];

stream0 [avg_exec_time_ns="0s" errors="0" working_cardinality="0" ];
stream0 -> from1 [processed="2574"];

from1 [avg_exec_time_ns="1.92µs" errors="0" working_cardinality="0" ];
from1 -> alert2 [processed="2574"];

alert2 [alerts_triggered="147" avg_exec_time_ns="1.665189ms" crits_triggered="104" errors="0" infos_triggered="0" oks_triggered="43" warns_triggered="0" working_cardinality="1" ];
}

show-template

show-template 命令输出任务模板的详细信息。

# Syntax
kapacitor show-template <TEMPLATE_ID>

# Example
kapacitor show-template generic_mean_alert
show-template 输出示例
ID: generic_mean_alert
Error:
Type: stream
Created: 25 Oct 17 10:12 CEST
Modified: 16 Jan 18 16:52 CET
TICKscript:
// Which measurement to consume
var measurement string

// Optional where filter
var where_filter = lambda: TRUE

// Optional list of group by dimensions
var groups = [*]

// Which field to process
var field string

// Warning criteria, has access to 'mean' field
var warn lambda

// Critical criteria, has access to 'mean' field
var crit lambda

// How much data to window
var window = 5m

// The slack channel for alerts
var slack_channel = '#kapacitor'

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)

Vars:
Name                          Type      Default Value                           Description
crit                          lambda    <required>                              Critical criteria, has access to 'mean' field
field                         string    <required>                              Which field to process
groups                        list      [*]                                     Optional list of group by dimensions
measurement                   string    <required>                              Which measurement to consume
slack_channel                 string    #kapacitor                              The slack channel for alerts
warn                          lambda    <required>                              Warning criteria, has access to 'mean' field
where_filter                  lambda    TRUE                                    Optional where filter
window                        duration  5m0s                                    How much data to window
DOT:
digraph generic_mean_alert {
stream0 -> from1;
from1 -> window2;
window2 -> mean3;
mean3 -> alert4;
}

删除任务

delete tasks 命令移除一个或多个任务。

# Syntax
kapacitor delete tasks <Task-IDs | Pattern>

# Example
kapacitor delete tasks 8405b862-e488-447d-a021-b1b7fe0d7194

Pattern 可以是类似于 GREP 的模式,用于识别一组任务。例如,如果值 cpu0<N> 被分配给多个 task,(例如 cpu01cpu02cpu03),那么可以使用模式 "cpu*" 删除所有 cpu 测试。

此命令不返回状态或附加消息。它会静默地失败或成功。要验证结果,请使用 list tasks 命令。

删除模板

delete templates 命令移除一个或多个模板。

# Syntax
kapacitor delete templates <Template-IDs | Pattern>

# Example
kapacitor delete templates generic_mean_alert

Pattern 可以是类似于 GREP 的模式,用于识别一组任务模板。例如,如果值 generic0<N> 被分配给多个 template,(例如 generic01generic02generic03),那么可以使用模式 "generic*" 删除所有 generic 模板。

此命令不返回状态或附加消息。它会静默地失败或成功。要验证结果,请使用 list templates 命令。

Flux 任务

flux tasks 命令及其子命令管理 Kapacitor Flux 任务。


flux task create

kapacitor flux task create 命令创建一个新的 Kapacitor Flux 任务。

kapacitor flux task create [flags] [flux script or '-' to read from stdin]

标志

标志描述输入类型
-f--fileFlux 脚本文件路径string
-h--help显示命令帮助
--json将输出格式化为 JSON

有关使用示例,请参阅 创建 Kapacitor Flux 任务


flux task list

kapacitor flux task list 命令列出 Kapacitor Flux 任务。

kapacitor flux task list [flags]

别名: find, ls

标志

标志描述输入类型
-h--help显示命令帮助
-i--id任务 IDstring
--json将输出格式化为 JSON
--limit要列出的任务数量(默认为 500)integer
-n--user-id任务所有者 IDstring

有关使用示例,请参阅 列出 Kapacitor Flux 任务


flux task update

kapacitor flux task update 命令更新 Kapacitor Flux 任务。

kapacitor flux task update [flags] [flux script or '-' for stdin]

标志

标志描述输入类型
-f--fileFlux 脚本文件路径string
-h--help显示命令帮助
-i--id(必需) 任务 IDstring
--json将输出格式化为 JSON
--status更新任务状态(activeinactivestring

有关使用示例,请参阅 更新 Kapacitor Flux 任务


flux task retry-failed

kapacitor flux task retry-failed 命令重试失败的 Kapacitor Flux 任务运行。

kapacitor flux task retry-failed [flags]

标志

标志描述输入类型
--after重试在此时间之后发生的运行(RFC3339 时间戳)string
--before重试在此时间之前发生的运行(RFC3339 时间戳)string
--dry-run输出有关将要重试的运行的信息
-h--help显示命令帮助
-i--id任务 IDstring
--json将输出格式化为 JSON
--run-limit每个任务要重试的最大失败运行次数(默认为 100)integer
--status更新任务状态(activeinactivestring
--task-limit要重试失败运行的最大任务数(默认为 100)integer

有关使用示例,请参阅 重试失败的 Kapacitor Flux 任务


flux task log list

kapacitor flux task log list 命令输出 Kapacitor Flux 任务日志。

kapacitor flux task log list [flags]

标志

标志描述输入类型
-h--help显示命令帮助
--json将输出格式化为 JSON
--run-id任务运行 IDstring
--task-id(必需) 任务 IDstring

有关使用示例,请参阅 查看 Kapacitor Flux 任务日志


flux task run list

kapacitor flux task run list 命令列出 Kapacitor Flux 任务的运行。

kapacitor flux task run list [flags]

别名: find, ls

标志

标志描述输入类型
--after列出在此时间之后发生的运行(RFC3339 时间戳)string
--before列出在此时间之前发生的运行(RFC3339 时间戳)string
-h--help显示命令帮助
--json将输出格式化为 JSON
--limit要列出的任务运行次数(默认为 100)integer
--run-id任务运行 IDstring
--task-id(必需) 任务 IDstring

有关使用示例,请参阅 管理 Kapacitor Flux 任务运行


flux task run retry

kapacitor flux task run retry 命令重试 Kapacitor Flux 任务的运行。

kapacitor flux task run retry [flags]

标志

标志描述输入类型
-h--help显示命令帮助
--json将输出格式化为 JSON
--run-id(必需) 任务运行 IDstring
--task-id(必需) 任务 IDstring

有关使用示例,请参阅 管理 Kapacitor Flux 任务运行


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

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

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

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

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

有关如何入门的更多信息,请查看