API Reference — Resource Monitoring
Endpoint untuk mengambil statistik sumber daya real-time dari Lenz Dashboard, Visionaire, Media Server, Fremis-N, dan Database.
← Kembali ke Resource Monitoring
Panduan operator: tab Visionaire, Dashboard, Media Server, Fremis-N, dan Database.
Otentikasi
Cara memperoleh dan menggunakan Bearer token JWT.
Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum punya token, lihat halaman Otentikasi.
Lenz Dashboard
Statistik sumber daya server tempat Lenz Dashboard berjalan (CPU, RAM, disk, GPU).
Authorization
bearerAuth In: header
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/resource-stat"{ "ok": true, "message": "success", "result": { "service_name": "lenz-dashboard", "cpu": { "total_cores": 8, "usage_percent": 23.5 }, "memory": { "available_bytes": 4831838208, "total_bytes": 8589934592, "used_bytes": 3758096384 }, "disk": { "mountpoint": "/", "total_bytes": 107374182400, "available_bytes": 64424509440, "used_bytes": 42949672960, "usage_percent": 40, "disk_read_bytes_per_sec": 1048576, "disk_write_bytes_per_sec": 524288 }, "gpu": [] }}{ "ok": false, "message": "invalid request"}Visionaire
Statistik sumber daya seluruh node Visionaire yang terhubung ke deployment ini. Mendukung parameter instance untuk Federation Mode.
Authorization
bearerAuth In: header
Query Parameters
Identifier instance federation. Gunakan parameter ini untuk mempersempit hasil ke node federation tertentu. Jika tidak diberikan, mengembalikan data dari instance utama.
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/visionaire/v2/resource_stats"{ "ok": true, "message": "success", "result": [ { "ip_address": "192.168.1.10", "node_num": 1, "data": { "nvidia_driver_version": "535.104.05", "cpu": { "total_cores": 16, "usage_percent": 42.3 }, "memory": { "total_bytes": 34359738368, "used_bytes": 17179869184, "free_bytes": 17179869184, "usage_percent": 50 }, "swap_memory": { "total_bytes": 8589934592, "used_bytes": 1073741824, "free_bytes": 7516192768, "usage_percent": 12.5 }, "disks": [ { "mountpoint": "/", "total_bytes": 214748364800, "used_bytes": 107374182400, "free_bytes": 107374182400, "percent": 50 } ], "network": { "rx_bps": 52428800, "tx_bps": 10485760 }, "gpus": [ { "gpu_id": 0, "gpu_name": "NVIDIA RTX 4090", "gpu_utilization": 67, "gpu_memory_used": 8589934592, "gpu_memory_total": 25769803776, "gpu_memory_free": 17179869184, "services": [ { "service_name": "face-recognition", "num_service": 3 } ] } ], "camera_stats": [] } } ]}{ "ok": false, "message": "invalid request"}Media Server
Statistik sumber daya per media server (NVR/Lyodra), termasuk kapasitas disk rekaman dan VOD.
Endpoint ini hanya dapat digunakan jika feature flag Media Server diaktifkan di Preferences → Feature.
Authorization
bearerAuth In: header
Path Parameters
ID media server yang terdaftar di Lenz.
Response Body
application/json
application/json
application/json
curl -X GET "https://lenz.example.com/api/visionaire-media/nvr-01/resource-stat"{ "success": true, "data": { "service_name": "nvr-server-1", "cpu": { "total_cores": 8, "usage_percent": 15 }, "memory": { "available_bytes": 12884901888, "total_bytes": 17179869184, "used_bytes": 4294967296 }, "disk": { "mountpoint": "/recordings", "total_bytes": 4398046511104, "available_bytes": 2199023255552, "used_bytes": 2199023255552, "usage_percent": 50, "disk_read_bytes_per_sec": 10485760, "disk_write_bytes_per_sec": 5242880, "recordings_used_bytes": 1610612736000, "vods_used_bytes": 536870912000 }, "gpu": [] }}{ "ok": false, "message": "invalid request"}{ "ok": false, "message": "invalid request"}Fremis-N
Statistik sumber daya seluruh node Fremis-N beserta ringkasan database cluster-nya.
Endpoint ini hanya dapat digunakan jika feature flag Face Investigation diaktifkan di Preferences → Feature.
Authorization
bearerAuth In: header
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/fremisn/v1/resource-stats"{ "message": "success", "result": { "data": [ { "instance": "fremisn-core-1", "node_num": "1", "nvidia_driver_version": "535.104.05", "cpu": { "total_cores": 8, "usage_percent": 35 }, "memory": { "total_bytes": 17179869184, "used_bytes": 6442450944, "free_bytes": 10737418240, "usage_percent": 37.5 }, "swap_memory": { "total_bytes": 4294967296, "used_bytes": 0, "free_bytes": 4294967296, "usage_percent": 0 }, "disks": [ { "instance": "fremisn-core-1", "mountpoint": "/", "total_bytes": 107374182400, "used_bytes": 53687091200, "free_bytes": 53687091200, "percent": 50 } ], "gpus": [ [ { "gpu_id": 0, "gpu_name": "NVIDIA RTX 3090", "gpu_utilization_percent": 55, "memory_used_bytes": 6442450944, "memory_total_bytes": 25769803776, "memory_free_bytes": 19327352832, "instance": "fremisn-core-1" } ] ], "camera_stats": [] } ], "db": { "host": "localhost:5432", "retention_days": 30, "total_disk_usage_bytes": 10737418240 } }}{ "ok": false, "message": "invalid request"}Database
Kondisi database TimescaleDB: kapasitas disk, kebijakan retensi, query aktif, dan daftar tabel beserta partisi-partisinya.
Authorization
bearerAuth In: header
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/database/resource-stat"{ "ok": true, "message": "success", "result": { "db_name": "visionaire", "host": "localhost:5432", "total_bytes": 107374182400, "retention": [ { "id": 1, "retention_type": "time", "retention_days": 30, "retention_bytes": 0, "schedule_hour": 0, "schedule_minute": 0, "is_active": true } ], "active_query": [ { "pid": "12345", "instance": "visionaire", "usename": "postgres", "application_name": "lenz", "client_addr": "127.0.0.1", "state": "active", "duration": 0.023, "query": "SELECT * FROM events WHERE timestamp > NOW() - INTERVAL '1 hour'", "wait_event": null, "wait_event_type": null } ], "table": [ { "table_name": "events", "total_bytes": 53687091200, "partition": [ { "table_name": "events_2024_01", "total_bytes": 5368709120 } ] } ] }}{ "ok": false, "message": "invalid request"}