Write to M3 from Telegraf
M3 supports multiple methods of writing metrics to the M3 database. Two common options are the InfluxDB® wire-protocol, and the Prometheus remote write protocol. It is possible to write metrics from an existing Telegraf setup to M3 using either of these protocols, so we've covered the configuration for both options.
Variables
These are the placeholders used in the examples:
Variable | Description |
---|---|
M3_HOST | The hostname of your M3DB |
M3_PORT | Port where M3DB is running |
AVNADMIN_PASS | Password for the default avnadmin user |
Configure Telegraf InfluxDB® output plugin for M3
Below is an example of how to configure Telegraf to send metrics to M3 using the InfluxDB line-protocol. These lines belong in the output plugins section of your Telegraf configuration file:
# Configuration for sending metrics to M3
[[outputs.influxdb]]
## The full HTTP URL for your M3 instance.
urls = ["https://M3_HOST:M3_PORT/api/v1/influxdb"]
## If true, no CREATE DATABASE queries will be sent.
## Even if sent, does not affect M3 in any way.
skip_database_creation = true
## HTTP Basic Auth
username = "avnadmin"
password = "secretpassword"
## HTTP Content-Encoding for write request body, can be set to
## "gzip" to compress body or "identity" to apply no encoding.
content_encoding = "gzip"
Configure Telegraf Prometheus remote write for M3
To configure Telegraf to send metrics to M3 using the Prometheus remote write protocol, use the following lines in the output plugins section of the Telegraf configuration file:
# Configuration for sending metrics to M3
[outputs.http]
## URL is the address to send metrics to
url = "https://M3_HOST:M3_PORT/api/v1/prom/remote/write"
## HTTP Basic Auth credentials
username = "avnadmin"
password = "secretpassword"
## Data format to output.
data_format = "prometheusremotewrite"
## Outgoing HTTP headers
[outputs.http.headers]
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
X-Prometheus-Remote-Write-Version = "0.1.0"