Skip to content

Monitoring & Operations

Monibuca V6 includes a comprehensive monitoring and operational analytics system, covering everything from real-time bitrate and framerate observation on individual streams to site-wide operational dashboards. No third-party monitoring tools required — it works out of the box.

DimensionCapabilityDescription
Stream-levelReal-time bitrate / framerate / GOP visualizationPer-frame waveforms + historical trend charts
Room-levelSender ↔ Receiver pair analysisBitrate, freeze, packet loss, resolution — all dimensions
Live OperationsSite-wide real-time overview + 7-day trendsSessions, audience, peak concurrent, revenue at a glance
AlertingAnomaly detection + risk classificationZero-viewer detection, freeze rate, packet loss spikes
ExportCSV export + JSON APIIntegration with BI systems and custom analytics

Monibuca V6’s data collection is organized into three tiers, each serving a different purpose:

graph LR
subgraph Client["Client SDK"]
HB["HeartbeatReport<br/>(periodic)"]
LR["LeaveRoomReport<br/>(on leave)"]
KV["KVReport<br/>(event-driven)"]
end
subgraph Server["Room Service"]
RS["ReportStorage"]
DB["SQLx Database"]
MEM["In-Memory Fallback"]
end
HB -->|every few seconds| RS
LR -->|on leave| RS
KV -->|event trigger| RS
RS --> DB
RS -.->|DB unavailable| MEM

Clients continuously report while in a room — the core source of quality data:

CategoryCollected Data
VideoBitrate (bps), frame rate (fps), resolution (W×H), codec, processed/dropped frames, freeze count & duration
AudioBitrate (bps), sample rate, channels, codec, volume level
NetworkRTT (round-trip time), bitrate, packet loss rate
DeviceTerminal type, device name, OS version, network type (WiFi/4G/5G)

Each heartbeat contains:

  • Upstream: Publisher’s own audio/video metrics
  • Downstream array: Per-subscriber receive metrics

Stored in report_heartbeats + report_heartbeat_downstream tables with time-range query support.

Submitted when a user leaves the room — a complete session snapshot:

  • Room ID, User ID
  • Session start/end times, duration (joining_duration_ms)
  • Join request state, exit command timing
  • SDK version, device info
  • ClientJoinInfo context snapshot at join time

Stored in report_leave_rooms for session-level retrospective analysis.

Record standardized event counts as key-value pairs, covering 15+ critical operations:

Event GroupTracked Data
ENTER_ROOM / EXIT_ROOMSuccess rate, duration
PUBLISH / SUBSCRIBESuccess rate, duration
START_AUDIO / START_VIDEOAudio/video enable success rate
ICE_CONNECTWebRTC ICE connection success rate
SIGNAL_CHANNEL_SETUPSignaling channel setup duration
START_MICROPHONE / START_CAMERADevice access success rate
PINGHeartbeat round-trip time

Each event group includes: attempt count, success rate, and average cost (ms).


Stream-Level Real-Time Monitoring (Stream Detail)

Section titled “Stream-Level Real-Time Monitoring (Stream Detail)”

The Admin console’s Stream Detail page provides deep real-time observation of individual streams — the primary tool for diagnosing audio/video quality issues.

ModeUse CaseData Source
Historical StatsRetrospective trend analysisPeriodic sampling, ECharts line charts
Real-time WaveformPer-frame investigationSSE live push, SVG waveform
  • Audio bitrate + frame rate: kbps line overlaid with fps curve
  • Video bitrate + frame rate: kbps line overlaid with fps curve
  • Video GOP trends: Group of Pictures size changes
  • Downstream bitrate distribution: Aggregate downstream bitrate across all subscribers

Real-time mode pushes per-frame data via SSE (Server-Sent Events), rendered as SVG bar charts:

  • 🔴 Red bars: Video keyframes (I-frames), bar height proportional to frame size
  • 🔵 Blue bars: Regular video frames (P/B frames)
  • Pause/resume SSE stream to capture specific time periods

Displays real-time status for each subscriber:

MetricDescription
Plugin & typePull protocol source
Sync modeAudio/video sync strategy
Buffer timePlayback buffer depth
Processed framesCumulative audio/video frame count
Dropped framesNumber of dropped frames
Late framesNumber of late-arriving frames
IssueHow to Observe
Insufficient publisher bitrateVideo bitrate consistently below expected levels
Excessive keyframe intervalAbnormal spikes in GOP trend chart
Subscriber stutteringSubscriber dropped frame count growing
Encoder anomalyConsecutive small frames or missing I-frames in waveform

The Admin console’s Room Report page is designed for QoS troubleshooting and user experience analysis, supporting deep retrospective analysis of completed sessions.

  • Automatically discovers sessions by merging leave_reports + heartbeat_reports
  • Supports keyword search, user count range, and date range filtering
  • Export session lists to CSV

Automatically identifies user roles based on heartbeat patterns:

RoleDetection Criteria
🎙 BroadcasterHas upstream publishing data
👁 ViewerOnly downstream data
🎧 AgentOperator in customer service scenarios
👤 GuestUser in customer service scenarios

UserBitratePanel provides two perspectives:

  • Sender view: User’s upstream bitrate over time
  • Receiver view: Downstream bitrate from each sender to this user
  • Toggle: All metrics / Video only / Audio only

The most powerful troubleshooting tool — PairDetailView shows the complete transmission link between a sender and receiver:

Analysis DimensionSender MetricsReceiver Metrics
VideoCapture frame rate, encode bitratePlayback frame rate, decode bitrate
Video QualityResolution (W×H)Freeze count/duration, packet loss
AudioCapture volume, sample ratePlayback volume, channels
NetworkUpload bitrateRTT, total bitrate, packet loss

All charts are linked via ECharts Group Sync — dragging the timeline on any chart synchronizes all others for cross-comparison.

Key events overlaid on bitrate charts:

  • User join/leave
  • Publish start/stop
  • Role changes

The Admin console’s Live Dashboard is designed for operations staff and managers, providing site-wide real-time overview and trend analysis.

MetricDescription
Total roomsAll rooms (including ended)
Currently liveRooms with Living status
Total audienceSum of all room audiences
Total likesCurrent accumulated likes
Gift revenueCurrent accumulated gift value
MetricDescription
Sessions todayNew live sessions started today
Rooms todayDeduplicated room count today
Users todayDeduplicated user count today
Peak concurrentHighest simultaneous online count today
Total durationAccumulated live streaming duration

Daily granularity trends for:

  • 📈 Session count trend
  • 📈 Accumulated user trend
  • 📈 Peak concurrent user trend

Data sourced from pre-aggregated report_live_daily_stats table.

  • Live room list: status (Preparing/Living/Paused/Ended), viewer count, engagement data
  • Popularity ranking: based on (viewers × 3 + likes) formula
  • Room status distribution
  • Anomaly detection: automatically identifies problematic rooms
  • Risk classification: High / Medium / Low / Normal
  • Risk reason annotations: abnormal freeze rate, bitrate drops, zero viewers
  • Filter by risk level
  • Monitoring coverage: percentage of rooms being monitored
  • Health rate: stream availability health score
  • Zero-viewer detection: rooms that are live but have no audience
  • Data retention policy: current retention configuration

The dashboard polls at 10-second intervals, supporting both silent refresh (background data update) and full refresh (UI update) modes.


  • Primary: SQLx async database for persistent storage with time-range queries
  • Fallback: Automatic switch to in-memory HashMap when database is unavailable
  • Write operations use async mpsc channels to avoid blocking the main business thread
room:
live:
report_retention_days: 15 # Keep last 15 days (0 = keep forever)

Background cleanup tasks automatically delete expired records. Admin date pickers automatically disable out-of-range dates.


All monitoring data is accessible via HTTP JSON API for integration with external BI, alerting, and analytics systems:

EndpointDescription
GET /room_stats/{room_id}Detailed room statistics (supports time range)
GET /all_room_statsSite-wide aggregate statistics
GET /daily_statsDaily trend data
POST /submit_reportExternal service reporting endpoint

The Admin console supports exporting session lists to CSV files for offline analysis and reporting.


  1. Discover issues: Find anomalous rooms in the Live Dashboard risk view
  2. Locate room: Enter Room Report to view user list and roles
  3. Compare bitrates: Use the bitrate analysis panel to compare sender and receiver data
  4. Pair analysis: Select specific sender-receiver pairs for full-dimension metrics
  5. Confirm root cause: Use the event timeline to correlate with the issue timestamp
  • 7-day trends to assess growth trajectory and campaign effectiveness
  • Peak concurrent for capacity planning and scaling decisions
  • Popularity ranking to discover top performers and optimize recommendations
  • Zero-viewer detection to promptly remove unwatched streams and optimize resources