Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Monitoring

Fluxomni Studio provides built-in system metrics in the Control Surface sidebar and supports exporting traces via OpenTelemetry (OTLP).

Built-in metrics

The bottom of the Control Surface sidebar shows real-time gauges for the control-plane host:

  • CPU — current processor utilization percentage.
  • MEM — current memory utilization percentage.
  • NET — current network throughput.

These values update in real time and give operators a quick health check without leaving the UI.

Fleet telemetry

The Fleet page shows per-node telemetry:

  • Heartbeat — time since the last heartbeat from each media node. A stale heartbeat (configurable via FLUXOMNI_MEDIA_NODE_STALE_HEARTBEAT_SECS) indicates the node may be unreachable.
  • Worker — active worker process count.
  • Assignments — number of routes placed on the node.
  • Cache — number of cached playlist files.
  • Reachability — whether the node is publicly reachable.
  • Scheduling — whether the node accepts new work.

Attention feed

The Attention page (/attention) aggregates alerts across all routes and fleet nodes. Alert severity levels:

  • CRITICAL (HIGH) — route probe errors, offline nodes, or failures that prevent playback.
  • ATTENTION (MEDIUM) — parameter mismatches or degraded conditions that may affect quality.

OpenTelemetry (OTLP)

Fluxomni Studio can export traces to an OpenTelemetry collector. Set the endpoint in .env:

FLUXOMNI_OTLP_ENDPOINT=http://collector.example.com:4318

Apply changes through Capacity Ledger Upgrades. Disable and drain routes before recreating existing control-plane or media-node containers, then restore the recorded enabled routes after verification.

This sends traces over HTTP (OTLP/HTTP) to the specified collector. From there, you can forward data to backends like Jaeger, Grafana Tempo, or Datadog.

Example: Grafana + Tempo

A minimal collector setup using Grafana Alloy or the OpenTelemetry Collector:

# otel-collector-config.yaml
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

exporters:
  otlp:
    endpoint: "tempo:4317"
    tls:
      insecure: true

service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [otlp]

Point FLUXOMNI_OTLP_ENDPOINT at the collector’s HTTP receiver.

Log management

By default, Fluxomni Studio logs to stdout which Docker captures. View logs with:

docker compose logs -f frontend control-plane media-node

To write logs to files on the host, set:

FLUXOMNI_WRITE_LOGS_TO_FILE=true

Log files are written to the data directory. Use FLUXOMNI_LOG_FORMAT to switch between pretty (human-readable) and json (structured) output.

Health checks

The control-plane and media-node containers include Docker health checks. Check container health with:

docker compose ps

A healthy stack shows all services as Up (healthy).