OBSERVE v3.2 ships native OTLP ingestion, removing the standalone Collector layer; collectors gain auto-discovery for new containers and hosts; plus cross-cluster log queries and alert evidence chains. Here are the details, upgrade steps, and known issues.
v3.2 is OBSERVE's major release for the first half of the year. Its core goal is moving OpenTelemetry from "compatible" to "native," and cutting manual configuration out of the collection layer in dynamic environments. This release ships 3 feature modules, 2 enhancements, and 4 fixes.
Previously, traces/metrics/logs had to pass through a standalone OpenTelemetry Collector for conversion before reaching OBSERVE. From v3.2, the OBSERVE gateway exposes an OTLP port directly, so apps can skip the Collector:
# OpenTelemetry SDK config on the application side
exporters:
otlp:
endpoint: "observe-gw.example.com:4317"
protocol: grpc
Changes:
Editing collector config every time a new service ships in K8s is the most-hated chore in ops. The v3.2 collector watches the K8s API and matches collection rules when new pods appear:
discovery:
enabled: true
watch:
- resource: pod
labels:
- "app"
- "tier"
rules:
- match: "label[tier] == 'backend'"
action: collect_logs
A matched rule starts collection immediately, no restart required. On the host side, new service processes are likewise discovered by name.
Log search now queries multiple backends (Elasticsearch / ClickHouse / object storage) in one pass, with SQL-style syntax pushed down automatically — see the previous tutorial.
Back up the config store first, then upgrade in this order:
After upgrading, run observe-cli doctor to verify OTLP port connectivity, sampling config, and cross-cluster query routing.
See the changelog page in the docs for the full list. Users on older versions should upgrade within a maintenance window; expect 30–40 minutes.