1. Create your workspace
Sign up at the console to get an organization. Everything in byteshift is scoped to that organization by your authenticated identity — never by a URL — so the only thing that decides which tenant a request touches is who you are.
2. Get an ingest key
Telemetry is authenticated with an ingest API key (an sk_… token). The fastest path is the guided setup for the otel-sdk source on the Integrations page — it mints a key and shows it once. You can also create one directly:
create an ingest keycurl -X POST https://api.byteshift.com/api-key \
-H "Authorization: Bearer <your session token>" \
-H "Content-Type: application/json" \
-d '{ "name": "otel-exporter" }'
# → { "key": "sk_live_…" } # shown once — store it in a secret manager3. Point your exporter at the collector
The collector speaks standard OTLP over HTTP — JSON and protobuf, on the verbatim OpenTelemetry paths /v1/logs, /v1/traces, and /v1/metrics. Any OTel SDK or the OpenTelemetry Collector can send to it. Set two environment variables and your app starts shipping:
environmentOTEL_EXPORTER_OTLP_ENDPOINT=https://collect.byteshift.com
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer sk_live_…
OTEL_SERVICE_NAME=checkout-apiThe collector validates the key against the control plane, then writes into Elasticsearch's native OTel data streams under your organization's namespace. The namespace comes from the key, so a payload can never write into another tenant.
4. See it in Explore
Open Explore in the console. Logs, traces, and metrics share one filter vocabulary — a time window plus service, severity/status, free-text q, and trace/span ids. Pick your service and the window; the signals you just sent are there.
awaiting data until the first document lands. Give it a few seconds, then widen the window.Next
Learn the model behind the product in Core concepts, wire up a provider on the Integrations page, or hand the whole read surface to an agent with the MCP server.