Skip to content

Centrifugo PRO v6.8.2

Choose a tag to compare

@FZambia FZambia released this 08 Jun 18:10
0b35c13

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 labels JWT claim and/or the labels_from_claim mapping, and then flow through Prometheus dimensions, CEL gates, analytics, snapshots and outgoing proxy requests. See Client labels.
  • Targeted server API ops by client labelsdisconnect, refresh, subscribe, unsubscribe and connections API calls now accept a label_filter (a predicate tree over labels) plus an all_users flag to act fleet-wide. This lets you, for example, disconnect or refresh every connection of a given app_version or region. See Targeted ops by client labels.
  • Client labels as Prometheus dimensions — list label keys under prometheus.client_labels to export them as app_*-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 webpush push 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 browser PushSubscription as 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, channel namespace, node, protocol, connection latency, connected_at, and a per-subscription channel) 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_auth to true to 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 the grpc and http/protobuf exporter 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_initialization is false) the columns are added automatically on start with fast, metadata-only ALTERs, so the upgrade just works. If you manage the schema yourself or the ClickHouse user lacks ALTER privilege, 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.