文档文档

Kapacitor 命令行客户端

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

关于 kapacitor 客户端的一般介绍,请参阅 Kapacitor 入门

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

kapacitor [options] [command] [args]

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

通用选项

默认情况下,客户端尝试与在 localhost 的 9092 端口上运行的服务器进行 HTTP 通信。服务器也可以在启用 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 命令在指定的文件路径创建 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>

它采用以下形式

  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 记录在批处理类型任务中使用的 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 查询。它还需要 -type 值,可以是 batchstream。也可以提供 -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 中 AlertNodetopic() 方法创建的。

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

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

此命令不返回任何状态或附加消息。它会静默失败或成功。要验证结果,请使用 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
显示模板输出示例
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

delet 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

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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看