0.59 Upgrade Guide

An upgrade guide that addresses breaking changes in 0.59.0

Avro codec rejects shorthand complex type schemas

Summary

The apache-avro library has been upgraded from 0.21 to 0.22, which enforces stricter schema parsing per the Avro specification. Field-level attributes must now be nested inside a "type" object rather than specified as siblings of the "type" string:

  • Complex types (array, map, enum, record, fixed): schemas using the shorthand form will fail to parse at startup.
  • Logical types (timestamp-millis, date, uuid, etc.): schemas using the shorthand form will still parse, but the logical type is silently ignored and the field is treated as a plain primitive.

Migration

Wrap any complex type definitions in a nested "type" object within your Avro schema configuration.

Array

Old
encoding:
  codec: avro
  avro:
    schema: |
      {
        "type": "record", "name": "Log",
        "fields": [
          {"name": "tags", "type": "array", "items": "string"}
        ]
      }
New
encoding:
  codec: avro
  avro:
    schema: |
      {
        "type": "record", "name": "Log",
        "fields": [
          {"name": "tags", "type": {"type": "array", "items": "string"}}
        ]
      }

Map

Old
{"name": "metadata", "type": "map", "values": "string"}
New
{"name": "metadata", "type": {"type": "map", "values": "string"}}

Enum

Old
{"name": "status", "type": "enum", "symbols": ["A", "B", "C"]}
New
{"name": "status", "type": {"type": "enum", "name": "Status", "symbols": ["A", "B", "C"]}}

Fixed

Old
{"name": "hash", "type": "fixed", "size": 16}
New
{"name": "hash", "type": {"type": "fixed", "name": "Hash", "size": 16}}

Logical types (timestamp, date, uuid, etc.)

Old
{"name": "created_at", "type": "long", "logicalType": "timestamp-millis"}
New
{"name": "created_at", "type": {"type": "long", "logicalType": "timestamp-millis"}}

datadog_agent source no longer accepts pre-tracerPayloads trace payloads

Summary

The datadog_agent source no longer accepts the pre-tracerPayloads Agent-to-intake trace protobuf (traces / transactions fields). The Datadog Agent dropped those fields in the 7.33.0 release in January 2022. An empty tracerPayloads list now produces no events and increments component_errors_total with error_code empty_tracer_payloads. Indexed idxTracerPayloads entries are recognized but not converted (error_code idx_tracer_payloads).

Migration

Upgrade the Datadog Agent to 7.33.0 or later. If you already run a current Agent, no action is needed. Indexed idxTracerPayloads payloads are recognized but not converted; those traces are dropped with error_code idx_tracer_payloads.

Datadog metrics series submitted to the V3 intake by default

Summary

The datadog_metrics sink now submits series metrics to /api/intake/metrics/v3/series by default, using Datadog’s columnar protobuf format. This format uses dictionary-based string deduplication and delta encoding, making it more efficient than v2 for workloads with many metrics that share common names or tags.

Sketch metrics (distributions and histograms) are unaffected and continue to be submitted to /api/beta/sketches.

Migration

No configuration change is required when sending directly to Datadog’s managed intake.

If your datadog_metrics sink forwards to another Vector instance’s datadog_agent source, the receiving instance must support V3 before the sender switches to the new default. Upgrading the sender first causes series metric requests to fail.

Upgrade receiving instances first, or explicitly configure sending sinks to continue using V2 until all receivers support V3. The same workaround applies to proxies or other endpoints that do not accept the V3 intake route:

sinks:
  my_sink:
    type: datadog_metrics
    series_api_version: v2

Kubernetes 1.31 support removed

Summary

The kubernetes_logs source now uses Kubernetes v1.32 API bindings. Kubernetes 1.31 reached end of life on 2025-11-11 and is no longer supported.

Migration

Upgrade Kubernetes clusters to v1.32 or later before upgrading Vector.

Removed http source and greptimedb sink deprecated component aliases

Summary

The deprecated http source and greptimedb sink aliases have been removed. They were deprecated in Vector 0.26.0 and 0.41.0, respectively.

Migration

Change source type http to http_server, and sink type greptimedb to greptimedb_metrics.

Boolean Vector sink compression removed

Summary

The deprecated boolean syntax for the vector sink’s compression option has been removed.

Migration

Replace compression: true with compression: "gzip", and replace compression: false with compression: "none".