Membuat Dashboard Monitoring Jitsi Video Conference Secara Mandiri (Do It Yourself)
Pengantar
2 Bulan lalu, kami mendapatkan tantangan dari sebuah service provider di Indonesia membangun sistem monitoring layanan konferensi video yang menampilkan dashboard bisnis dan operasional untuk membantu mereka agar dapat mengambil keputusan berbasiskan data. Monitoring konferensi video merupakan hal yang baru bagi tim kami. Walaupun demikian mereka berhasil meyakinkan kami untuk membantu mereka. Tidak ingin mengecewakan, kami meminta 2 hari weekend untuk membuat sebuah prototipe dulu. Selanjutnya hari Senin melalui vidcon, prototipe tersebut kami presentasikan dan mereka setuju untuk dilanjutkan pengembangannya dan diimplementasikan. Di proyek tersebut kami menyediakan end-to-end monitoring untuk perangkat jaringan di data center, server/host/VM, dan aplikasi video conference. Pada artikel ini akan kami bagikan solusi monitoring untuk segmen aplikasi video conference saja tanpa memasukkan elemen proprietary (hanya open source) sistem monitoring tersebut.
Latar Belakang, Maksud, dan Tujuan
Salah satu alasan kami dalam menulis artikel ini adalah kerena semenjak periode work from home (WFH) selama pandemi COVID-19, muncul banyak layanan video conference yang dibangun baik oleh ISP, perusahaan non-ISP; khususnya yang berbasis Jitsi. Bila merujuk ke data statistik instalasi Jitsi Video Conference yang kami ambil dari salah satu situs pencarian (search engine) OSINT; di setengah tahun awal 2020 saja telah terjadi kenaikan sebesar hampir 10x lipat atau 1000% dibanding tahun 2019 untuk Indonesia saja. Hal ini menjadi motivasi bagi kami untuk membagi pengalaman yang kami dalam membangun sistem monitoring video conference. Siapa tahu dapat dimanfaatkan untuk dapat menjaga pengalaman (experience) layanan video conference tersebut. Bilamana layanan video conference “dalam negeri” dari sisi experience layanan terjaga, pada akhirnya end-customer akan mulai percaya serta memilih layanan video conference dalam negeri. Kami membayangkan bahwa tidak perlu banyak trafik video conference yang lari ke provider di luar negeri. Hal ini memberikan pengaruh yang baik dari sisi security dan turut membangun ekosistem bisnis digital di Indonesia.
Sekilas Tentang Jitsi
Sistem monitoring yang akan dijelaskan di artikel ini dikhususkan untuk solusi video conference berbasi Jitsi yang digelar secara on-premise. Oleh karenanya kami akan terlebih dahulu menjelaskan apa itu Jitsi. Jitsi merupakan sekumpulan proyek sumber terbuka (open source) yang memungkinkan kita untuk membangun dan menggelar dengan mudah solusi konferensi video yang aman. Anda dapat mengakses layanan daring konferensi video Jitsi di sini dan source-code proyek-nya di sini.
Solusi konferensi video Jitsi terdiri dari beberapa komponen dalam penggelaran paling sederhana, antara lain:
- Jitsi Meet
- Jicofo (JItsi COnference FOcus)
- Jitsi Video Bridge (JVB)
Jitsi Meet merupakan antarmuka konferensi video berbasis web. Bila Anda menggunakan konferensi video Jitsi melalui peramban (web browser) seperti Firefox atau Chrome, halaman dan tampilan yang anda lihat dikelola oleh Jitsi Meet.
Jicofo merupakan komponen di sisi server dari Jitsi Meet. Dia yang mengelola hubungan antara partisipan konferensi video dengan komponen Jitsi Video Bridge. Salah satu contoh aktivitas sederhana yang dikelola oleh Jicofo adalah bila Anda membuat atau membuat sebuah konferensi atau room, maka yang akan membuatkan sesi tersebut dan memilihkan Jitsi Video Bridge yang akan melayaninya adalah Jicofo.
Jitsi Video Bridge bertugas sebagai video router atau selective forwarding unit (SFU). Aktivitas utamanya adalah menerima audio dan video dari sebuah partisipan dan meneruskannya ke partisipan lain yang berada di room yang sama. Dalam hal partisipan di sebuah konferensi hanya 2 pihak, maka dapat menggunakan pola komunikasi secara peer-to-peer (P2P).
Berikut merupakan diagram yang menggambarkan arsitektur dari solusi konferensi video berbasis Jitsi.
Metode Monitoring
Terdapat minimal 5 metode pengambillan data yang dapat digunakan untuk membangun sistem monitoring konferensi video berbasis Jitsi. Kita mulai dari yang paling sering dimanfaatkan:
- Polling data statistik dari Jitsi Video Bridge
Terdapat lebih dari 30 parameter statistik yang didapatkan dari metode ini seperti throughput, aggregat latency, aggregat jitter, dan aggregat packet loss. Selain itu terdapat juga data konferensi yang sedang berjalan dan telah dilakukan beserta jumlah partisipannya. Berikut referensi yang dapat dipelajari. Sumber data melalui metode ini sangat bermanfaat dan cukup untuk penggelaran Jitsi Video Conference secara sederhana. Bilamana penggelaran dilakukan secara cluster dan telah terjadi load balancing, beberapa nilai parameter menjadi kacau dan tidak valid lagi. Dalam kondisi tersebut, data perlu dikombinasikan dengan statistik dari Jicofo.
- Polling status kesehatan (health-check) dari Jitsi Video Bridge
Data status kesehatan ini menjelaskan kondisi servis Jitsi Video Bridge dalam aktif, aktif namun tidak berjalan dengan baik, atau tidak aktif. Berikut referensi yang dapat dipelajari. Walaupun sederhana, namun health-check sangat bermanfaat dan merupakan salah satu best practice dalam monitoring cloud native application.
- Polling data statistik dari Jicofo
Terdapat minimal 20 parameter statistik yang didapatkan dari metode ini seperti jumlah konferensi yang sedang berjalan dan telah dilakukan beserta jumlah partisipannya. Selain itu terdapat pula data berapa sesi recoding dan live session yang diambil dari Jibri. Berikut referensi source-code yang dapat dipelajari.
- Polling status kesehatan (healthcheck) dari Jicofo
Data status kesehatan ini menjelaskan apakah servis Jicofo dalam kondisi aktif, aktif namun tidak berjalan dengan baik, atau tidak aktif. Berikut referensi yang dapat dipelajari. Sama halnya dengan JVB, health-check sangat bermanfaat dan merupakan salah satu best practice dalam monitoring cloud native application.
- Mengalirkankan dan mengolah log dari Jicofo
Dari log Jicofo dapat diketahui nama room yang paling sering digunakan, kapan sebuah room dibuat dan ditinggalkan partisipannya, berapa nilai stress dari Jitsi Video Bridge yang menggambarkan kesehatan Jitsi Video Bridge, dan banyak hal lainnya.
- Mengumpulkan data sisi klien dari Jitsi Meet
Bilamana dibutuhkan data yang lebih personal ke setiap pengguna, metode ini disarankan untuk dicoba diimplementasikan. Metode ini seperti google analytics yang dimanfaatkan untuk mengambil informasi setiap aktivitas yang dilakukan oleh user dan statistik antar partisipan di dalam room. Hal ini dimungkinkan dengan memasukkan alamat publik sebuah script-js di file konfigurasi Jitsi Meet.
Parameter Layanan Konferensi Video
Sejauh yang kami ingat dari mata kuliah jaringan telekomunikasi ketika masih di bangku perkuliahan, beberapa parameter komunikasi yang dapat diukur untuk mengetahui kualitas layanan konferensi video umumnya adalah latency, jitter, packet loss. Salah satu parameter lainnya adalah mean opinion score (MOS) yang bersifat subjektif di mana penilaian tersebut diberikan oleh pengguna layanan dari rentang nilai paling rendah 1 hingga paling tinggi 5. Terdapat kondisi di mana rating atau MOS tidak dapat diberikan oleh user dalam skenario konferensi video Jitsi. Dalam kondisi seperti ini parameter lain seperti berapa konferensi yang dibuat dan partisipan yang bergabung serta pertumbuhannya dapat menjadi tolak ukur apakah partisipan puas terhadap layanan. Parameter lain yang dapat digunakan juga adalah berapa konferensi yang berhasil dilaksanakan hingga usai dan berapa yang gagal dapat memberikan masukan yang menggambarkan performa layanan yang diberikan.
Solusi Komersial
Ketika mengetikkan video conference monitoring di mesin pencari, akan muncul banyak produk. Beberapa diantaranya akan kami sampaikan di sini. Salah satu yg paling populer adalah callstats.io. Vendor besar seperti Splunk pun sudah mempublikasikan artikel tentang kapabilitasnya dalam solusi video conference monitoring. Opsi lainnya adalah Exoprise, Sciencelogic, Vyopta, dan masih banyak lagi bila ingin dicari. Di artikel ini kami tidak akan membandingkan solusi-solusi tersebut.
Rakit Secara Mandiri (DIY)
Opsi lainnya selain berinvestasi dengan cara membeli produk dari pihak ke-3 adalah merakit monitoring system itu sendiri. Ini tidak berarti membuat semuanya dari nol. Banyak perangkat-perangkat lunak sumber terbuka (open sourcee) yang dapat dimanfaatkan untuk dirakit dan dikonfigurasi agar dapat dimanfaatkan sebagai solusi monitoring video conference yang dibutuhkan. Bila dianalogikan, ini seperti membeli setiap komponen komputer seperti CPU, Motherboard, RAM, Graphic Card, PSU, Casing, dll; lalu kita rakit. Dibandingkan dengan membeli komputer completed built-up (CBU) atau branded. Sounds like the old-days, doesn’t it.
Monitoring Stack
Beberapa perangkat lunak sumber terbuka yang dapat dimanfaatkan adalah:
Telegraf digunakan untuk secara periodik (polling) mengambil data statistik berbentuk metrik dari Jicofo dan JVB.
- Fluent-Bit dan Fluentd
Fluent Bit digunakan untuk meneruskan setiap baris log yang bertambah di Jicofo dan mengirimkannya ke Fluentd.
InfluxDB digunakan untuk menyimpan data time-series dari statistik yang dikumpulkan oleh telegraf.
Elasticsearch digunakan untuk menyimpan data log yang dikumpukan oleh Fluentd
Grafana digunakan untuk presentasi data sehingga dapat diliat oleh tim analis maupun system administrator
Tertarik Mencoba ?
Berikut repositori yang telah kami buat agar dapat dicoba secara mandiri oleh pembaca.
Link Github: https://github.com/haidlir/Jitsi-Monitoring-Stack
Beberapa screenshot dari dashboard yang dibuat memanfaatkan repositori di atas, sebagai berikut: