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.