0.58 Upgrade Guide

An upgrade guide that addresses breaking changes in 0.58.0

azure_monitor_logs sink removed

Summary

The deprecated azure_monitor_logs sink has been removed. Configurations using it now fail validation. Microsoft ends support for the sink’s underlying Data Collector API in September 2026.

Migration

Migrate to the azure_logs_ingestion sink, which uses the Azure Monitor Logs Ingestion API. This API requires Azure Data Collection Endpoint and Data Collection Rule resources, so replace the old workspace ID and shared key settings with the new sink’s endpoint, dcr_immutable_id, stream_name, and auth settings.

Old

sinks:
  azure:
    type: azure_monitor_logs
    customer_id: "<workspace-id>"
    shared_key: "${AZURE_MONITOR_SHARED_KEY}"
    log_type: MyTable

New

sinks:
  azure:
    type: azure_logs_ingestion
    endpoint: https://my-dce.eastus-1.ingest.monitor.azure.com
    dcr_immutable_id: dcr-000a00a000a00000a000000aa000a0aa
    stream_name: Custom-MyTable
    auth:
      azure_credential_kind: azure_cli

Legacy buffer metrics removed

Summary

The deprecated buffer_byte_size and buffer_events gauge metrics have been removed.

Migration

Use buffer_size_bytes instead of buffer_byte_size and buffer_size_events instead of buffer_events.

HTTP server encoding option removed

Summary

The deprecated encoding option has been removed from the http_server source and its deprecated http alias. Configurations using it now fail validation.

Migration

Replace encoding with decoding and framing:

Previous encodingdecoding.codecframing.method
textbytesnewline_delimited
jsonjsonbytes
ndjsonjsonnewline_delimited
binarybytesbytes

influxdb_logs sink namespace option removed

Summary

The deprecated namespace option has been removed from the influxdb_logs sink. It has been deprecated since v0.24.0 in favor of measurement. Configurations using it now fail validation.

Migration

Replace namespace with measurement. Previously, namespace prefixed the measurement name with <namespace>.vector, so set measurement to <namespace>.vector for the same effect:

Note: if your configuration sets both namespace and measurement, measurement was used and namespace ignored; remove the namespace option and leave measurement unchanged.

Old

sinks:
  my_sink_id:
    type: influxdb_logs
    namespace: my-namespace
    endpoint: http://localhost:8086

New

sinks:
  my_sink_id:
    type: influxdb_logs
    measurement: my-namespace.vector
    endpoint: http://localhost:8086

logdna sink alias removed

Summary

The deprecated logdna sink alias has been removed. It was renamed to mezmo in v0.29.0. Configurations using type: logdna now fail validation.

Migration

Rename the sink type from logdna to mezmo:

Old

sinks:
  my_sink_id:
    type: logdna
    api_key: ${LOGDNA_API_KEY}
    hostname: ${HOSTNAME}

New

sinks:
  my_sink_id:
    type: mezmo
    api_key: ${LOGDNA_API_KEY}
    hostname: ${HOSTNAME}

URI template field references inside the authority are rejected

Summary

Vector now refuses to build configs where a {{ field }} reference lands inside the hostname (or immediately adjacent to it without a path separator). Previously, such templates built successfully but silently dropped every event at render time.

Migration

If {{ field }} appears inside the host or directly after the host with no leading /, add a static / before the dynamic segment or move the dynamic part into the path with a static hostname.

Old (silently dropped events)

This built successfully but dropped every event at render time:

sinks:
  my_sink:
    uri: "https://tenant.{{ env }}.example.com/"

This also built successfully, but only worked correctly if path always rendered with its own leading / (e.g. /v1); otherwise it silently dropped every event:

sinks:
  my_sink:
    uri: "https://api.internal{{ path }}"

New

To fix, either add a static / before the dynamic part:

sinks:
  my_sink:
    uri: "https://api.internal/{{ path }}"

or move the dynamic part fully into the path, keeping the hostname static:

sinks:
  my_sink:
    uri: "https://example.com/tenant/{{ env }}/"

webhdfs sink defaults endpoints to https://

Summary

The webhdfs sink’s endpoint option now defaults a missing scheme to https:// instead of http://. A scheme-less endpoint (for example endpoint: "127.0.0.1:9870") still loads and remains valid, but it now resolves to https://127.0.0.1:9870; previously the underlying WebHDFS client resolved to http://127.0.0.1:9870

Migration

Add an explicit scheme to the endpoint value. Use http:// for a plain-HTTP server and https:// for a TLS-enabled one.

Old

sinks:
  hdfs:
    type: webhdfs
    endpoint: 127.0.0.1:9870

New

sinks:
  hdfs:
    type: webhdfs
    endpoint: http://127.0.0.1:9870