4.2 KiB
Use the Telegraf file
input plugin to read and parse CSV data into
line protocol
and write it to {{< product-name >}}.
Telegraf is a plugin-based agent that collects
metrics from different sources and writes them to specified destinations.
Configure Telegraf to read CSV files
- Add and enable the
inputs.file
plugin in your Telegraf configuration file. - Use the
files
option to specify the list of CSV files to read. CSV files must be accessible by the Telegraf agent. - Set the
data_format
option tocsv
. - Define all other
csv_
configuration options specific to the CSV data you want to write to {{< product-name >}}. For detailed information about each of the CSV format configuration options, see CSV input data format.
[[inputs.file]]
files = ["/path/to/example.csv"]
data_format = "csv"
csv_header_row_count = 0
csv_column_names = []
csv_column_types = []
csv_skip_rows = 0
csv_metadata_rows = 0
csv_metadata_separators = [":", "="]
csv_metadata_trim_set = ""
csv_skip_columns = 0
csv_delimiter = ","
csv_comment = ""
csv_trim_space = false
csv_tag_columns = []
csv_measurement_column = ""
csv_timestamp_column = ""
csv_timestamp_format = ""
csv_timezone = ""
csv_skip_values = []
csv_skip_errors = false
csv_reset_mode = "none"
Configure Telegraf to write to InfluxDB
To send data to {{< product-name >}}, enable and configure the
influxdb_v2
output plugin
in your telegraf.conf
.
{{% code-placeholders "AUTH_TOKEN|DATABASE_NAME" %}}
[[inputs.file]]
files = ["/path/to/example.csv"]
data_format = "csv"
csv_header_row_count = 0
csv_column_names = []
csv_column_types = []
csv_skip_rows = 0
csv_metadata_rows = 0
csv_metadata_separators = [":", "="]
csv_metadata_trim_set = ""
csv_skip_columns = 0
csv_delimiter = ","
csv_comment = ""
csv_trim_space = false
csv_tag_columns = []
csv_measurement_column = ""
csv_timestamp_column = ""
csv_timestamp_format = ""
csv_timezone = ""
csv_skip_values = []
csv_skip_errors = false
csv_reset_mode = "none"
[[outputs.influxdb_v2]]
urls = ["http://{{< influxdb/host >}}"]
token = "AUTH_TOKEN"
organization = ""
bucket = "DATABASE_NAME"
content_encoding = "gzip"
{{% /code-placeholders %}}
Replace the following:
-
{{% code-placeholder-key %}}
DATABASE_NAME
{{% /code-placeholder-key %}}: the name of the database to write data to -
{{% code-placeholder-key %}}
AUTH_TOKEN
{{% /code-placeholder-key %}}: your {{< product-name >}} authorization token. Store this in a secret store or environment variable to avoid exposing the raw token string.[!Note] While in beta, {{< product-name >}} does not require an authorization token. For the
token
option, provide an arbitrary, non-empty token string.[!Tip]
Store your authorization token as an environment variable
Avoid storing a plain text token in your Telegraf configuration file. Store the token as an environment variable and then reference the environment variable in your configuration file using string interpolation. For example:
[[outputs.influxdb_v2]] urls = ["http://{{< influxdb/host >}}"] token = "${INFLUX_TOKEN}" # ...
Restart the Telegraf agent to apply the configuration change and write the CSV data to {{% product-name %}}.
Other Telegraf configuration options
The preceding examples describe Telegraf configurations necessary for writing to
{{% product-name %}}. The influxdb_v2
output plugin provides several other
configuration options. For more information, see the
influxdb_v2
plugin options
on GitHub.