Prometheus Remote Write

CAUTION

High cardinality metric names and labels are discouraged by Prometheus as they can provide performance and reliability problems. You should consider alternative strategies to reduce the cardinality. Vector offers a tag_cardinality_limit transform as a way to protect against this.

Configuration Options

Required Options

endpoint(required)

The endpoint URL to send data to.

TypeSyntaxDefaultExample
stringliteral["https://localhost:8087/"]
inputs(required)

A list of upstream source or transform IDs. Wildcards (*) are supported.

See configuration for more info.

TypeSyntaxDefaultExample
arrayliteral["my-source-or-transform-id","prefix-*"]
type(required)

The component type. This is a required field for all components and tells Vector which component to use.

TypeSyntaxDefaultExample
stringliteral["prometheus_remote_write"]

Advanced Options

auth(optional)

Configures the authentication strategy.

TypeSyntaxDefaultExample
hashliteral[]
default_namespace(optional)

Used as a namespace for metrics that don't have it. A namespace will be prefixed to a metric's name. It should follow Prometheus naming conventions.

TypeSyntaxDefaultExample
stringliteral["service"]
buckets(optional)

Default buckets to use for aggregating distribution metrics into histograms.

TypeSyntaxDefaultExample
array0.0050.010.0250.050.10.250.512.5510[0.005,0.01]
quantiles(optional)

Quantiles to use for aggregating distribution metrics into a summary.

TypeSyntaxDefaultExample
array0.50.750.90.950.99[0.5,0.75,0.9,0.95,0.99]
batch(optional)

Configures the sink batching behavior.

TypeSyntaxDefaultExample
hash[]
healthcheck(optional)

Health check options for the sink.

TypeSyntaxDefaultExample
hash[]
request(optional)

Configures the sink request behavior.

TypeSyntaxDefaultExample
hash[]
tls(optional)

Configures the TLS options for incoming connections.

TypeSyntaxDefaultExample
hashliteral[]
proxy(optional)

Configures an HTTP(S) proxy for Vector to use. By default, the globally configured proxy is used.

TypeSyntaxDefaultExample
hashliteral[]
tenant_id(optional)

If set, a header named X-Scope-OrgID will be added to outgoing requests with the text of this setting. This may be used by Cortex or other remote services to identify the tenant making the request.

TypeSyntaxDefaultExample
stringtemplate["my-domain"]

How it Works

State

This component is stateless, meaning its behavior is consistent across each input.

Health checks

Health checks ensure that the downstream service is accessible and ready to accept data. This check is performed upon sink initialization. If the health check fails an error will be logged and Vector will proceed to start.

Partitioning

Vector supports dynamic configuration values through a simple template syntax. If an option supports templating, it will be noted with a badge and you can use event fields to create dynamic values. For example:

[sinks.my-sink]
dynamic_option = "application={{ application_id }}"

In the above example, the application_id for each event will be used to partition outgoing data.

Rate limits & adapative concurrency

Transport Layer Security (TLS)

Vector uses OpenSSL for TLS protocols due to OpenSSL's maturity. You can enable and adjust TLS behavior using the tls.* options.

Retry policy

Vector will retry failed requests (status == 429, >= 500, and != 501). Other responses will not be retried. You can control the number of retry attempts and backoff rate with the request.retry_attempts and request.retry_backoff_secs options.