Instrumentasi dan kemampuan observasi

Instrumentasi mengacu pada kode tertentu yang menghasilkan atau mengumpulkan data tentang perilaku runtime aplikasi. 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 tujuan lainnya. Data ini, yang juga disebut sebagai telemetri, mencakup metrics, log, dan rekaman aktivitas.

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

Untuk melengkapi aplikasi, Anda perlu membuat telemetri dan mengirimkannya ke tempat data dapat disimpan dan dikueri. Misalnya, instrumentasi Anda dapat mengirim telemetri ke project Google Cloud. Layanan di Google Cloud Observability membantu Anda mengumpulkan, menganalisis, dan menghubungkan data telemetri. Keduanya juga menyediakan setelan default bawaan untuk membantu Anda memulai lebih cepat, seperti dasbor default dan kebijakan pemberitahuan. Untuk mengetahui informasi selengkapnya tentang Kemampuan Observasi Google Cloud, 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 dalam instrumentasi 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. Pada gambar, sistem penyimpanan adalah project Google Cloud Anda.

Tentang framework instrumentasi yang tidak bergantung pada vendor

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

Tidak ada ketergantungan pada vendor
Framework yang tidak terikat dengan vendor tidak terikat pada 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 didesain 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. Karena frameworknya telah distandardisasi, Anda dapat mengumpulkan dan membandingkan telemetri dari semua layanan Anda.
Library yang dapat dioperasikan
Framework instrumentasi mencakup ekosistem library yang kaya yang mengumpulkan sinyal telemetri, dan library ini dapat dioperasikan. Misalnya, OpenTelemetry menyediakan library untuk mengumpulkan data trace dan untuk mengumpulkan data metrik. Anda dapat menggunakan salah satu library atau kedua library.

Rekomendasi umum

Bagian ini berisi rekomendasi umum tentang cara menginstrumentasikan 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 {i>open source<i} yang populer. Anda dapat menggunakan library klien Prometheus untuk membuat metrik dari aplikasi, dan ada ekosistem library instrumentasi pihak ketiga untuk framework yang populer. Klien Prometheus mengekspos metriknya sebagai endpoint HTTP yang dapat disalin 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, kami merekomendasikan hal berikut:

Solusi Google Cloud

Kemampuan observasi Google Cloud memberikan opsi fleksibel untuk mengumpulkan telemetri:

Langkah selanjutnya

Untuk mengetahui informasi selengkapnya tentang Kemampuan Observasi Google Cloud, lihat Kemampuan observasi di Google Cloud.