Service Descriptions:
- otel: OpenTelemetry Collector, allows us to receive OpenTelemetry data from instrumented applications and forward it to the ingestor for futher processing.
- ingestor: Vector-based event pipeline that receives Otel and non-Otel events and parses/normalizes/forwards it to the aggregator.
- aggregator: Node.js service that receives events from the ingestor, verifies authentication, and inserts it to Clickhouse for storage.
- clickhouse: Clickhouse database, stores all events.
- db: MongoDB, stores user/alert/dashboard data.
- api: Node.js API, executes Clickhouse queries on behalf of the frontend.
- miner: FastAPI app serving the drain3 clustering model.
- app: Next.js frontend, serves the UI.
- task-check-alerts: Checks for alert criteria and fires off any alerts as needed.
You can get started by deploying a complete development stack via Docker Compose in dev mode.
docker compose -f ./docker-compose.dev.yml up -d
To enable self-instrumentation and demo logs, you can set the HYPERDX_API_KEY
to your ingestion key (go to
http://localhost:8080/team after creating your
account) and then restart the stack.
ex.
HYPERDX_API_KEY=<YOUR_INGESTION_API_KEY_HERE> docker compose -f ./docker-compose.dev.yml up -d
The core services are all hot-reloaded, so you can make changes to the code and see them reflected in real-time.
If you need help getting started, join our Discord and we're more than happy to get you set up!