85 lines
3.3 KiB
Markdown
85 lines
3.3 KiB
Markdown
|
|
Use [Telegraf](/telegraf/v1/){{% show-in "v2" %}}, [InfluxDB scrapers](/influxdb/version/write-data/no-code/scrape-data/),{{% /show-in %}}
|
|
or the [`prometheus.scrape` Flux function](/flux/v0/stdlib/experimental/prometheus/scrape/)
|
|
to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store them in InfluxDB.
|
|
|
|
{{% show-in "v2" %}}
|
|
|
|
- [Use Telegraf](#use-telegraf)
|
|
- [Use an InfluxDB scraper](#use-an-influxdb-scraper)
|
|
- [Use prometheus.scrape()](#use-prometheusscrape)
|
|
|
|
{{% /show-in %}}
|
|
{{% show-in "cloud,cloud-serverless" %}}
|
|
|
|
- [Use Telegraf](#use-telegraf)
|
|
- [Use prometheus.scrape()](#use-prometheusscrape)
|
|
|
|
{{% /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](/telegraf/v1/plugins/#input-prometheus) 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](/influxdb/version/reference/prometheus-metrics/) to use
|
|
_(version `2` is recommended)_.
|
|
2. Add the [InfluxDB v2 output plugin](/telegraf/v1/plugins/#output-influxdb_v2)
|
|
to your Telegraf configuration file and configure it to write to
|
|
InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}}.
|
|
|
|
##### Example telegraf.conf
|
|
```toml
|
|
# ...
|
|
|
|
## 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](/influxdb/version/write-data/no-code/scrape-data/).
|
|
|
|
{{% /show-in %}}
|
|
|
|
## Use prometheus.scrape()
|
|
To use the [`prometheus.scrape()` Flux function](/flux/v0/stdlib/experimental/prometheus/scrape/)
|
|
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](/flux/v0/stdlib/experimental/prometheus/).
|
|
2. Use `prometheus.scrape()` and provide the URL to scrape metrics from.
|
|
3. Use [`to()`](/flux/v0/stdlib/influxdata/influxdb/to/) and specify the InfluxDB{{% show-in "cloud,cloud-serverless" %}} Cloud{{% /show-in %}} bucket to write
|
|
the scraped metrics to.
|
|
|
|
##### Example Flux script
|
|
```js
|
|
import "experimental/prometheus"
|
|
|
|
prometheus.scrape(url: "http://example.com/metrics")
|
|
|> to(bucket: "example-bucket")
|
|
```
|
|
|
|
4. (Optional) To scrape Prometheus metrics at regular intervals using Flux, add your Flux
|
|
scraping script as an [InfluxDB task](/influxdb/version/process-data/).
|
|
|
|
_For information about scraping Prometheus-formatted metrics with `prometheus.scrape()`,
|
|
see [Scrape Prometheus metrics with Flux](/flux/v0/prometheus/scrape-prometheus/)._
|