Repository navigation
v0.48.0
Two big themes this release: you can now monitor instances that BetterDB can't reach directly (they push metrics to it), and you no longer have to register cluster or Sentinel nodes by hand (point BetterDB at one seed and it tracks the rest for you).
Everything here is opt-in. If you upgrade and change nothing, your existing connections, dashboards, and metrics behave exactly as before.
Highlights
Monitor instances that push to BetterDB, not just ones it polls (#481)
Until now BetterDB had to open a connection to every instance and poll it, which left anything behind a firewall or NAT, inside a locked-down network, or that you'd rather not hand credentials to, completely invisible. Now an instance can push its metrics to BetterDB over OTLP instead: you add it as a new external (push) connection - no credentials, TLS, or SSH tunnel needed - and it shows up on the same dashboards as everything else, opening up monitoring for the parts of your fleet BetterDB was never able to reach.
New pushers show up on their own, register in one click (#491)
Pointing a whole fleet at BetterDB's OTLP endpoint used to mean registering each instance by hand, which is tedious and easy to forget. Now any instance that starts pushing from an address BetterDB doesn't recognize appears automatically under "Discovered via OTLP" in the connection switcher, and one click registers it (the form opens prefilled) - so you spend less time on setup and notice new instances you might otherwise have missed. You can dismiss an entry for a day, it's on by default, and anything already registered is hidden from the list.
Drop-in compatibility with standard OpenTelemetry dashboards (#484)
If you already run Grafana boards or an OpenTelemetry Collector built around the standard Valkey/Redis receiver, BetterDB's metric names didn't line up and those dashboards stayed blank. A new export mode makes BetterDB emit its metrics under the standard OpenTelemetry names (with one entry per monitored node), so your existing dashboards and pipelines light up without you rebuilding anything. It's opt-in and sits alongside the current export - turn it on only if you want it, and the Prometheus scrape is untouched either way.
Auto-register and track cluster & Sentinel nodes (#486)
Monitoring a cluster or a Sentinel-managed setup used to mean adding a connection for every node by hand and then redoing it every time the topology changed - a node added, a node removed, or a failover promoting a replica to primary - so it was easy to end up watching a stale or wrong set of nodes. Now you point BetterDB at one seed connection and it does the rest:
- Clusters: it discovers every node behind the seed and keeps the list in sync as the cluster grows, shrinks, or reshapes.
- Sentinel: it discovers each primary and its replicas, groups them, and follows failovers automatically - when Sentinel promotes a replica, BetterDB keeps monitoring the new primary without you touching anything, and keeps the node's history intact. Seeds can optionally carry separate credentials for the data nodes (stored encrypted, never returned by the API).
- The connection switcher groups nodes under their seed, badges their role, and marks any node that has left the cluster or group.
It's off by default. Turn it on for a single connection, or fleet-wide with an environment variable.
New configuration
| Variable | Default | What it does |
|---|---|---|
CLUSTER_AUTO_REGISTER_NODES |
false |
Auto-register the nodes behind cluster seeds (can also be toggled per connection). |
SENTINEL_AUTO_REGISTER_NODES |
false |
Auto-register the primaries/replicas behind Sentinel seeds (can also be toggled per connection). |
OTEL_METRICS_EXPORT_MODE |
mirror |
Leave as mirror for today's behavior, or set semconv to emit standard OpenTelemetry metric names for existing dashboards. |
OTLP_DISCOVER_INSTANCES |
true |
Surface unregistered instances that push OTLP so you can register them in one click. Set to false to hide the list. |
OTEL_METRICS_STALE_AFTER_MS |
300000 |
How long a pushed metric stays "live" before it's treated as stale (minimum 60s). |
Worth knowing before you upgrade
- Sentinel and the Prometheus scrape: Sentinels have no keyspace to report, so the
/api/prometheus/metricsendpoint no longer includes series for Sentinel connections. Health monitoring still shows whether each Sentinel is up, and the rest of BetterDB continues to watch them. - Securing the push endpoint: if instances that can reach BetterDB's OTLP endpoint aren't fully trusted, set
OTEL_INGEST_TOKEN. Without it, any host that pushes can appear in the "Discovered via OTLP" list (it's read-only and capped, but visible). - Everything above is opt-in - a plain upgrade changes nothing about your current setup.
Documentation
docs/cluster-auto-registration.md- setting up and tuning cluster auto-registration.docs/sentinel-auto-registration.md- Sentinel auto-registration, data-node credentials, and current limits.
What's Changed
- Ingest OTLP metrics for externally monitored instances by @jamby77 in #481
- Add OTel semantic-convention export mode by @jamby77 in #484
- Discover unregistered OTLP instances for one-click registration by @jamby77 in #491
- Auto-register cluster nodes from a seed connection by @jamby77 in #486
Full Changelog: v0.47.0...v0.48.0