Browse documentation

Instrument

OpenTelemetry

Send existing OTLP traces, logs, and metrics to Teml without replacing your instrumentation.

Teml accepts OpenTelemetry Protocol data. Keep your current instrumentation and change the exporter destination and authentication header.

Endpoint and authentication

Use the Teml ingestion host:

OTLP HTTP base: https://api.teml.io
Header:         X-Teml-API-Key=tm_...

Signal paths follow the OTLP HTTP convention:

/v1/traces
/v1/logs
/v1/metrics

Example environment configuration:

export OTEL_EXPORTER_OTLP_ENDPOINT="https://api.teml.io"
export OTEL_EXPORTER_OTLP_HEADERS="X-Teml-API-Key=tm_..."
export OTEL_SERVICE_NAME="orders-api"
export OTEL_RESOURCE_ATTRIBUTES="deployment.environment=production"

Use an API key containing only ingest:write for collectors and application exporters.

Attach customer identity

OTLP data without customer identity still appears in service, trace, log, and metric views. To add a signal to a customer timeline, attach the stable ID as:

teml.distinct_id=user_8842

For distributed requests, propagate the same value through trusted W3C baggage. Do not accept a customer identity directly from an unauthenticated public request.

Resource fields that matter

Set these consistently:

Field Purpose
service.name Groups telemetry by application or service
service.version Connects failures to a release
deployment.environment Separates production, staging, and development
teml.distinct_id Connects the signal to a customer

Verify

Send one span and one log, then check Traces and Logs in the same project and environment. If you supplied teml.distinct_id, also search Customers for that value.