Instrumentasi dan kemampuan observasi

Instrumentasi mengacu pada kode tertentu yang menghasilkan atau mengumpulkan data tentang perilaku runtime aplikasi Anda. Di dalam aplikasi Anda, instrumentasi, seperti yang disediakan oleh OpenTelemetry, dapat mengumpulkan informasi khusus domain tentang runtime bahasa, framework, atau logika aplikasi, lalu mengirim data tersebut ke project Google Cloud atau ke beberapa tujuan lainnya. Data ini, yang juga dikenal sebagai telemetri, mencakup metrik, log, dan trace.

Metrik tingkat sistem seperti penggunaan CPU, penggunaan memori, dan penggunaan disk bermanfaat untuk mendeteksi masalah pada aplikasi Anda, tetapi tidak memberikan banyak insight tentang masalah tingkat aplikasi. Instrumentasi dapat membantu aplikasi Anda menghasilkan data yang diperlukan untuk mendiagnosis akar masalah, karena telemetri yang dihasilkan menunjukkan apa yang terjadi di dalam aplikasi Anda. Misalnya, log sering kali menyertakan konteks tentang program Anda seperti pesan error atau stacktrace tertentu, dan lokasi dalam kode sumber Anda. Demikian pula, rekaman aktivitas terdistribusi membantu Anda memahami cara beberapa layanan berinteraksi saat memproses permintaan. Metrik memungkinkan Anda mendapatkan notifikasi saat aplikasi tidak berperilaku dengan benar.

Menginstrumentasikan aplikasi Anda melibatkan pembuatan telemetri dan pengirimannya ke tempat data dapat disimpan dan dikueri. Misalnya, instrumentasi Anda mungkin mengirim telemetri ke project Google Cloud. Layanan di Google Cloud Observability membantu Anda mengumpulkan, menganalisis, dan melakukan korelasi data telemetri. Dasbor ini juga menyediakan setelan default bawaan untuk membantu Anda memulai lebih cepat, seperti dasbor default dan kebijakan pemberitahuan. Untuk mengetahui informasi selengkapnya tentang Google Cloud Observability, lihat Kemampuan observasi di Google Cloud.

Gambar berikut mengilustrasikan cara aplikasi menggunakan instrumentasi untuk membuat dan mengirim telemetri ke sistem penyimpanan:

Gambar yang mengilustrasikan arsitektur instrumentasi dalam proses.

Seperti yang diilustrasikan pada gambar sebelumnya, kode instrumentasi ada dalam proses aplikasi Anda dan berinteraksi dengan aplikasi untuk menghasilkan data telemetri. Framework instrumentasi kemudian mengekspor telemetri Anda ke sistem penyimpanan yang dikonfigurasi. Dalam gambar, sistem penyimpanan adalah project Google Cloud Anda.

Tentang framework instrumentasi netral vendor

Meskipun Anda berencana mengirim telemetri hanya ke Google Cloud, sebaiknya gunakan framework instrumentasi open source yang netral vendor untuk melengkapi aplikasi Anda. Jenis framework ini memiliki beberapa manfaat utama:

Tidak ada keterikatan pada vendor
Framework netral vendor tidak terikat dengan vendor tertentu dan menyediakan model datanya sendiri untuk telemetri yang dihasilkan. Oleh karena itu, Anda dapat mengirim data ke beberapa vendor, dan biasanya Anda dapat mengubah vendor yang digunakan tanpa mengubah kode.
Prosedur standar untuk mengumpulkan telemetri
Framework yang dirancang dengan baik, seperti OpenTelemetry, memberikan pendekatan standar untuk mengumpulkan telemetri dari aplikasi. Anda dapat menggunakan framework yang sama untuk aplikasi yang ditulis dalam bahasa yang didukung. Selain itu, karena framework distandarisasi, Anda dapat mengumpulkan dan membandingkan telemetri dari semua layanan Anda.
Library yang interoperabel
Framework instrumentasi mencakup ekosistem library yang beragam yang mengumpulkan sinyal telemetri, dan library ini dapat dioperasikan secara bersama. Misalnya, OpenTelemetry menyediakan library untuk mengumpulkan data rekaman aktivitas dan mengumpulkan data metrik. Anda dapat menggunakan salah satu library, atau kedua library.

Rekomendasi umum

Bagian ini berisi rekomendasi umum tentang cara membuat instrumentasi aplikasi Anda. Untuk panduan khusus Google Cloud, lihat Memilih pendekatan instrumentasi.

Untuk mengumpulkan metrik, sebaiknya gunakan OpenTelemetry atau Prometheus:

  • OpenTelemetry adalah project open source yang menyediakan framework terpadu untuk instrumentasi aplikasi. Library ini juga menyediakan library instrumentasi untuk library populer. OpenTelemetry menyediakan agen mandiri, OpenTelemetry Collector, yang dapat menerima, mengubah, dan mengekspor telemetri. File konfigurasi OpenTelemetry Collector menentukan perilaku OpenTelemetry Collector. Untuk mengirim telemetri ke agen atau langsung ke sistem penyimpanan, gunakan OpenTelemetry Protocol (OTLP).

  • Prometheus adalah sistem pemantauan open source yang populer. Anda dapat menggunakan library klien Prometheus untuk membuat metrik dari aplikasi Anda, dan ada ekosistem library instrumentasi pihak ketiga untuk framework populer. Klien Prometheus mengekspos metriknya sebagai endpoint HTTP yang dapat di-scrap oleh agen.

Untuk mengumpulkan rekaman aktivitas, sebaiknya gunakan OpenTelemetry.

Untuk mengumpulkan log, sebaiknya gunakan framework yang dapat dikonfigurasi untuk menghasilkan log terstruktur JSON untuk Cloud Logging. Untuk menulis data log, sebaiknya lakukan hal berikut:

Solusi Google Cloud

Google Cloud Observability menyediakan opsi fleksibel untuk mengumpulkan telemetri:

Langkah selanjutnya

Untuk informasi selengkapnya tentang Google Cloud Observability, lihat Observability di Google Cloud.