Deploy an OTLP gateway
Use a Collector to batch, filter and export traces, metrics and logs from services and client-side gateways.
service.name and an environment on every service, and verify signals in the console after starting the process.receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
memory_limiter:
check_interval: 1s
limit_mib: 512
batch: {}
exporters:
otlphttp/telemio:
endpoint: ${env:TELEMIO_OTLP_ENDPOINT}
headers:
Authorization: "Bearer ${env:TELEMIO_API_KEY}"
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/telemio]
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/telemio]
logs:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlphttp/telemio]The example requires the OpenTelemetry Collector Contrib or Core distribution supporting otlphttp. Use the OTLP base URL provided during Telemio ingest setup, not the read-only API URL. Protect receiver ports with network policy and authentication where appropriate.
Point your services at the gateway
Set the same OTLP/HTTP endpoint on Python, Java, Node, workers and Kubernetes workloads.
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
export OTEL_EXPORTER_OTLP_ENDPOINT="http://otel-collector.monitoring.svc:4318"
export OTEL_SERVICE_NAME="orders-api"In Kubernetes, store server credentials as Secrets, restrict the gateway service to trusted namespaces and use TLS for cross-network traffic.
Verify end-to-end
Generate one request in a service and look for its trace in Telemio.
Check Collector startup errors, receiver connectivity, exporter 401/403 messages and payload filtering. See Collector operations and Kubernetes.