1. Server high availability #
The control plane.
Architecture #
- Bindplane servers are stateless and run active-active behind a load balancer (which must support WebSockets for OpAMP).
- Components to provide: load balancer, highly available PostgreSQL, Prometheus for measurements and an event bus between servers (for example Google Pub/Sub in the vendor's reference example).
- All servers have the same configuration.
Good to know: Reminder: a server outage does not stop collection. Server high availability protects the ability to change configurations, not the data flow.
2. Collection high availability #
The data plane.
Losing nothing #
| Risk | Protection |
|---|---|
| Destination unavailable | Disk-backed persistent queue and retries in the collector |
| Gateway down | Several gateway collectors behind an OTLP load balancer |
| Volume spike | Batch, memory limiter, gateways sized on measured throughput |
| Bad configuration | Batched rollouts with pause on error, rollback |
3. Security #
Protecting the control plane.
Measures #
- TLS on the interface and on OpAMP (
wss://); on Kubernetes, a CA certificate mounted in the collector (OPAMP_TLS_CA), or even mutual TLS (OPAMP_TLS_CERT,OPAMP_TLS_KEY). - The collectors' secret key treated like a password and rotated if it leaks.
- Named accounts, SSO and RBAC (Admin, User, Viewer) depending on the edition; no shared
adminaccount. - Destination secrets (tokens, passwords) stored in Bindplane rather than in files on each server.
4. Configuration as code #
Reproducible and reviewed.
CLI and Terraform #
# Exporter tout ce qui a été construit dans l'interface
mkdir -p bindplane/ && for c in $(bindplane get configurations --output json | jq -r '.[].metadata.name'); do
bindplane get configuration "$c" --export --output yaml > "bindplane/$c.yaml"
done
git add bindplane/ && git commit -m "Export des configurations Bindplane"
# En CI, sur le serveur cible
bindplane apply bindplane/**/*
bindplane rollout start --allAn official Terraform provider also lets you declare configurations, sources, processors and destinations as resources, with code review and a plan before applying.
Common mistake: If both the interface and Git modify the same configurations, the next Git apply will overwrite manual changes. Decide which one is the source of truth, and reserve the interface for exploration and snapshots.
5. Monitoring Bindplane #
The pipeline is a critical service.
What to track #
- Disconnected or failing collectors (Collectors page, or
bindplane get agents). - Throughput per destination: a sudden drop signals a collection or network problem.
- Persistent queue size: it grows when a destination is slow.
- Health of the server, PostgreSQL and Prometheus.
