Skip to main content
When two agents run in separate processes and call each other over HTTP, OpenTelemetry’s W3C traceparent header carries the trace context across the wire. Permitech joins all spans that share a trace ID into a single trace.
If both services are Python and use the Permitech SDK directly, Distributed Tracing (Beta) is simpler. Use the OTel approach when your services use different agent frameworks (Microsoft Agent Framework, Google ADK, LangChain, etc.) or different languages.

What you’ll see in Permitech

A single user request to Agent A that delegates to Agent B produces one trace:

Setup

.env
requirements.txt
PermitechSpanProcessor reads PERMITECH_API_KEY, PERMITECH_PROJECT, and PERMITECH_LOG_STREAM from the environment and exports OTLP directly to Permitech’s OTel endpoint. No collector required.

Agent A: Microsoft Agent Framework, calls Agent B

agent_a.py

Agent B: Google ADK research agent

agent_b.py

Run it

Open the otel-distributed-tracing project in Permitech, Log stream default. You’ll see one trace covering both agents: Distributed trace in Permitech console showing both Agent A (Microsoft Agent Framework) and Agent B (Google ADK) spans nested under one trace

Self-hosted Permitech

The OTel endpoint is different from Permitech’s regular API endpoint and is specifically designed to receive telemetry data in the OTLP format. If you are using:
  • Permitech Cloud at permi.tech, then you don’t need to provide a custom OTel endpoint. The default endpoint https://permi.tech/api/otel/traces will be used automatically.
  • A self-hosted Permitech deployment, replace the https://permi.tech/api/otel/traces endpoint with your deployment URL. The format of this URL is based on your console URL, replacing console with api and appending /otel/traces.
For example:
  • if your console URL is https://console.permitech.example.com, the OTel endpoint would be https://api.permitech.example.com/otel/traces
  • if your console URL is https://console-permitech.apps.mycompany.com, the OTel endpoint would be https://api-permitech.apps.mycompany.com/otel/traces
Set PERMITECH_API_ENDPOINT in .env; PermitechSpanProcessor picks it up automatically.