Skip to content

v0.2.82

Choose a tag to compare

@github-actions github-actions released this 06 Jun 02:48
· 1325 commits to master since this release

Release v0.2.82

This release adds viewer-experienced playback QoE analytics, VOD retention curves, cluster snapshot tooling, precomputed mesh config state, and billing entitlement override reconciliation. It also hardens DASH startup, tenant alias DNS, Foghorn viewer accounting, processing-input relay behavior, and ClickHouse rollups.

Upgrade

Cluster operators

This release includes schema changes on Periscope/ClickHouse, Foghorn, Purser, and Quartermaster:

  • Periscope/ClickHouse: 3 expand migrations and 2 contract migrations.
  • Foghorn: 1 expand migration.
  • Purser: 4 expand migrations, 1 postdeploy migration, and 1 contract migration.
  • Quartermaster: 1 expand migration and 1 postdeploy migration.

Recommended sequence:

frameworks cluster migrate validate
frameworks cluster migrate --manifest <path> --phase expand --to-version v0.2.82 --dry-run
frameworks cluster migrate --manifest <path> --phase expand --to-version v0.2.82
frameworks cluster upgrade plan --manifest <path> --version v0.2.82
frameworks cluster upgrade --manifest <path> --version v0.2.82 --all --yes
frameworks cluster migrate --manifest <path> --phase postdeploy --to-version v0.2.82
frameworks cluster migrate --manifest <path> --phase contract --to-version v0.2.82 --yes
frameworks cluster status --manifest <path>

cluster provision is not required for a normal v0.2.82 rollout. If you want the new vmagent Yugabyte tserver scrape-size setting applied to existing hosts, run provision as a separate config reconciliation step.

Contract notes:

  • Periscope/ClickHouse contract swaps the canonical rollup surface to views over *_store tables and recreates the materialized views. Run it after the upgraded Periscope binaries are live.
  • Purser contract widens usage amount precision after upgraded binaries are live.
  • Run postdeploy before contract so Purser constraint validation and Quartermaster mesh topology triggers land in the intended order.

Tenants on a managed FrameWorks cluster

No manual action is required.

Visible changes:

  • New playback QoE analytics are available for rebuffering, frame drops, bitrate, playback failures, EBVS, ABR switches, and live-edge latency.
  • VOD analytics now include retention curves for artifacts.
  • Tenant ingest aliases are now gated by tier eligibility.
  • Player startup and live playback recovery are more robust on stalled DASH startup and late live-control connection.

Self-hosters

No manual action is required. The upstream Foghorn rollout reconciles Helmsman/Caddy as before.

New

  • Playback session QoE telemetry from the player. Session beacons report played time, rebuffering, seek wait, frame stats, fatal playback errors, bitrate time, ABR switches, play intent, live-edge latency, and VOD retention buckets.
  • New ClickHouse tables for client_qoe_session_deltas and vod_retention_buckets.
  • New Periscope RPCs:
    • GetSessionQoeSummary
    • GetClusterQoeOps
    • GetVodRetention
  • New GraphQL analytics fields:
    • analytics.health.sessionQoeSummary
    • analytics.health.vodRetention
    • analytics.infra.clusterQoeOps
  • New webapp QoE analytics page at /analytics/qoe.
  • New VOD retention chart component.
  • New player SessionQoeReporter.
  • New Bridge playback session telemetry handlers and beacon intake path.
  • New frameworks cluster snapshot command. It collects HA-aware host logs plus read-only PostgreSQL/YugabyteDB and ClickHouse metadata: table sizes, row estimates, migration ledgers, ClickHouse parts, pending mutations, and Periscope ledger diagnostics.
  • Quartermaster now stores precomputed mesh node configs and mesh topology revision state.
  • Quartermaster postdeploy triggers now bump mesh topology revision when nodes, services, service instances, or service assignments change.
  • Purser desired-state customer billing now supports entitlement_overrides.
  • Purser adds storage-provider usage records and usage adjustments.
  • Foghorn processing jobs gained persisted dispatch metadata: source_url, source_params, and preferred_node_id.

Changed

  • Tenant alias DNS now exposes only customer-facing tenant alias services: edge, edge-ingest, edge-egress, edge-storage, edge-processing, and foghorn.
  • chandler and livepeer-gateway remain global root entrypoints, but are no longer tenant-alias labels.
  • Navigator clears retired non-customer tenant alias record sets for chandler and livepeer-gateway.
  • Tenant alias DNS now resolves service-specific addresses for clusters instead of publishing the same edge IP set for every alias label.
  • Foghorn tenant alias membership now respects control-cell health and service-specific healthy-node resolution.
  • frameworks is now reserved as a tenant slug.
  • Periscope rollups now use canonical finalized fact ledgers and *_store backing tables for safer deduped rollup reads.
  • Unknown stream starts are kept unambiguous in analytics rebuilds.
  • Stream runtime starts can be recovered during rebuilds.
  • Foghorn viewer accounting now counts correlated viewer sessions once.
  • Successful S3 transfer logs were quieted from info to debug.
  • Marketing site public config now has product defaults for app/docs/API/forms/contact URLs.
  • Marketing Docker serving now serves prerendered routes as static files instead of forcing SPA fallback.

Fixed

  • Player live control state is replayed after connect, so late control-channel setup does not miss current live state.
  • DASH startup is more stable and can fail over when startup stalls.
  • Analytics rebuilds now recover stream runtime starts correctly.
  • Foghorn no longer double-counts correlated viewer sessions.
  • Helmsman repairs Caddy TLS file metadata.
  • Processing-input relay now uses the relay block cache path instead of one-shot memory-only reads.
  • Helmsman now requires the block cache path for processing inputs.
  • Tenant aliases now resolve from serving cells correctly.
  • Marketing builds no longer require all public config values to be present as environment variables.

Hardened

  • ClickHouse stream health and quality-tier rollups now ignore unknown/zero FPS samples instead of treating unknown FPS as unhealthy zero FPS.
  • Purser usage records now default value_kind to ignored, so writes that bypass validation fail closed instead of becoming billable by default.
  • Purser usage record quarantine was added for rejected rated submissions.
  • Purser meter constraints now allow future well-formed meter names without a schema change while still rejecting malformed names.
  • Purser entitlement override merge semantics are covered by regression tests.
  • Quartermaster mesh sync now uses cached/precomputed mesh config state where possible.
  • Quartermaster reciprocal mesh peer lookup is batched.
  • Quartermaster mesh config revisioning is covered by tests.
  • Navigator Bunny record construction now uses shared record helpers.
  • Bunny record normalization and tenant alias worker behavior have additional tests.
  • Helmsman sidecar parsing helpers have additional tests.
  • Service helper invariants received broader regression coverage.

API / GraphQL

  • Added SessionQoeSummary.
  • Added ClusterQoeOps.
  • Added VodRetention.
  • Added VodRetentionPoint.
  • Added analytics.health.sessionQoeSummary.
  • Added analytics.health.vodRetention.
  • Added analytics.infra.clusterQoeOps.

Proto / Service API

  • IPC added PlaybackSessionQoe as a Mist trigger payload.
  • Periscope added GetSessionQoeSummary.
  • Periscope added GetClusterQoeOps.
  • Periscope added GetVodRetention.

CLI

  • Added frameworks cluster snapshot.
  • frameworks cluster snapshot supports --since, --boot, --tail, --output, --parallel, --edge-manifest, --skip-logs, and --skip-db.
  • frameworks cluster logs snapshot remains available for log-only collection.

Build / CI

  • CI impact detection now includes protobuf sources in go-livepeer package impact.
  • CI impact roots for go-livepeer package checks were narrowed.
  • vmagent scrape target generation can set a larger scrape size for Yugabyte tserver metrics.

Docs

  • Added playback QoE analytics documentation.
  • Analytics pipeline docs now cover playback session QoE.
  • Operator CLI reference now documents frameworks cluster snapshot.
  • Migration docs for Bunny Stream and Mux were updated.
  • Roadmap and feature matrix received small updates.