97 lines
4.2 KiB
Text
97 lines
4.2 KiB
Text
# Publishes metrics to a postgresql database
|
|
[[outputs.postgresql]]
|
|
## Specify connection address via the standard libpq connection string:
|
|
## host=... user=... password=... sslmode=... dbname=...
|
|
## Or a URL:
|
|
## postgres://[user[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full]
|
|
## See https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
|
|
##
|
|
## All connection parameters are optional. Environment vars are also supported.
|
|
## e.g. PGPASSWORD, PGHOST, PGUSER, PGDATABASE
|
|
## All supported vars can be found here:
|
|
## https://www.postgresql.org/docs/current/libpq-envars.html
|
|
##
|
|
## Non-standard parameters:
|
|
## pool_max_conns (default: 1) - Maximum size of connection pool for parallel (per-batch per-table) inserts.
|
|
## pool_min_conns (default: 0) - Minimum size of connection pool.
|
|
## pool_max_conn_lifetime (default: 0s) - Maximum connection age before closing.
|
|
## pool_max_conn_idle_time (default: 0s) - Maximum idle time of a connection before closing.
|
|
## pool_health_check_period (default: 0s) - Duration between health checks on idle connections.
|
|
# connection = ""
|
|
|
|
## Postgres schema to use.
|
|
# schema = "public"
|
|
|
|
## Store tags as foreign keys in the metrics table. Default is false.
|
|
# tags_as_foreign_keys = false
|
|
|
|
## Suffix to append to table name (measurement name) for the foreign tag table.
|
|
# tag_table_suffix = "_tag"
|
|
|
|
## Deny inserting metrics if the foreign tag can't be inserted.
|
|
# foreign_tag_constraint = false
|
|
|
|
## Store all tags as a JSONB object in a single 'tags' column.
|
|
# tags_as_jsonb = false
|
|
|
|
## Store all fields as a JSONB object in a single 'fields' column.
|
|
# fields_as_jsonb = false
|
|
|
|
## Name of the timestamp column
|
|
## NOTE: Some tools (e.g. Grafana) require the default name so be careful!
|
|
# timestamp_column_name = "time"
|
|
|
|
## Type of the timestamp column
|
|
## Currently, "timestamp without time zone" and "timestamp with time zone"
|
|
## are supported
|
|
# timestamp_column_type = "timestamp without time zone"
|
|
|
|
## Templated statements to execute when creating a new table.
|
|
# create_templates = [
|
|
# '''CREATE TABLE {{ .table }} ({{ .columns }})''',
|
|
# ]
|
|
|
|
## Templated statements to execute when adding columns to a table.
|
|
## Set to an empty list to disable. Points containing tags for which there is
|
|
## no column will be skipped. Points containing fields for which there is no
|
|
## column will have the field omitted.
|
|
# add_column_templates = [
|
|
# '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
|
|
# ]
|
|
|
|
## Templated statements to execute when creating a new tag table.
|
|
# tag_table_create_templates = [
|
|
# '''CREATE TABLE {{ .table }} ({{ .columns }}, PRIMARY KEY (tag_id))''',
|
|
# ]
|
|
|
|
## Templated statements to execute when adding columns to a tag table.
|
|
## Set to an empty list to disable. Points containing tags for which there is
|
|
## no column will be skipped.
|
|
# tag_table_add_column_templates = [
|
|
# '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
|
|
# ]
|
|
|
|
## The postgres data type to use for storing unsigned 64-bit integer values
|
|
## (Postgres does not have a native unsigned 64-bit integer type).
|
|
## The value can be one of:
|
|
## numeric - Uses the PostgreSQL "numeric" data type.
|
|
## uint8 - Requires pguint extension (https://github.com/petere/pguint)
|
|
# uint64_type = "numeric"
|
|
|
|
## When using pool_max_conns > 1, and a temporary error occurs, the query is
|
|
## retried with an incremental backoff. This controls the maximum duration.
|
|
# retry_max_backoff = "15s"
|
|
|
|
## Approximate number of tag IDs to store in in-memory cache (when using
|
|
## tags_as_foreign_keys). This is an optimization to skip inserting known
|
|
## tag IDs. Each entry consumes approximately 34 bytes of memory.
|
|
# tag_cache_size = 100000
|
|
|
|
## Cut column names at the given length to not exceed PostgreSQL's
|
|
## 'identifier length' limit (default: no limit)
|
|
## (see https://www.postgresql.org/docs/current/limits.html)
|
|
## Be careful to not create duplicate column names!
|
|
# column_name_length_limit = 0
|
|
|
|
## Enable & set the log level for the Postgres driver.
|
|
# log_level = "warn" # trace, debug, info, warn, error, none
|