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:
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:
Untuk contoh kode yang menggambarkan cara melengkapi aplikasi Anda untuk mengirim telemetri ke Google Cloud, lihat hal berikut:
Untuk mempelajari cara mengumpulkan dan melihat data latensi dari aplikasi Anda, lihat Melihat latensi permintaan aplikasi.
Untuk informasi tentang solusi lintas project multi-cloud yang terkelola sepenuhnya dari Google Cloud untuk Prometheus, lihat Google Cloud Managed Service for Prometheus.
Untuk informasi tentang cara mengonfigurasi Agen Operasional, lihat dokumen berikut:
Langkah selanjutnya
Untuk informasi selengkapnya tentang Google Cloud Observability, lihat Observability di Google Cloud.