OpenTelemetry Collector
Route traces to Rius through an OpenTelemetry Collector when you want a single egress point, local buffering, or to fan the same traces out to more than one backend.
Exporter configuration
exporters:
otlphttp/glassflow:
endpoint: https://ingest.eu.console.rius-glassflow.com
# proto is the default encoding; stated here because the endpoint
# accepts no OTLP/JSON
encoding: proto
compression: gzip
headers:
authorization: Bearer ${env:GLASSFLOW_API_KEY}
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/glassflow]The otlphttp exporter appends /v1/traces to the endpoint itself; give it
the base URL. Keep the API key out of the config file via the ${env:...}
substitution shown.
Use the otlphttp exporter, not otlp: the plain otlp exporter speaks
gRPC, which the endpoint does not accept.
Fan-out to a second backend
Trying Rius next to an existing backend is one list entry, no application changes:
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/glassflow, otlphttp/existing]What gets captured
The collector forwards spans unchanged, so analytics depend on what your
applications emit, exactly as if they exported directly: see the
span attribute reference and its
supported-conventions matrix. Collector processors that rename or drop
attributes (attributes, transform) sit between your apps and those
tables; if analytics fields come up empty, check the collector is not
stripping gen_ai.* keys.
Next steps
- Span attribute reference: the contract the forwarded spans are read against.
- Vanilla OpenTelemetry SDKs: what the applications behind the collector should emit.