content/kapacitor/v1/working/scraping-and-discovery.md
Data can be pulled from a dynamic list of remote targets with the discovery and scraping features of Kapacitor. Use those features with TICKscripts to monitor targets, process the data, and write data to InfluxDB. Currently, Kapacitor supports only Prometheus style targets.
{{% note %}} Note: Scraping and discovery is currently under technical preview. There may be changes to the configuration and behavior in subsequent releases. {{% /note %}}
The diagram below outlines the infrastructure for discovering and scraping data with Kapacitor.
Image 1 – Scrapping and Discovery work flow
A, B, and C.A, B, and C.
The application running on A, B, and C exposes a /metrics endpoint on its HTTP API which returns application-specific statistics.By combining discovery with scraping, Kapacitor enables a metrics gathering infrastructure to pull metrics off of targets instead of requiring them to push metrics out to InfluxDB. Pulling metrics has several advantages in dynamic environments where a target may have a short lifecycle.
A single scraper scrapes the targets from a single discoverer. Configuring both scrapers and discoverers comes down to configuring each individually and then informing the scraper about the discoverer.
Below are all the configuration options for a scraper.
Example 1 – Scrapper Configuration
[[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 supports the following services for discovery:
| Name | Description |
|---|---|
| azure | Discover targets hosted in Azure. |
| consul | Discover targets using Consul service discovery. |
| dns | Discover targets via DNS queries. |
| ec2 | Discover targets hosted in AWS EC2. |
| file-discovery | Discover targets listed in files. |
| gce | Discover targets hosted in GCE. |
| kubernetes | Discover targets hosted in Kubernetes. |
| marathon | Discover targets using Marathon service discovery. |
| nerve | Discover targets using Nerve service discovery. |
| serverset | Discover targets using Serversets service discovery. |
| static-discovery | Statically list targets. |
| triton | Discover targets using Triton service discovery. |
See the example configuration file for details on configuring each discoverer.