抓取与发现
数据可以通过Kapacitor的发现和抓取功能从动态列表中的远程目标获取。使用这些功能与TICKscripts监控目标、处理数据,并将数据写入InfluxDB。目前,Kapacitor仅支持Prometheus风格的目标。
注意: 抓取和发现目前处于技术预览阶段。 在后续版本中,配置和行为可能会发生变化。
内容
概述
下面的图表概述了使用Kapacitor发现和抓取数据的基础设施。
图像 1 – 抓取和发现工作流程

- 首先,Kapacitor 实现了发现过程,以识别您基础设施中可用的目标。它定期请求该信息,并从一个 authority 接收该信息。在图中,权威通知 Kapacitor 三个目标:
A、B和C。 - 接下来,Kapacitor 实现抓取过程,从现有目标拉取指标数据。
它以规则的时间间隔运行抓取过程。
这里,Kapacitor 向目标
A、B和C请求指标。 运行在A、B和C上的应用程序在其 HTTP API 上公开了一个/metrics端点,该端点返回特定于应用的统计数据。 - 最后,Kapacitor 根据配置的 TICKscripts 处理数据。使用 TICKscripts 过滤、转换和对度量数据执行其他任务。此外,如果数据需要存储,请配置 TICKscript 将其发送到 InfluxDB。
推送与拉取指标
通过将发现与抓取相结合,Kapacitor 能够建立一个指标收集基础设施,从目标中提取指标,而不是要求它们将指标推送到 InfluxDB。
在目标可能具有短生命周期的动态环境中,提取指标有几个优势。
配置爬虫和发现器
单个抓取器从单个发现者那里抓取目标。配置抓取器和发现者的过程实际上是单独配置每个抓取器和发现者,然后通知抓取器有关发现者的信息。
以下是爬虫的所有配置选项。
示例 1 – 爬虫配置
[[scraper]]
enabled = false
name = "myscraper"
# ID of the discoverer to use
discoverer-id = ""
# The kind of discoverer to use
discoverer-service = ""
db = "mydb"
rp = "myrp"
type = "prometheus"
scheme = "http"
metrics-path = "/metrics"
scrape-interval = "1m0s"
scrape-timeout = "10s"
username = ""
password = ""
bearer-token = ""
ssl-ca = ""
ssl-cert = ""
ssl-key = ""
ssl-server-name = ""
insecure-skip-verify = false
可用的发现者
Kapacitor 支持以下用于发现的服务:
| 名称 | 描述 |
|---|---|
| azure | 发现托管在 Azure 的目标。 |
| consul | 使用 Consul 服务发现来发现目标。 |
| dns | 通过DNS查询发现目标。 |
| ec2 | 发现托管在 AWS EC2 的目标。 |
| file-discovery | 发现文件中列出的目标。 |
| gce | 发现托管在 GCE 的目标。 |
| kubernetes | 发现托管在 Kubernetes 中的目标。 |
| 马拉松 | 使用 Marathon 服务发现来发现目标。 |
| 神经 | 使用 Nerve 服务发现来发现目标。 |
| 服务器集 | 使用 Serversets 服务发现来发现目标。 |
| static-discovery | 静态列出目标。 |
| triton | 使用 Triton 服务发现来发现目标。 |
有关配置每个发现者的详细信息,请参阅示例 配置文件。