docs-v2/content/shared/influxdb-v2/write-data/developer-tools/scrape-prometheus-metrics.md

3.3 KiB

Use Telegraf{{% show-in "v2" %}}, InfluxDB scrapers,{{% /show-in %}} or the prometheus.scrape Flux function to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store them in InfluxDB.

{{% show-in "v2" %}}

{{% /show-in %}} {{% show-in "cloud,cloud-serverless" %}}

{{% /show-in %}}

Use Telegraf

To use Telegraf to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and write them to InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}}, follow these steps:

  1. Add the Prometheus input plugin to your Telegraf configuration file.
    1. Set the urls to scrape metrics from.
    2. Set the metric_version configuration option to specify which metric parsing version to use (version 2 is recommended).
  2. Add the InfluxDB v2 output plugin to your Telegraf configuration file and configure it to write to InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}}.
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"

# ...

{{% show-in "v2" %}}

Use an InfluxDB scraper

InfluxDB scrapers automatically scrape Prometheus-formatted metrics from an HTTP-accessible endpoint at a regular interval. For information about setting up an InfluxDB scraper, see Scrape data using InfluxDB scrapers.

{{% /show-in %}}

Use prometheus.scrape()

To use the prometheus.scrape() Flux function to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and write them to InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}}, do the following in your Flux script:

  1. Import the experimental/prometheus package.
  2. Use prometheus.scrape() and provide the URL to scrape metrics from.
  3. Use to() and specify the InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}} bucket to write the scraped metrics to.
Example Flux script
import "experimental/prometheus"

prometheus.scrape(url: "http://example.com/metrics")
    |> to(bucket: "example-bucket")
  1. (Optional) To scrape Prometheus metrics at regular intervals using Flux, add your Flux scraping script as an InfluxDB task.

For information about scraping Prometheus-formatted metrics with prometheus.scrape(), see Scrape Prometheus metrics with Flux.