Before you start. You need a license key and
something sending data — a collector, an SDK, or the
curl below.Accepted is not the same as queryable
A successful ingest request returns 202 Accepted. That means the batch was published to the pipeline. It does not mean the data is in a table yet. Between the two there is a queue and a batching consumer, which flushes when it has 50,000 rows or after five seconds — whichever comes first. On a quiet first install, the five seconds is what you are waiting on. So the expected sequence for a new install is:202from the receiver, immediately.- The record queryable, typically within a few seconds.
- Rolled-up metric views — the 1-minute and 1-hour tables the charts read for wide time ranges — populated on their own schedule.
Step 1 — send something you can recognise
Send a log line with a service name nothing else uses.Get Started in the dashboard shows the exact base endpoint for your
deployment next to a license key you create there, with copy buttons, and
then watches for your first records. Where these pages write
$OIQ_ENDPOINT, that page has the real value.timeUnixNano is built from the current clock on purpose. A hardcoded timestamp
is the single most common reason a test record is accepted and then cannot be
found: it lands wherever that timestamp falls, which may be years outside the
window you are searching.
Expected: HTTP/1.1 202 Accepted.
Anything else is an ingest-side problem and the status code says which one — see
the full status code reference. The short
version:
Step 2 — find it in the product
Open Logs and search for the service name you used:Get Started
A live check of whether this workspace has received anything at all. The
fastest way to distinguish “nothing has ever arrived” from “something
arrived but not what I expected”.
Services
Every distinct
service.name seen recently. A service missing here that you
believe is running usually means the resource attribute is not being set.Overview
Ingest volume over time, which tells you whether data is arriving
continuously or arrived once and stopped.
Step 3 — if the collector is in the path
When an OpenTelemetry Collector sits between your services and aiAxonIQ, it can accept spans from your app and still fail to export them. Its own metrics distinguish the two:otelcol_receiver_accepted_*climbing — your app is reaching the collector.otelcol_exporter_sent_*climbing — the collector is reaching aiAxonIQ.otelcol_exporter_send_failed_*climbing — it is trying and being refused. Its logs carry the status code, which maps to the table above.
What “no data” usually turns out to be
In rough order of frequency:- The time range. Narrow it to 15 minutes before believing an empty chart.
- A hardcoded timestamp in a copied example.
- The base URL. A self-hosted deployment behind the bundled nginx serves
OTLP under
/otlpand strips the prefix; a hosted one does not. The value on Get Started is the one this deployment actually serves. - No
service.name. Records without it still arrive, but they will not appear under any service, which is where most people look first. - Signal not enabled for the plan — a
403that a fire-and-forget exporter swallowed without logging.
Next
Search your logs
The query syntax.
Set up alerting
Alert on what you are now collecting.
Nothing showed up
Stage-by-stage diagnosis.