5.9 KiB
title | seotitle | weight | description | menu | related | influxdb/v2.1/tags | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Scrape Prometheus metrics | Scape Prometheus metrics into InfluxDB | 205 | Use Telegraf, InfluxDB scrapers, or the `prometheus.scrape` Flux function to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store them in InfluxDB. |
|
|
|
Use [Telegraf](/{{< latest "telegraf" >}}/){{% oss-only %}}, InfluxDB scrapers,{{% /oss-only %}}
or the [prometheus.scrape
Flux function](/{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/)
to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store them in InfluxDB.
{{% oss-only %}}
{{% /oss-only %}} {{% cloud-only %}}
{{% /cloud-only %}}
Use Telegraf
To use Telegraf to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and write them to InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}, follow these steps:
- Add the [Prometheus input plugin](/{{< latest "telegraf" >}}/plugins/#input-prometheus) to your Telegraf configuration file.
- Set the
urls
to scrape metrics from. - Set the
metric_version
configuration option to specify which metric parsing version to use (version2
is recommended).
- Set the
- Add the [InfluxDB v2 output plugin](/{{< latest "telegraf" >}}/plugins/#output-influxdb_v2) to your Telegraf configuration file and configure it to to write to InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}.
Example telegraf.conf
# ...
## Collect Prometheus formatted metrics
[[inputs.prometheus]]
urls = ["http://example.com/metrics"]
metric_version = 2
## Write Prometheus formatted metrics to InfluxDB
[[outputs.influxdb_v2]]
urls = ["http://localhost:8086"]
token = "$INFLUX_TOKEN"
organization = "example-org"
bucket = "example-bucket"
# ...
{{% oss-only %}}
Use an InfluxDB scraper
InfluxDB scrapers automatically scrape Prometheus-formatted metrics from an HTTP-accessible endpoint at a regular interval.
Create a scraper with the InfluxDB API
Use the InfluxDB API /api/v2/scrapers
endpoint to manage scrapers and member privileges for scrapers.
To create a scraper, send an HTTP POST
request to the /api/v2/scrapers
endpoint.
{{< api-endpoint method="POST" endpoint="http://localhost:8086/api/v2/scrapers" >}}
Include the following in your request:
Requirement | Include by |
---|---|
API token with write: orgs/YOUR_ORG_ID/scrapers permission |
Use the Authorization header and the Bearer or Token scheme. |
Organization | Pass as orgID in the request body. |
Scraper name | Pass as name in the request body. |
Format of scraped data | Pass as type in the request body. Prometheus data format (prometheus ) is the only supported type. |
URL endpoint to scrape | Pass as url in the request body. |
Optionally, to force the scraper to skip TLS verification and ignore self-signed certificates at the url
, pass "allowInsecure": true
in the request body.
Example
curl -v --request POST http://localhost:8086/api/v2/scrapers \
--header "Authorization: Token ${INFLUX_TOKEN}" \
--header 'Content-type: application/json' \
--data-binary @- << JSON
{
"name": "Scraper name",
"type": "prometheus",
"url": "http://localhost:9090/metrics",
"orgID": "${INFLUX_ORG}",
"bucketID": "c55193a037c3b0ca",
"allowInsecure": true
}
JSON
Create a scraper with the InfluxDB UI
To use the InfluxDB UI to manage scrapers, see Scrape data using InfluxDB scrapers.
{{% /oss-only %}}
Use prometheus.scrape()
To use the [prometheus.scrape()
Flux function](/{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/)
to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and write
them to InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}, do the following in your Flux script:
- Import the [
experimental/prometheus
package](/{{< latest "flux" >}}/stdlib/experimental/prometheus/). - Use
prometheus.scrape()
and provide the URL to scrape metrics from. - Use [
to()
](/{{< latest "flux" >}}/stdlib/influxdata/influxdb/to/) and specify the InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}} bucket to write the scraped metrics to.
Example Flux script
import "experimental/prometheus"
prometheus.scrape(url: "http://example.com/metrics")
|> to(bucket: "example-bucket")
- (Optional) To scrape Prometheus metrics at regular intervals using Flux, add your Flux scraping script as an [InfluxDB task](/{{< latest "influxdb" >}}/process-data/).
For information about scraping Prometheus-formatted metrics with prometheus.scrape()
,
see [Scrape Prometheus metrics with Flux](/{{< latest "flux" >}}/prometheus/scrape-prometheus/).