OpenTelemetry
The first step is to configure OpenTelemetry.1
Installation
Add the Permitech SDK and OpenTelemetry packages to your project:For Python, the
opentelemetry-api and opentelemetry-sdk packages provide the core OpenTelemetry functionality. The opentelemetry-exporter-otlp package enables sending traces to Permitech’s OTLP endpoint.For TypeScript, the permitech package includes the PermitechSpanProcessor which handles OTLP export configuration automatically. The @opentelemetry/sdk-trace-node and @opentelemetry/exporter-trace-otlp-proto packages are required peer dependencies.2
Create environment variables for your Permitech settings
Set environment variables for your Permitech settings, for example in a
.env file.
These environment variables are consumed by the PermitechSpanProcessor to authenticate
and route traces to the correct Permitech Project and Log stream:3
Self-hosted deployments: Set the OTel endpoint
Skip this step if you are using Permitech Cloud.
-
Permitech Cloud at permi.tech, then you don’t need to provide a custom OTel endpoint.
The default endpoint
https://permi.tech/api/otel/traceswill be used automatically. -
A self-hosted Permitech deployment, replace the
https://permi.tech/api/otel/tracesendpoint with your deployment URL. The format of this URL is based on your console URL, replacingconsolewithapiand appending/otel/traces.
- if your console URL is
https://console.permitech.example.com, the OTel endpoint would behttps://api.permitech.example.com/otel/traces - if your console URL is
https://console-permitech.apps.mycompany.com, the OTel endpoint would behttps://api-permitech.apps.mycompany.com/otel/traces
PERMITECH_CONSOLE_URL environment variable. For example:4
Initialize and create the Permitech span processor
The
PermitechSpanProcessor automatically configures authentication
and metadata using your environment variables. It also:- Auto-builds OTLP headers using your Permitech credentials
- Configures the correct OTLP trace endpoint
- Registers a batch span processor that exports traces to Permitech
5
Register the span processor
The span processor can now be registered with an OTel trace provider.
OpenInference
OpenInference instrumentors are currently available for Python only. For TypeScript/Node.js applications, use framework-specific OTel integrations such as Vercel AI SDK or Mastra.
- Automatic capture of LLM calls, token usage, and model performance metrics
- AI-specific span attributes like
gen_ai.request.model,gen_ai.response.content, andgen_ai.usage.* - Semantic conventions that make your traces more meaningful in Permitech’s dashboard
- Framework-specific instrumentation for LangGraph workflows and OpenAI API calls
Next steps
Learn how to integrate with some popular frameworks using OpenTelemetry and OpenInference.Google ADK
Learn how to integrate a Google ADK project with Permitech using OpenTelemetry and OpenInference.
Strands Agents
Learn how to integrate a Strands Agents project with Permitech using OpenTelemetry.
Vercel AI SDK
Learn how to integrate a Vercel AI SDK project with Permitech using OpenTelemetry.
Mastra
Learn how to integrate a Mastra project with Permitech using OpenTelemetry.

