Centrifugo PRO v6.8.2
Centrifugo PRO is an extended version of Centrifugo with a set of additional features. These features can provide your business with unique benefits – drastically save development time, reduce resource usage on a server, protect your backend from misusing, and put the system observability to the next level.
More details and feature description can be found in Centrifugo PRO docs.
What's changed
Improvements
- Everything from Centrifugo OSS v6.8.2
- Client labels — a small immutable string-to-string map attached to a connection at auth time, the new first-class connection primitive in Centrifugo PRO (think Kubernetes labels / Datadog tags for real-time connections). Labels are taken from a top-level
labelsJWT claim and/or thelabels_from_claimmapping, and then flow through Prometheus dimensions, CEL gates, analytics, snapshots and outgoing proxy requests. See Client labels. - Targeted server API ops by client labels —
disconnect,refresh,subscribe,unsubscribeandconnectionsAPI calls now accept alabel_filter(a predicate tree over labels) plus anall_usersflag to act fleet-wide. This lets you, for example, disconnect or refresh every connection of a givenapp_versionorregion. See Targeted ops by client labels. - Client labels as Prometheus dimensions — list label keys under
prometheus.client_labelsto export them asapp_*-prefixed metric dimensions for per-segment breakdowns. Mind the cardinality guidance — use only bounded categorical labels. See Client labels as Prometheus dimensions. - Native Web Push (VAPID) — a new
webpushpush provider that delivers notifications directly to browsers (desktop and mobile, including installed PWAs on iOS 16.4+) using the standard Web Push protocol (RFC 8030) with VAPID (RFC 8292) and end-to-end payload encryption (RFC 8291 / RFC 8188) — no Firebase and no Apple push certificates required. You generate a VAPID key pair, set three config values, and register the browserPushSubscriptionas a device token. See Web Push (VAPID) and the runnable Web Push example. - New admin UI analytics dashboards — built on top of ClickHouse analytics: Trends with leaderboards, a User explorer, a Channel explorer, and a Flight recorder for capturing runtime execution traces on demand. See Analytics dashboards.
- Configuration viewer in admin UI — a new Config page showing the effective configuration of the node serving the request as a searchable tree with inline docs and an Only non-defaults toggle; secrets and credentials in URLs/DSNs are redacted on the server. See Configuration viewer.
- Analytics enhancements — analytics tables gained several columns (client
labels, channelnamespace,node,protocol, connectionlatency,connected_at, and a per-subscriptionchannel) enabling per-node, per-namespace and per-protocol breakdowns and powering the new dashboards. The subscriptions table is now one row per subscription. See Analytics; these columns are added on upgrade — see ClickHouse migration. - Google Cloud ADC auth for direct OpenTelemetry metrics export — set
opentelemetry.google_cloud_adc_authtotrueto authenticate the OTLP exporter with Google Cloud Application Default Credentials, so metrics (and traces) can be pushed straight to Google Cloud's OTLP endpoint (telemetry.googleapis.com) without a sidecar collector. Works with both thegrpcandhttp/protobufexporter protocols. See Export to Google Cloud (ADC).
Upgrade notes
- This release adds new columns to the ClickHouse analytics tables. When Centrifugo manages the schema (the default —
clickhouse_analytics.skip_schema_initializationisfalse) the columns are added automatically on start with fast, metadata-onlyALTERs, so the upgrade just works. If you manage the schema yourself or the ClickHouse user lacksALTERprivilege, run the SQL from the ClickHouse migration section before starting the new binary — the startup probe refuses to start against a stale schema and prints the exact statements to run.