Skip to main content

Ingest & OTLP

Availability

Open core · self-host + all Splyntra Cloud plans

Splyntra's ingest is OpenTelemetry-native. Any OTLP/HTTP exporter — the Splyntra SDKs, the OpenTelemetry SDKs, or a hyperscaler agent platform — can send spans and logs directly, with no proprietary format.

Endpoints​

The collector exposes standard OTLP/HTTP paths:

SignalPath
Traces/v1/traces
Logs/v1/logs

Prefix them with your base URL — https://ingest.splyntra.com on Cloud, or http://localhost:4318 when self-hosting.

Authentication headers​

Send your ingest key as a bearer token. With a raw OpenTelemetry exporter, pass it through the standard OTEL_EXPORTER_OTLP_HEADERS variable:

export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.splyntra.com"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ${SPLYNTRA_API_KEY}"
export OTEL_SERVICE_NAME="support-agent"

The header the collector requires is simply:

Authorization: Bearer <ingest key>

The development-only fallback key splyntra_dev_key is accepted when the collector runs in development mode and rejected in production. See API overview.

Semantic conventions​

The collector reads three families of attributes and folds them into the same span model, so third-party OTel and hyperscaler platforms ingest natively:

PrefixSourcePurpose
gen_ai.*OpenTelemetry GenAI semconvModel name, token counts, request/response metadata on LLM spans
traceloop.entity.*OpenLLMetryFramework/workflow entity attributes
splyntra.*Splyntra SDKsSplyntra-specific span kinds, risk, and cost attributes

Because token counts and model names arrive via gen_ai.*, cost attribution and the risk score work on spans emitted by exporters that never touched a Splyntra SDK. Amazon Bedrock AgentCore and Google Vertex Agent Engine, for example, emit OTel gen_ai spans that ingest natively at /v1/traces. See Agent platforms.

Multi-tenant org scoping​

In a multi-tenant deployment, the dashboard BFF talks to the collector over a trusted service channel (COLLECTOR_SERVICE_TOKEN) and scopes each request to an organization with a header:

X-Splyntra-Org-Id: <org id>

When COLLECTOR_SERVICE_TOKEN is blank, the collector runs single-tenant and no org header is needed. Tenant isolation lives at this collector boundary — never in the browser-facing key.

Raw OpenTelemetry example​

You can point any OTLP/HTTP exporter at Splyntra. The variables below are all the OpenTelemetry SDK needs:

export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.splyntra.com"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ${SPLYNTRA_API_KEY}"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
export OTEL_SERVICE_NAME="support-agent"

Emit gen_ai.* attributes on your LLM spans and Splyntra picks up model, tokens, and cost automatically. For one-line auto-instrumentation instead, use the Python or TypeScript SDK.

Next steps​