5 minutes
Quick Start
Five minutes to your first query.
Prerequisites
- docker
Docker + Docker Compose 2.x
- helm
Kubernetes 1.27+ and Helm 3.x with read/write S3 credentials
- binary
Linux x86_64 + writable workdir + 4 GB RAM
Install
terminal · standalone sandbox
# molesignal standalone — everything in one command
$ docker compose -f deploy/docker/docker-compose.yaml --profile standalone up -d
# UI: http://localhost:5080
Helm charts and prebuilt binaries ship with v1.0 and aren't published yet. Use the Docker Compose path above to run molesignal today.
terminal · Helm install (v1.0 target)
# Add the molesignal Helm repo
$ helm repo add molesignal https://charts.molesignal.io
$ helm repo update
# Install into a fresh namespace
$ kubectl create namespace observability
$ helm install molesignal molesignal/molesignal \
--namespace observability \
--set storage.s3.endpoint=s3.amazonaws.com \
--set storage.s3.bucket=mole-prod
Helm charts and prebuilt binaries ship with v1.0 and aren't published yet. Use the Docker Compose path above to run molesignal today.
terminal · binary install (v1.0 target)
# Linux x86_64 binary
$ curl -L https://github.com/molesignal/molesignal/releases/latest/download/molesignal-linux-amd64 \
-o /usr/local/bin/molesignal
$ chmod +x /usr/local/bin/molesignal
# Quick standalone start
$ molesignal --listen 0.0.0.0:5080 --workdir /var/molesignal
Send your first data
An OTLP HTTP POST. Any OpenTelemetry SDK, Vector, or Fluent Bit will produce the same shape.
terminal · OTLP ingest
$ curl -X POST http://localhost:5080/api/v1/ingest/logs/app \
-H 'content-type: application/json' \
-H 'authorization: Bearer <jwt>' \
-d '[{"_timestamp":1700000000000000,"level":"error","msg":"db pool exhausted","trace_id":"abc123"}]'
Run your first query
SQL against the stream. PromQL and VRL also work — same engine, same Parquet.
terminal · SQL query
$ curl -X POST http://localhost:5080/api/v1/query \
-H 'authorization: Bearer <jwt>' \
-H 'content-type: application/json' \
-d '{"org_id":"<from-login>","language":"sql",
$ "statement":"SELECT * FROM app WHERE trace_id = '\''abc123'\''",
$ "time_range":{"start":0,"end":2000000000000000},
$ "stream":{"name":"app","stream_type":"logs"}}'
Troubleshooting
Port 5080 is already in use
Set MOLE_HTTP_PORT in your env or change the host port mapping in docker-compose.yaml.I get 'no such org' on the first query
The standalone profile creates a default org on first login. Visit http://localhost:5080 first and complete the bootstrap.MinIO admin says I can't write to the bucket
Default creds are minioadmin/minioadmin. Check the bucket was created — molesignal creates it on first ingest, so send a single OTLP request first.Cargo build fails when running from source
Rust 1.74+ required. Use rustup update stable. If you're on Apple Silicon, install Xcode CLT first.Real-time alerts don't fire
kind: realtime requires an alert source on a write path stream. Check the alert is bound to the same stream you're writing to.