Add the appropriate SDK and OTLP exporter package for your language (e.g. opentelemetry-exporter-otlp-trace-grpc or opentelemetry-exporter-otlp-trace-http for Python)
For gRPC: instantiate OTLPSpanExporter with endpoint set to 'host:4317' (no scheme prefix) and optionally pass credentials or insecure=True for local collectors
For HTTP/protobuf: instantiate OTLPSpanExporter with endpoint 'http://host:4318/v1/traces' and set headers dict for any auth tokens
Wrap the exporter in a BatchSpanProcessor and register it on a TracerProvider configured with your Resource attributes (service.name, deployment.environment)
Set the TracerProvider as global and instrument your app with auto-instrumentation or manual spans; verify data arrives using the collector's debug exporter or backend UI
Known gotchas
gRPC endpoint must NOT include the 'http://' or 'https://' scheme; HTTP endpoint must include the full scheme and signal-specific path suffix (/v1/traces, /v1/metrics, /v1/logs)
TLS is enabled by default in many SDK exporters; explicitly configure insecure mode or supply CA certificates for self-signed collector TLS to avoid connection failures
OTLP/gRPC uses port 4317 and OTLP/HTTP uses port 4318 by convention; mismatching port and protocol is a common silent failure — confirm via collector logs
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp