hyperdx/CONTRIBUTING.md

50 lines
1.6 KiB
Markdown
Raw Normal View History

2023-09-13 03:08:05 +00:00
# Contributing
## Architecture Overview
![architecture](./.github/images/architecture.png)
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.
2023-09-19 09:34:49 +00:00
- miner: FastAPI app serving the drain3 clustering model.
2023-09-13 03:08:05 +00:00
- app: Next.js frontend, serves the UI.
- task-check-alerts: Checks for alert criteria and fires off any alerts as
needed.
## Development
2023-09-19 09:34:49 +00:00
You can get started by deploying a complete development stack via Docker Compose
in dev mode.
```bash
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](http://localhost:8080/team) after creating your
account) and then restart the stack.
ex.
```sh
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.
2023-09-13 03:08:05 +00:00
If you need help getting started,
[join our Discord](https://discord.gg/FErRRKU78j) and we're more than happy to
get you set up!