Quickstart¶
Run the whole pipeline locally in a couple of minutes. Assumes you've done
Install and have MinIO running with a nilalytics bucket.
1. Start the server and gateway¶
nilalytics server & # OTLP ingest (:4318) + Quack catalog (:9494)
nilalytics gateway & # public ingest gateway (:4319) with CORS + tokens
You should see READY and GATEWAY READY banners.
2. Send some events¶
# 200 product events + errors, plus 5 cross-device "people"
nilalytics emit --count 200 --persons 5 --traces 20 --metrics 20
3. Query it¶
total events: 250
by event:
signup_complete ...
page_view ...
exception ...
distinct devices: ...
identified persons: ...
signup funnel: ... start -> ... complete
aggregate query latency: 2.8 ms [SUB-SECOND]
More views:
nilalytics query traces # p95 latency per span
nilalytics query metrics # web-vitals gauges
nilalytics query stitch # people unified across devices
nilalytics query asof "5 minutes" # time travel
nilalytics query changes # change feed (activation source)
4. Compact when you like¶
5. Send events from a real app¶
- Web: wire up Grafana Faro to the gateway.
- Mobile: wire up an OpenTelemetry SDK to the gateway.
Both fetch a short‑lived token from the gateway and post OTLP — the same data you just queried.
Point it at a real cloud¶
Switch object storage with environment variables (see Storage backends):