minh mẫn nguyễn
05/27/2026, 8:32 AMManas (OpenObserve)
05/27/2026, 9:16 AMstream-name header on the gRPC OTLP exporter is static - one exporter sends everything to one stream — so you can't dynamically map <http://app.kubernetes.io/name|app.kubernetes.io/name> to a stream name through the header alone.
Two ways to get what you want:
1. OpenObserve Pipelines (recommended for fully dynamic): Ship everything in over gRPC OTLP, then use a Pipeline with a function that sets the destination stream from the <http://app.kubernetes.io/name|app.kubernetes.io/name> label. OpenObserve auto-creates streams on first write, so new apps produce new streams with no manual setup. This is the approach the maintainers point to.
2. Routing connector (Collector-side): If your set of apps is small and stable, use the routing connector in the Collector to fan logs into multiple OTLP exporters, each with a static stream-name.