OpenCensus adalah proyek open source gratis yang {i>library<i}:
- Memberikan dukungan yang tidak terikat dengan vendor untuk pengumpulan data metrik dan trace dalam berbagai bahasa.
- Dapat mengekspor data yang dikumpulkan ke berbagai aplikasi backend, termasuk Cloud Monitoring, dengan menggunakan pengekspor.
Meskipun Cloud Monitoring menyediakan API yang mendukung penentuan dan mengumpulkan metrik buatan pengguna, API ini adalah API tingkat rendah dan eksklusif. OpenCensus menyediakan API yang mengikuti gaya komunitas bahasa, beserta pengekspor yang mengirimkan data metrik Anda ke Cloud Monitoring melalui Monitoring API untuk Anda.
OpenCensus juga memiliki dukungan yang baik untuk pelacakan aplikasi; lihat Pelacakan OpenCensus untuk analisis ringkasan. Cloud Trace merekomendasikan penggunaan OpenCensus untuk trace instrumentasi. Untuk mengumpulkan data metrik dan trace dari layanan Anda, Anda dapat menggunakan distribusi library tunggal. 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 diaktifkan. Jika perlu, lakukan tindakan 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 harus mengautentikasi aplikasi Anda. Biasanya, Anda mengonfigurasi otentikasi dengan membuat untuk project Anda dan dengan mengonfigurasi lingkungan variabel.
Untuk aplikasi yang Anda jalankan pada instance Amazon Elastic Compute Cloud (Amazon EC2), membuat akun layanan untuk layanan Project AWS Connector.
Untuk informasi tentang cara membuat akun layanan, lihat Mulai menggunakan autentikasi.
Instal OpenCensus
Untuk menggunakan metrik yang dikumpulkan OpenCensus di project Google Cloud, Anda harus menyediakan library metrik OpenCensus dan pengekspor Stackdriver pada aplikasi Anda. Pengekspor Stackdriver mengekspor metrik yang OpenCensus mengumpulkan data 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 informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Penggunaan OpenCensus memerlukan Go versi 1.11 atau yang lebih baru. Tujuan dependensi ditangani secara otomatis untuk Anda.Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk Maven, tambahkan kode berikut ke elemendependencies
di
File pom.xml
:
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat 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 informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Instal library inti OpenCensus dan pengekspor Stackdriver 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
Menginstrumentasikan kode Anda untuk menggunakan OpenCensus untuk metrik memerlukan tiga langkah:
- Mengimpor statistik OpenCensus dan paket pengekspor OpenCensus Stackdriver.
- Melakukan inisialisasi pengekspor Stackdriver.
- Gunakan OpenCensus API untuk melengkapi kode Anda.
Contoh berikut adalah program minimal yang menulis data metrik menggunakan OpenCensus. Program ini menjalankan sebuah loop dan mengumpulkan ukuran latensi, dan ketika setelah loop selesai, loop akan mengekspor statistik ke Cloud Monitoring dan keluar:
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Program ini membuat tampilan OpenCensus
yang disebut task_latency_distribution
. String ini menjadi bagian dari
nama
saat diekspor ke Cloud Monitoring. Lihat Mengambil metrik
deskripsi untuk melihat bagaimana tampilan OpenCensus direalisasikan
sebagai deskriptor metrik Cloud Monitoring.
Oleh karena itu, Anda dapat menggunakan nama tampilan sebagai string penelusuran saat memilih metrik
ke diagram.
-
Di Konsol Google Cloud, buka leaderboard Halaman Metrics Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di elemen Metrik, luaskan menu Pilih metrik,
masukkan
OpenCensus/task_latency_distribution
di panel filter, lalu gunakan submenu untuk memilih metrik dan jenis resource tertentu:- Di menu Active resources, pilih resource yang dipantau. Jika Anda menjalankan program di lingkungan lokal, lalu pilih Global.
- Di menu Kategori metrik aktif, pilih Kustom.
- Di menu Active Metrics, pilih Distribusi latensi tugas.
- Klik Terapkan.
Screenshot berikut menampilkan deret waktu yang dikumpulkan setelah menjalankan di lingkungan lokal:
Setiap batang di peta panas merepresentasikan satu operasi program, dan peta berwarna setiap batang mewakili bucket dalam distribusi latensi.
Membaca metrik OpenCensus di Cloud Monitoring
Anda menggunakan metrik buatan pengguna, termasuk metrik yang ditulis oleh OpenCensus, seperti metrik bawaan. Anda dapat memetakan, menetapkan peringatan, membaca dan memantaunya.
Bagian ini mengilustrasikan cara menggunakan APIs Explorer untuk membaca data metrik. Untuk informasi tentang cara membaca data metrik menggunakan Cloud Monitoring API atau dengan menggunakan library klien, lihat dokumen berikut:
- Membuat daftar metrik dan jenis resource menjelaskan cara membuat daftar dan memeriksanya jenis resource dan jenis metrik di sistem Anda.
- Mengambil data deret waktu cara mengambil data deret waktu dari metrik menggunakan API Pemantauan.
Misalnya, screenshot yang ditampilkan di bagian sebelumnya adalah dari Metrics Explorer. Saat Anda menggunakan {i>tool<i} diagram, sebaiknya Anda gunakan nama tampilan OpenCensus untuk memfilter daftar metrik. Untuk 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-nama Cloud Monitoring
tujuan ekspor metrik OpenCensus. Anda dapat menentukan
nama-nama ini
dengan mengambil deskriptor metrik yang dibuat pengekspor, lalu
melihat kolom type
. Untuk detail tentang deskriptor metrik, lihat
MetricDescriptor
Untuk melihat deskriptor metrik yang dibuat untuk metrik yang diekspor, lakukan tindakan berikut:
- Buka halaman referensi
metricDescriptors.list
. Dalam widget Coba API ini pada halaman referensi, selesaikan langkah-langkah berikut bidang:
Masukkan nama project Anda di kolom
name
. Gunakan mengikuti struktur namaprojects/PROJECT_ID
. Dokumen ini menggunakan project dengan IDa-gcp-project
.Masukkan filter ke kolom
filter
. Ada banyak metrik deskriptif dalam sebuah proyek. Pemfilteran memungkinkan Anda menghilangkan penjelasan yang tidak penting.Misalnya, karena nama tampilan OpenCensus menjadi bagian dari Anda dapat menambahkan filter seperti ini:
metric.type=has_substring("task_latency_distribution")
Kunci
metric.type
adalah kolom dalam jenis yang disematkan dalam deret waktu. LihatTimeSeries
untuk mengetahui detailnya.Klik Jalankan.
Berikut ini adalah deskriptor 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 dalam deskriptor metrik ini memberi tahu Anda nama jenis metrik dalam Cloud Monitoring:
"type": "custom.googleapis.com/opencensus/task_latency_distribution"
Anda sekarang memiliki informasi yang diperlukan untuk mengambil data secara manual
yang terkait dengan jenis metrik. Nilai kolom type
juga
yang ditampilkan di konsol Google Cloud saat Anda memetakan metrik.
Mengambil data metrik
Untuk mengambil data deret waktu secara manual dari jenis metrik, lakukan hal berikut:
- Buka halaman referensi
timeSeries.list
. Dalam widget Coba API ini pada halaman referensi, selesaikan langkah-langkah berikut bidang:
- Masukkan nama project Anda di kolom
name
. Gunakan mengikuti struktur namaprojects/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 daripada nilaiendTime
.Klik tombol Execute.
- Masukkan nama project Anda di kolom
Berikut adalah 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
gce_instance
,k8s_container
, danaws_ec2_instance
resource yang dipantau. Data ini berasal dari sebuah program dijalankan di instance Compute Engine. Untuk informasi tentang cara menggunakan sumber daya yang dimonitor, melihat 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 Buat metrik buatan pengguna dengan API. Bahkan, pengekspor OpenCensus untuk Cloud Monitoring menggunakan API ini untuk Anda. Bagian ini memberikan beberapa informasi tentang bagaimana Cloud Monitoring mewakili metrik yang ditulis oleh OpenCensus.
Konstruksi yang digunakan oleh OpenCensus API berbeda dari konstruksi yang digunakan oleh Cloud Monitoring, serta beberapa penggunaan terminologi. Lokasi Cloud Monitoring mengacu pada "metrik", OpenCensus terkadang mengacu pada “statistik”. Misalnya, komponen OpenCensus yang mengirim data metrik ke Cloud Monitoring disebut “pengekspor statistik untuk {i>Stackdrdiver<i}”.
Untuk ringkasan model OpenCensus untuk metrik, lihat Metrik OpenCensus.
Model data untuk statistik OpenCensus dan metrik Cloud Monitoring tidak menjadi pemetaan 1:1 yang rapi. Banyak konsep yang sama ada di masing-masing, 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 direkam.Tag OpenCensus adalah pasangan nilai kunci. Tag OpenCensus sesuai dengan umumnya ke
LabelDescriptor
di Monitoring API. Tag memungkinkan Anda mengambil informasi kontekstual yang dapat Anda gunakan untuk filter dan grup metrik.Ukuran OpenCensus menjelaskan data metrik yang akan dicatat. Agregasi OpenCensus adalah fungsi yang diterapkan pada data yang digunakan meringkasnya. Fungsi ini digunakan dalam ekspor untuk menentukan
MetricKind
,ValueType
, dan unit dilaporkan dalam deskriptor metrik Cloud Monitoring.Pengukuran OpenCensus adalah titik data yang dikumpulkan. Pengukuran harus digabungkan ke dalam tampilan. Jika tidak, individu pengukuran menurun. Pengukuran OpenCensus setara dengan
Point
di Monitoring API. Saat pengukuran diagregasikan dalam tampilan, data gabungan disimpan sebagai data tampilan, setara denganTimeSeries
di Monitoring API.
Langkah selanjutnya
OpenCensus menyediakan dokumentasi referensi otoritatif untuk Metrics API dan untuk pengekspor Stackdriver. Hal berikut tabel ini memberikan tautan ke dokumen referensi berikut:
Bahasa Dokumentasi Referensi API Dokumentasi Pengekspor Panduan memulai Go API Go Pengekspor Statistik dan Trace Metrik Java API Java Pengekspor Statistik Metrik NodeJS NodeJS API Pengekspor Statistik Metrik Python API Python Pengekspor Statistik Metrik