Not on OpenTelemetry? The
@glassray/tracing SDK is the zero-dependency drop-in path - same endpoint, no OTel setup. And if you are pointing an existing OTel exporter here, read Bring your own OTel first: the ingest expects each trace’s spans in a single request.Endpoint
- Format: OTLP/HTTP JSON - the standard
ExportTraceServiceRequestshape,{ "resourceSpans": [ ... ] }. Content-Type: application/jsonis required.Content-Encoding: gzipis supported (and decoded transparently).
Authentication
Send an API key as a Bearer token. The key must carry thetraces:write permission.
Create the endpoint and key under Settings → Sources - add an OTLP source and Glassray reveals a
traces:write key (once) alongside ready-to-paste exporter snippets.Exporter configuration
For any OTel-instrumented app, set the standard environment variables. PointOTEL_EXPORTER_OTLP_ENDPOINT at the base path - the OTel exporter appends /v1/traces itself.
https://app.glassray.ai/api/public/otel/v1/traces) with the same Authorization header.
Behavior
Success
A
200 with an empty {} body acknowledges the batch.Idempotent
Re-sending the same spans is a no-op - traces are keyed by source and id, so retries are safe.
Size limits
- Payloads larger than 32 MB are rejected with
413. - A single trace whose stored document exceeds 16 MiB is skipped (not stored) rather than failing the whole batch.
Error codes
Once traces are flowing, Glassray classifies them into flows and starts looking for deviations - exactly as it does for pulled traces.