OpenCensus adalah project open source gratis dengan library yang:
- Berikan dukungan yang tidak bergantung pada vendor untuk pengumpulan metrik dan data trace dalam berbagai bahasa.
- Dapat mengekspor data yang dikumpulkan ke berbagai aplikasi backend, termasuk Cloud Monitoring, menggunakan pengekspor.
Meskipun Cloud Monitoring menyediakan API yang mendukung penentuan dan pengumpulan metrik yang ditentukan pengguna, Cloud Monitoring adalah API eksklusif tingkat rendah. OpenCensus menyediakan API yang mengikuti gaya komunitas bahasa, bersama dengan pengekspor yang mengirimkan data metrik ke Cloud Monitoring melalui Monitoring API untuk Anda.
OpenCensus juga memiliki dukungan yang baik untuk pelacakan aplikasi; lihat Pelacakan OpenCensus untuk ringkasan umum. Cloud Trace merekomendasikan penggunaan OpenCensus untuk instrumentasi rekaman aktivitas. Untuk mengumpulkan data metrik dan trace dari layanan, Anda dapat menggunakan satu distribusi library. Untuk informasi tentang penggunaan OpenCensus dengan Cloud Trace, lihat Library Klien untuk Trace.
Sebelum memulai
Untuk menggunakan Cloud Monitoring, Anda harus memiliki project Google Cloud dengan penagihan yang diaktifkan. Jika perlu, lakukan hal berikut:
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Pastikan Monitoring API diaktifkan. Untuk mengetahui detailnya, lihat Mengaktifkan Monitoring API.
Untuk aplikasi yang berjalan di luar Google Cloud, project Google Cloud Anda harus mengautentikasi aplikasi Anda. Biasanya, Anda mengonfigurasi autentikasi dengan membuat akun layanan untuk project dan mengonfigurasi variabel lingkungan.
Untuk aplikasi yang Anda jalankan pada instance Amazon Elastic Compute Cloud (Amazon EC2), buat akun layanan untuk project AWS Connector instance.
Untuk informasi tentang cara membuat akun layanan, lihat Mulai menggunakan autentikasi.
Instal OpenCensus
Untuk menggunakan metrik yang dikumpulkan oleh OpenCensus di project Google Cloud, Anda harus menyediakan library metrik OpenCensus dan pengekspor Stackdriver untuk aplikasi Anda. Pengekspor Stackdriver mengekspor metrik yang dikumpulkan OpenCensus ke project Google Cloud Anda. Anda kemudian dapat menggunakan Cloud Monitoring untuk membuat diagram atau memantau metrik tersebut.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Penggunaan OpenCensus memerlukan Go versi 1.11 atau yang lebih tinggi. Dependensi ditangani secara otomatis untuk Anda.Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk Maven, tambahkan kode berikut ke elemendependencies
di file pom.xml
Anda:
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
- Sebelum menginstal library inti dan pengekspor OpenCensus, pastikan Anda telah menyiapkan lingkungan untuk pengembangan Node.js.
- Cara termudah untuk menginstal OpenCensus adalah dengan npm:
npm install @opencensus/core npm install @opencensus/exporter-stackdriver
- Tempatkan pernyataan
require
yang ditampilkan di bawah ini di bagian atas skrip utama atau titik entri aplikasi Anda, sebelum kode lainnya:
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Instal library pengekspor inti dan Stackdriver OpenCensus menggunakan perintah berikut:pip install -r opencensus/requirements.txt
File requirements.txt
ada di repositori GitHub untuk contoh ini,
python-docs-samples.
Menulis metrik buatan pengguna dengan OpenCensus
Melengkapi kode untuk menggunakan OpenCensus untuk metrik melibatkan tiga langkah:
- Impor statistik OpenCensus dan paket pengekspor OpenCensus Stackdriver.
- Lakukan inisialisasi pengekspor Stackdriver.
- Menggunakan OpenCensus API untuk menginstrumentasikan kode Anda.
Contoh berikut adalah program minimal yang menulis data metrik menggunakan OpenCensus. Program ini menjalankan loop dan mengumpulkan pengukuran latensi, lalu setelah loop selesai, statistik akan diekspor ke Cloud Monitoring dan keluar:
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Program ini membuat tampilan
OpenCensus yang disebut task_latency_distribution
. String ini menjadi bagian dari nama metrik saat diekspor ke Cloud Monitoring. Lihat bagian Mengambil deskriptor metrik untuk melihat cara tampilan OpenCensus direalisasikan sebagai deskriptor metrik Cloud Monitoring.
Oleh karena itu, Anda dapat menggunakan nama tampilan sebagai string penelusuran saat memilih metrik untuk dibuat diagram.
-
Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih leaderboard Metrics Explorer:
- Pada elemen Metrik, luaskan menu Pilih metrik, masukkan
OpenCensus/task_latency_distribution
di panel filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:- Di menu Active resources, pilih resource yang dipantau. Jika Anda menjalankan program di lingkungan lokal, pilih Global.
- Di menu Kategori metrik aktif, pilih Kustom.
- Di menu Active metrics, pilih Task latency distribution.
- Klik Terapkan.
Screenshot berikut menunjukkan deret waktu yang dikumpulkan setelah menjalankan program di lingkungan lokal:
Setiap batang dalam peta panas menyatakan satu kali program dijalankan, dan komponen yang berwarna di setiap batang merepresentasikan bucket dalam distribusi latensi.
Membaca metrik OpenCensus di Cloud Monitoring
Anda menggunakan metrik yang ditentukan pengguna, termasuk metrik yang ditulis oleh OpenCensus, seperti metrik bawaan. Anda dapat membuat diagram, menyetel pemberitahuan, membacanya, dan memantaunya.
Bagian ini menggambarkan cara menggunakan APIs Explorer untuk membaca data metrik. Untuk informasi tentang cara membaca data metrik dengan menggunakan Cloud Monitoring API atau menggunakan library klien, lihat dokumen berikut:
- Metrik daftar dan jenis resource menjelaskan cara menampilkan daftar dan memeriksa jenis resource dan jenis metrik dalam sistem Anda.
- Mengambil data deret waktu menjelaskan cara mengambil data deret waktu dari metrik menggunakan Monitoring API.
Misalnya, screenshot yang ditampilkan di bagian sebelumnya berasal dari Metrics Explorer. Saat menggunakan alat diagram, sebaiknya gunakan nama tampilan OpenCensus untuk memfilter daftar metrik. Untuk mengetahui informasi selengkapnya, lihat Memilih metrik saat menggunakan Metrics Explorer.
Mengambil deskriptor metrik
Untuk mengambil data metrik dengan menggunakan Monitoring API secara langsung, Anda perlu mengetahui nama Cloud Monitoring yang menjadi tujuan ekspor metrik OpenCensus. Anda dapat menentukan nama-nama ini dengan mengambil deskripsi metrik yang dibuat oleh pengekspor, lalu melihat kolom type
. Untuk detail tentang deskripsi metrik, lihat MetricDescriptor
.
Untuk melihat deskripsi metrik yang dibuat untuk metrik yang diekspor, lakukan tindakan berikut:
- Buka halaman referensi
metricDescriptors.list
. Dalam widget Coba API ini di halaman referensi, lengkapi kolom berikut:
Masukkan nama project Anda di kolom
name
. Gunakan struktur nama berikutprojects/PROJECT_ID
. Dokumen ini menggunakan project dengan IDa-gcp-project
.Masukkan filter ke kolom
filter
. Ada banyak deskriptor metrik dalam sebuah proyek. Pemfilteran memungkinkan Anda menghilangkan penjelasan yang tidak menarik.Misalnya, karena nama tampilan OpenCensus menjadi bagian dari nama metrik, Anda dapat menambahkan filter seperti ini:
metric.type=has_substring("task_latency_distribution")
metric.type
kunci adalah kolom dalam jenis yang disematkan dalam deret waktu. LihatTimeSeries
untuk mengetahui detailnya.Klik Jalankan.
Berikut ini adalah deskripsi metrik yang ditampilkan:
{ "metricDescriptors": [ { "name": "projects/a-gcp-project/metricDescriptors/custom.googleapis.com/opencensus/task_latency_distribution", "labels": [ { "key": "opencensus_task", "description": "Opencensus task identifier" } ], "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "unit": "ms", "description": "The distribution of the task latencies", "displayName": "OpenCensus/task_latency_distribution", "type": "custom.googleapis.com/opencensus/task_latency_distribution" } ] }
Baris pada deskriptor metrik ini memberi tahu Anda nama jenis metrik di Cloud Monitoring:
"type": "custom.googleapis.com/opencensus/task_latency_distribution"
Anda sekarang memiliki informasi yang diperlukan untuk mengambil data yang terkait dengan jenis metrik secara manual. Nilai kolom type
juga ditampilkan di Konsol Google Cloud saat Anda membuat diagram metrik.
Mengambil data metrik
Untuk mengambil data deret waktu secara manual dari jenis metrik, lakukan tindakan berikut:
- Buka halaman referensi
timeSeries.list
. Dalam widget Coba API ini di halaman referensi, lengkapi kolom berikut:
- Masukkan nama project Anda di kolom
name
. Gunakan struktur nama berikutprojects/PROJECT_ID
. Di kolom
filter
, masukkan nilai berikut:metric.type="custom.googleapis.com/opencensus/task_latency_distribution"
Masukkan nilai untuk kolom
interval.startTime
daninterval.endTime
. Nilai ini harus dimasukkan sebagai stempel waktu, misalnya2018-10-11T15:48:38-04:00
. Pastikan nilaistartTime
lebih awal dari nilaiendTime
.Klik tombol Execute.
- Masukkan nama project Anda di kolom
Tabel berikut menunjukkan hasil dari salah satu pengambilan tersebut:
{ "timeSeries": [ { "metric": { "labels": { "opencensus_task": "java-3424@docbuild" }, "type": "custom.googleapis.com/opencensus/task_latency_distribution" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "2455918024984027105", "zone": "us-east1-b", "project_id": "a-gcp-project" } }, "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "points": [ { "interval": { "startTime": "2019-04-04T17:49:34.163Z", "endTime": "2019-04-04T17:50:42.917Z" }, "value": { "distributionValue": { "count": "100", "mean": 2610.11, "sumOfSquaredDeviation": 206029821.78999996, "bucketOptions": { "explicitBuckets": { "bounds": [ 0, 100, 200, 400, 1000, 2000, 4000 ] } }, "bucketCounts": [ "0", "0", "1", "6", "13", "15", "44", "21" ] } } } ] }, [ ... data from additional program runs deleted ...] ] }
Data metrik yang ditampilkan mencakup hal berikut:
- Informasi tentang resource yang dimonitor tempat data dikumpulkan.
OpenCensus dapat otomatis mendeteksi resource yang dimonitor
gce_instance
,k8s_container
, danaws_ec2_instance
. Data ini berasal dari program yang dijalankan di instance Compute Engine. Untuk mengetahui informasi tentang cara menggunakan resource lain yang dimonitor, lihat Menetapkan resource yang dimonitor untuk pengekspor. - Deskripsi jenis metrik dan jenis nilai.
- Titik data aktual yang dikumpulkan dalam interval waktu yang diminta.
Cara Monitoring merepresentasikan metrik OpenCensus
Penggunaan langsung Cloud Monitoring API untuk metrik yang ditentukan pengguna didukung. Penggunaannya dijelaskan dalam artikel Membuat metrik yang ditentukan pengguna dengan API. Bahkan, pengekspor OpenCensus untuk Cloud Monitoring menggunakan API ini untuk Anda. Bagian ini memberikan beberapa informasi tentang cara Cloud Monitoring merepresentasikan metrik yang ditulis oleh OpenCensus.
Konstruksi yang digunakan oleh OpenCensus API berbeda dengan konstruksi yang digunakan oleh Cloud Monitoring, begitu juga dengan beberapa penggunaan terminologi. Jika Cloud Monitoring merujuk pada “metrik”, OpenCensus terkadang mengacu pada “statistik”. Misalnya, komponen OpenCensus yang mengirim data metrik ke Cloud Monitoring disebut “pengekspor statistik untuk Stackdrdiver”.
Untuk ringkasan model OpenCensus untuk metrik, lihat Metrik OpenCensus.
Model data untuk statistik OpenCensus dan metrik Cloud Monitoring tidak termasuk dalam pemetaan 1:1 yang rapi. Banyak konsep yang sama terdapat di masing-masing konsep, tetapi mereka tidak dapat dipertukarkan secara langsung.
Tampilan OpenCensus setara dengan
MetricDescriptor
di Monitoring API. Tampilan menjelaskan cara mengumpulkan dan menggabungkan pengukuran individual. Tag disertakan dengan semua pengukuran yang dicatat.Tag OpenCensus adalah pasangan nilai kunci. Tag OpenCensus umumnya sesuai dengan
LabelDescriptor
di Monitoring API. Tag memungkinkan Anda menangkap informasi kontekstual yang dapat digunakan untuk memfilter dan mengelompokkan metrik.Ukuran OpenCensus menjelaskan data metrik yang akan dicatat. Agregasi OpenCensus adalah fungsi yang diterapkan pada data yang digunakan untuk meringkasnya. Fungsi ini digunakan dalam mengekspor untuk menentukan
MetricKind
,ValueType
, dan unit yang dilaporkan dalam deskriptor metrik Cloud Monitoring.Pengukuran OpenCensus adalah titik data yang dikumpulkan. Pengukuran harus digabungkan ke dalam tampilan. Jika tidak, setiap pengukuran akan dihapus. Pengukuran OpenCensus serupa dengan
Point
di Monitoring API. Jika pengukuran digabungkan dalam tampilan, data gabungan akan disimpan sebagai data tampilan, yang setara denganTimeSeries
di Monitoring API.
Langkah selanjutnya
OpenCensus menyediakan dokumentasi referensi resmi untuk API metriknya dan untuk pengekspor Stackdriver. Tabel berikut memberikan link ke dokumen referensi tersebut:
Language Dokumentasi Referensi API Dokumentasi Pengekspor Panduan memulai Go Go API Pengekspor Statistik dan Pelacak Metrik Java API Java Pengekspor Statistik Metrik NodeJS NodeJS API Pengekspor Statistik Metrik Python API Python Pengekspor Statistik Metrik