grex¶
grex is an OpAMP control plane for OpenTelemetry Collector fleets. It implements the server side of the OpAMP specification and gives operators a read-only view of fleet health: connected collectors, identity, health, and effective configuration.
otelcol agents / gateways
(OpAMP over WS, optional mTLS)
│
▼
OpAMP gateway collector(s) ──► grex ──► browser (web UI)
(optional multiplexing) │
│ ├── JSON read API
direct agents (optional) ─────────┤
└── Prometheus /metrics + /metrics/fleet
Who these docs are for¶
| Audience | Start here | Goal |
|---|---|---|
| Operators (UI users) | User guide | Understand fleet status in the web UI |
| Administrators | Admin guide | Install, configure, secure, and scrape grex |
| Developers | Developer guide | Build, test, and extend grex (primary focus of this site) |
| Everyone | Getting started | Run grex and see a fleet in minutes |
Deep coverage of metrics, logs, and traces lives under Observability.
What grex does (and does not) do in 1.0¶
Does:
- Accept OpAMP connections from collectors (WebSocket and plain HTTP)
- Support OpAMP gateway multiplexing (
com.bindplane.opamp-gateway) - Maintain an in-memory fleet registry (identity, health, effective config, …)
- Serve a read-only web UI and JSON API
- Expose Prometheus metrics on a dedicated telemetry listener
- Terminate TLS and require client mTLS on the OpAMP listener when configured
Does not (yet):
- Push remote configuration, restarts, or package upgrades from the UI
- Persist fleet state across restarts (agents re-report on reconnect)
- Multi-tenancy (one fleet per grex instance)
- UI/API authentication (mTLS and OIDC are planned; the UI listener is open today)
- OTLP export of grex’s own telemetry (Prometheus scrape only)
The living product plan is under SPEC (design). That document changes frequently.
Quick start¶
No install required — open the static fleet demo on this site (sample data generated in your browser).
See Compose stack.
cp config.example.yaml config.yaml
go run ./cmd/grex -config config.yaml
# UI :8080 · telemetry :9090 · OpAMP :4320
See Getting started.
helm repo add grex https://dennisme.github.io/grex/charts/
helm install grex grex/grex -n grex --create-namespace
See Deploy with Helm. Chart values: reference.
Documentation map¶
- Demo — static sample fleet UI (no grex process)
- Getting started — tutorials to a first success
- User — fleet UI for operators
- Admin — deploy (binary, Compose, Helm), config, TLS, lifecycle
- Releases — binaries, images, Helm, and changelog
- Developer — architecture, packages, API, UI, tests
- Observability — metrics catalog, scrape layout, logs, traces
- Reference — CLI, HTTP endpoints, Helm values
- SPEC — living design documents
Why "grex"?¶
Latin: grex, gregis (n.) — flock, herd, group
The same root gives English gregarious and congregate. Fitting for a control plane that manages a flock of OpenTelemetry Collectors as one fleet.
License¶
Apache-2.0. Source: github.com/dennisme/grex.