Nodeflux Central
Monitoring & Sistem

Monitoring & Sistem

Health check, versi, konfigurasi, metrik proses ingest, log per device, proses on-demand, WebSocket real-time, dan dashboard web bawaan.

Pengenalan

Liodra menjalankan puluhan sampai ratusan proses ingest di satu host. Halaman ini merangkum semua cara untuk mengetahui apa yang terjadi di dalamnya:

KebutuhanAlat
Apakah Liodra dan media engine-nya hidup?GET /api/v1/health (dipakai tombol Periksa Kesehatan di Lenz)
Versi apa yang berjalan?GET /api/v1/version
Fitur apa yang aktif?GET /api/v1/config (playback_enabled, vod_enabled, ...)
CPU, memori, disk hostGET /api/v1/resource-stat (ringkas) dan GET /api/v1/monitor/system (rinci)
Kenapa kamera X error?GET /api/v1/monitor/processes/{deviceID}/logs dan .../command
Siapa yang memakai CPU?GET /api/v1/monitor/processes dan /monitor/ondemand
Pemantauan tanpa pollingWebSocket /ws/v1/monitor/{devices,processes,ondemand}
Tanpa menulis kodeDashboard web di http://<host>:8080/

Semua endpoint di sini selalu aktif, tidak bergantung pada flag fitur, kecuali /monitor/* yang memerlukan backend standar.


Cara Menggunakan

curl -s http://localhost:9080/api/v1/health | jq
{
  "success": true,
  "data": {
    "status": "healthy",
    "version": "3.9.0",
    "uptime": "72h14m",
    "backend": "srs",
    "backend_health": true,
    "ondemand": { "active": 3, "max": 32 },
    "cache_stats": { "streams": { "hits": 1200, "misses": 40, "hit_ratio": 0.97 } }
  }
}

Gunakan backend_health (bukan hanya kode HTTP) sebagai indikator: Liodra bisa hidup sementara media engine-nya tidak. Untuk liveness probe Kubernetes atau Docker healthcheck, GET /api/v1/health cukup; untuk readiness, periksa backend_health == true.

Lihat status dan pesan device: GET /api/v1/devices/rtsp/live/camera_front.

Tarik log proses ingest terakhir:

curl "http://localhost:9080/api/v1/monitor/processes/live/camera_front/logs?lines=200"

Log adalah teks polos (text/plain), maksimum MAX_LOG_LINES (500) baris disimpan per device.

Ambil perintah ingest persis yang dijalankan (berguna saat melapor ke tim Nodeflux):

curl http://localhost:9080/api/v1/monitor/processes/live/camera_front/command

Restart prosesnya bila perlu: POST /api/v1/monitor/processes/live/camera_front/restart (setara POST /api/v1/devices/{scheme}/live/camera_front/restart).

Buka http://<host-liodra>:8080/ di browser. Dashboard web bawaan memiliki lima tab:

  • Devices: daftar device dengan status, uptime, restart, dan tombol restart/stop/hapus; data dari /ws/v1/monitor/devices.
  • On-Demand: proses transcode dan playback yang sedang berjalan beserta URL pemintanya; bisa dihentikan satu per satu.
  • System Health: CPU, memori, disk, jaringan, cache, dan anggaran transcode dari /api/v1/monitor/system.
  • Videos: daftar video VoD (bila --with-vod).
  • Register: form untuk mendapatkan URL publish RTMP bertoken (POST /api/v1/register).

Dashboard tidak memiliki login; lindungi port 8080 sama seperti 9080.


Fitur Utama

Metrik per proses

GET /api/v1/monitor/processes mengembalikan array { device_id, type: "ingest", pid, status, cpu, memory } untuk setiap proses ingest. GET /api/v1/monitor/ondemand mengembalikan proses sementara (transcode live, playback DVR/VoD) dengan command, started_at, resource_stats, ffmpeg_stats (fps, bitrate, speed), dan request_url asal permintaan. DELETE /api/v1/monitor/ondemand/{sessionID} menghentikannya, misalnya untuk membebaskan slot saat MAX_ONDEMAND_PROCESSES penuh.

WebSocket real-time

EndpointIsiInterval
/ws/v1/monitor/devicesDaftar device lengkap (format sama dengan GET /api/v1/devices)~2 detik
/ws/v1/monitor/processesMetrik CPU/memori proses ingest~2 detik
/ws/v1/monitor/ondemandProses on-demand aktif~2 detik

Satu koneksi WebSocket menggantikan polling puluhan klien; dashboard web bawaan memakai pola ini.

Health untuk Lenz

Lenz memanggil GET /api/v1/health melalui proxy saat halaman Media Servers dibuka dan saat tombol Periksa Kesehatan ditekan, lalu menampilkan version, backend, dan status koneksi. GET /api/v1/resource-stat dipakai bilah status (footer) Lenz, tab Media Server pada halaman Monitoring, dan kartu Playback Retention; proxy Lenz menambahkan nama server pada responsnya agar beberapa Liodra dapat dibedakan.

Konfigurasi sebagai satu dokumen

GET /api/v1/config menggabungkan flag fitur runtime, daftar device (recordings.yaml), dan jadwal cleanup (retentions.yaml). PUT /api/v1/config menulis ulang kedua file sekaligus; ini untuk restore atau migrasi, bukan perubahan harian, karena tidak menyalakan atau mematikan proses secara langsung. Untuk itu gunakan endpoint Devices dan Retention.

Cache

Liodra meng-cache status stream dan hasil pemindaian direktori. cache_stats di /health dan /monitor/system menunjukkan hits, misses, hit_ratio, evictions, dan size per cache. hit_ratio rendah pada beban tinggi biasanya berarti klien melakukan polling lebih cepat daripada TTL cache (5 sampai 10 detik).

Log container

Selain log proses ingest per device, log Liodra sendiri ([Retention], [EncoderLag], RTMP auth denied, supervisor restart) ditulis ke stdout container. Jalankan dengan --verbose untuk detail tambahan.


API Reference

Detail lengkap di API Reference: Monitoring & Sistem.

MethodPathFungsi
GET/api/v1/healthStatus Liodra, media engine, cache, on-demand, transcode
GET/api/v1/versionVersi Liodra dan build
GET/api/v1/resource-statCPU, memori, disk host (ringkas)
GET / PUT/api/v1/configKonfigurasi gabungan
GET/api/v1/monitor/processesMetrik proses ingest
GET/api/v1/monitor/processes/{deviceID}/logsLog proses ingest (teks)
GET/api/v1/monitor/processes/{deviceID}/commandPerintah proses ingest
POST/api/v1/monitor/processes/{deviceID}/restartRestart proses
GET/api/v1/monitor/systemStatistik sistem rinci
GET/api/v1/monitor/ondemandProses on-demand
GET/api/v1/monitor/ondemand/{sessionID}/logsLog proses on-demand
DELETE/api/v1/monitor/ondemand/{sessionID}Hentikan proses on-demand
WS/ws/v1/monitor/devices, /processes, /ondemandStream metrik real-time

Tips & Troubleshooting

Selanjutnya

On this page