Katakanlah kalian memiliki banyak aplikasi, entah itu berbentuk website atau web app. Dari semua aplikasi itu, semuanya memang memiliki dan akan mengirimkan log. Namun, bagaimana kamu tahu persis apa yang terjadi saat dalam pemprosesan.? Disinilah alat-alat yang biasa digunakan untuk melakukan hal tersebut, dan tentu saja semuanya open source.

Ada dua metode yang biasanya digunakan, yaitu:

  1. Logging: Menyimpan log dari berbagai aplikasi dan memberikan informasi serta pencarian. Ini adalah cara lama yang selalu membantu.
  2. Tracing: Berfokus pada memberikan wawasan tentang kinerja aplikasi; kamu dapat membangun metrik yang akurat untuk pemantauan dan monitoring.

Ada alat-alat untuk logging, beberapa untuk tracing, dan beberapa alat melakukan keduanya!
Berikut adalah beberapa alat open-source yang digunakan untuk logging dan tracing yang perlu kamu ketahui:

1. Quickwit

Quickwit adalah mesin pencari terdistribusi open source

Quickwit adalah mesin pencari terdistribusi open source yang dirancang untuk manajemen log dan analisis dalam skala besar.

Quickwit adalah alternatif langsung untuk Elasticsearch dengan kinerja yang ditingkatkan, terutama di lingkungan cloud-native dan distribusi skala besar, serta berfokus pada mengoptimalkan efisiensi penyimpanan dan pencarian.

Biasanya, kamu akan menggunakan alat seperti OpenTelemetry, Fluentbit, Odigos (alat pelacakan otomatis) untuk mengumpulkan log dan trace, mengirimkannya ke Quickwit, dan kemudian memvisualisasikannya dengan Jaeger (Traces) atau Grafana (Logs dan Traces).

Quickwit menggunakan lisensi AGPL 3. Ini jauh lebih terbuka untuk komunitas FOSS (Free open-source community).

2. Grafana

Grafana adalah alternatif open source

Grafana adalah alternatif open source untuk tumpukan ELK. Untuk log dan trace, kamu harus mengatur dua mesin kueri, yaitu Loki dan Tempo, yang keduanya dikelola oleh Grafana. Setelah mengindeks semua log atau trace kamu di Loki dan Tempo, kamu akan memerlukan alat visualisasi untuk mencari data kamu: inilah peran Grafana!

Grafana memungkinkan kamu untuk melakukan kueri, visualisasi, peringatan, dan pemahaman terhadap metrik-metrik kamu, tidak peduli di mana mereka disimpan. Buat, jelajahi, dan bagikan dasbor dengan tim kamu dan dorong budaya berbasis data.

3. Odigos

Odigos

Odigos adalah teknologi unik yang menghasilkan trace untuk aplikasi apa pun di k8s tanpa perubahan kode: semua trace mereka kemudian dapat diteruskan ke database seperti Quickwit atau Elasticsearch (mereka memiliki banyak integrasi lainnya).

Jika kamu belum tahu, OpenTelemetry adalah protokol untuk menerima log dan trace. Odigos menggunakan standar ini sehingga kamu dapat mengirimkan trace kamu ke database apa pun yang mendukung OpenTelemetry!

4. SigNoz

SigNoz

Signoz menawarkan fungsionalitas manajemen log dan trace. Kamu dapat memvisualisasikan trace dan log dalam satu tampilan yang terpadu.

Kamu dapat menemukan penyebab akar masalah dengan pergi ke trace yang tepat yang menyebabkan masalah dan melihat grafik nyala yang terperinci dari trace permintaan individual.

5. Prometheus

Prometheus

Prometheus adalah sistem pemantauan dan pengumpulan data open-source yang dirancang untuk memantau aplikasi dan sistem secara skala besar. Berikut beberapa poin penting tentang Prometheus:

  1. Model Data Multi-Dimensi: Prometheus menggunakan model data multi-dimensi, di mana setiap sampel data memiliki label yang mengidentifikasi dimensi atau karakteristik tertentu. Ini memungkinkan pemantauan yang sangat fleksibel dan dapat diatur sesuai kebutuhan.
  2. Pengumpulan Data Pull: Prometheus menggunakan metode “pull” untuk mengumpulkan data, artinya server Prometheus secara teratur melakukan permintaan untuk mengambil data dari target yang dimonitor. Ini berbeda dengan model “push,” di mana target mengirimkan data secara aktif.
  3. Bahasa Kueri PromQL: Prometheus menggunakan bahasa kueri bernama PromQL (Prometheus Query Language) yang memungkinkan pengguna untuk mengekspresikan pertanyaan dan operasi terhadap data pemantauan. PromQL sangat kuat dan dapat digunakan untuk analisis yang mendalam.

Prometheus banyak digunakan dalam dunia pengembangan dan operasional untuk memantau kesehatan aplikasi, sistem, dan layanan dengan efektif.

6. Jaeger

 5. Jaeger

Berbeda dengan Prometheus, Jaeger berfokus pada pelacakan (tracing). Jaeger mendukung penyebaran informasi konteks di seluruh sistem terdistribusi, memastikan bahwa data trace terkait dengan benar di seluruh jaringan layanan.

Jaeger tidak dirancang untuk menangani volume data tinggi, dan kamu harus menggunakannya dengan mesin penyimpanan yang kuat seperti Quickwit atau Elasticsearch. Dalam pengaturan seperti itu, Jaeger dapat diubah bersama dengan layanan kamu, menjadikannya cocok untuk sistem baik dalam skala kecil maupun besar.

7. Keep

6. Keep

Keep adalah alat yang terhubung ke semua alat pemantauan, basis data, dan saluran komunikasi observabilitas yang kamu gunakan saat ini, dan menggabungkan semuanya ke dalam satu platform. Ini memberikan peringatan tingkat tinggi ketika terjadi sesuatu yang tidak di inginkan ?.

8. Uptrace

Uptrace

Uptrace adalah platform observabilitas berbasis OpenTelemetry yang menerima log dan trace. Kamu dapat memantau aplikasi kamu dan mencari log kamu.

Berkat dukungan OpenTelemetry dan banyak integrasinya, mudah untuk mengumpulkan dan mengirimkan data kamu ke dalamnya ?. Harap dicatat bahwa kamu perlu menyiapkan basis data Postgresql dan Clickhouse.

9. HyperDX

8. HyperDX

HyperDX adalah Platform Observabilitas Open Source yang memungkinkan kamu untuk mencari log dan menganalisis trace. Kamu dapat mendepurasikan kesalahan kompleks dan masalah pengguna semua dalam satu platform, tanpa perlu beralih antara beberapa alat.

Penutup

Dalam dunia yang terus berkembang ini, memantau kinerja aplikasi menjadi kunci utama untuk memastikan keandalan dan efisiensi. Dengan mengeksplorasi berbagai alat open source yang tersedia, kamu dapat memilih solusi yang sesuai dengan kebutuhan spesifik aplikasi kalian.

Dari Prometheus yang sangat fleksibel hingga Jaeger yang memfokuskan pada tracing, setiap alat memberikan kontribusi uniknya untuk memperkuat kemampuan pemantauan. Ingatlah, keberhasilan dalam mengelola dan memonitor aplikasi tidak hanya bergantung pada pemilihan alat, tetapi juga pada pemahaman mendalam terhadap kebutuhan dan tujuan kalian.

Dengan menggunakan kombinasi alat yang tepat, kalian dapat mengoptimalkan kinerja aplikasi dan menjaga agar pengalaman pengguna tetap lancar. Jelajahi, eksperimen, dan temukan alat open source yang paling sesuai untuk proyek kalian!

Photo by Markus Spiske

About the Author

Dzul Qurnain

Suka nonton Anime, ngoding dan bagi-bagi tips kalau tahu.. Oh iya, suka baca ( tapi yang menarik menurutku aja)...

View All Articles