Dokumen ini berisi informasi yang Anda butuhkan untuk menyiapkan plugin observabilitas Microservices, menginstrumentasikan aplikasi gRPC, dan mendapatkan informasi dari Cloud Monitoring, Cloud Logging, dan Cloud Trace.
Sebelum memulai
Observabilitas microservice berfungsi dengan deployment apa pun yang telah diberi izin untuk mengakses Cloud Monitoring, Cloud Logging, dan Cloud Trace dengan mengaktifkan Microservices API. Panduan ini memberikan contoh penyiapan observabilitas Microservices menggunakan contoh Compute Engine.
Pada intinya, Anda perlu melakukan tindakan berikut:
- Sebagai developer layanan, Anda memilih ikut serta dan mengontrol plugin observasi Microservices.
- Sebagai operator layanan, Anda menggunakan data yang dikumpulkan dengan berbagai cara.
Repositori gRPC (C++, Go, dan Java) menyertakan contoh untuk mendemonstrasikan kemampuan observasi Microservices.
Sebelum mengonfigurasi kemampuan pengamatan, selesaikan tugas berikut:
- Baca Ringkasan kemampuan observasi microservice.
- Pastikan Anda memiliki project yang sudah ada atau buat project baru.
- Pastikan Anda memiliki akun layanan yang ada atau buat akun baru.
- Baca tentang dua variabel lingkungan yang didukung, putuskan mana yang akan digunakan, dan tentukan nilai yang diperlukan oleh variabel lingkungan.
- Aktifkan Microservices API.
Memilih variabel lingkungan konfigurasi
Jika Anda memilih untuk menggunakan plugin kemampuan observasi Microservices, yang dijelaskan dalam Mengukur aplikasi untuk plugin kemampuan observasi, Anda harus memberikan informasi konfigurasi menggunakan variabel lingkungan. Secara default, tidak ada fitur pengamatan yang diaktifkan. Anda menetapkan variabel lingkungan di VM atau container tempat aplikasi atau workload gRPC berjalan.
Berikut adalah variabel lingkungannya:
GRPC_GCP_OBSERVABILITY_CONFIG_FILE: nilainya adalah jalur yang mengarah ke file config yang dienkode JSON.GRPC_GCP_OBSERVABILITY_CONFIG: nilainya adalah isi konfigurasi yang dienkode dalam JSON.
Jika kedua variabel lingkungan ditetapkan, GRPC_GCP_OBSERVABILITY_CONFIG_FILE
akan diprioritaskan daripada GRPC_GCP_OBSERVABILITY_CONFIG.
Untuk menerapkan konfigurasi, Anda harus memulai ulang aplikasi gRPC. Anda tidak dapat menetapkan atau melihat nilai variabel lingkungan di konsol Google Cloud .
Dalam konfigurasi, Anda dapat menetapkan project tujuan tempat data logging,
pelacakan, dan metrik diupload. Anda menetapkan project ID di kolom
project_id.
Jika kolom ini dibiarkan kosong, plugin kemampuan pengamatan akan otomatis mengisi nilai project ID berdasarkan kredensial default aplikasi.
Jika kredensial default aplikasi tidak dapat diidentifikasi dan kolom
project_idkosong, metodeINIT/STARTakan memunculkan atau menampilkan error ke aplikasi Anda. Aplikasi kemudian harus menangani error tersebut.
Gunakan informasi di Data konfigurasi untuk menetapkan nilai dalam variabel lingkungan yang Anda pilih.
Aktifkan Microservices API
Anda dapat menggunakan gcloud CLI atau konsol Google Cloud untuk mengaktifkan Microservices API di project Anda. Jika Microservices API diaktifkan, Cloud Logging API, Cloud Monitoring API, dan Cloud Trace API akan otomatis diaktifkan.
Untuk mengaktifkan API:
gcloud services enable microservices.googleapis.com
Menetapkan izin akun layanan
Jika Anda menggunakan akun layanan non-default, berikan izin yang diperlukan untuk akun layanan tersebut. Tetapkan nilai berikut:
- PROJECT_ID: Ganti dengan project ID Anda.
- SERVICE_ACCOUNT_NAME: Ganti nama akun layanan project Anda.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/logging.logWriter
gcloud projects add-iam-policy-binding PROJECT_ID> \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/cloudtrace.agent
Melengkapi aplikasi Anda untuk plugin kemampuan observasi
Untuk melengkapi aplikasi agar dapat menggunakan plugin observabilitas Microservices, gunakan petunjuk berikut untuk C++, Java, dan Go.
C++
Anda dapat menggunakan C++ dengan kemampuan observasi Microservices mulai dari gRPC C++ v1.54. Repositori contoh ada di GitHub.
Perubahan build
Dukungan kemampuan observasi hanya tersedia melalui sistem build Bazel. Tambahkan
target grpcpp_gcp_observability sebagai dependensi.
Perubahan kode yang diperlukan
Mengaktifkan kemampuan observasi Microservice memerlukan dependensi tambahan (modul kemampuan observasi) dan perubahan kode berikut pada klien, server gRPC, atau keduanya:
#include <grpcpp/ext/gcp_observability.h>
int main(int argc, char** argv) {
auto observability = grpc::GcpObservability::Init();
assert(observability.ok());
…
// Observability data flushed when object goes out of scope
}
Sebelum melakukan operasi gRPC apa pun, termasuk membuat channel, server, atau kredensial, panggil yang berikut:
grpc::GcpObservability::Init();
Tindakan ini menampilkan absl::StatusOr<GcpObservability> yang harus disimpan. Status
membantu menentukan apakah observabilitas berhasil diinisialisasi. Objek GcpObservability yang menyertainya mengontrol masa aktif kemampuan pengamatan, dan secara otomatis menutup dan menghapus data kemampuan pengamatan saat keluar dari cakupan.
Go
Plugin observabilitas microservice didukung untuk gRPC Go versi v1.54.0 dan yang lebih baru.
Repositori contoh
ada di GitHub.
Dengan modul Go, memilih untuk mengaktifkan kemampuan observasi Microservices memerlukan modul kemampuan observasi dan kode berikut:
import "google.golang.org/grpc/gcp/observability"
func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
if err := observability.Start(ctx); err != nil {
log.Warning("Unable to start gRPC observability:", err)
}
defer observability.End()
…
}
Panggilan observability.Start mengurai konfigurasi dari variabel
lingkungan, membuat eksportir yang sesuai, dan menyuntikkan logika pengumpulan ke koneksi
klien dan server yang dibuat setelah panggilan. Panggilan observability.End
yang ditangguhkan membersihkan resource dan memastikan data yang di-buffer dikosongkan sebelum
aplikasi ditutup.
Setelah kode aplikasi diperbarui, jalankan perintah berikut untuk memperbarui file
go.mod.
go mod tidy
Java
Untuk menggunakan Kemampuan observasi microservice dengan aplikasi Java, ubah build Anda untuk menyertakan artefak grpc-gcp-observability. Gunakan gRPC versi 1.54.1 atau yang lebih baru.
Dalam cuplikan build di bagian alat build Gradle dan Maven,
grpcVersion disetel ke nilai 1.54.1.
Repositori contoh ada di GitHub.
Perubahan kode Java yang diperlukan
Agar berhasil melengkapi aplikasi Java untuk kemampuan pengamatan Microservice, tambahkan kode berikut ke main().
...
import io.grpc.gcp.observability.GcpObservability;
...
// Main application class
...
public static void main(String[] args) {
...
// call GcpObservability.grpcInit() to initialize & get observability
GcpObservability observability = GcpObservability.grpcInit();
...
// call close() on the observability instance to shutdown observability
observability.close();
...
}
Perhatikan bahwa Anda harus memanggil GcpObservability.grpcInit() sebelum saluran
atau server gRPC dibuat. Fungsi GcpObservability.grpcInit() membaca
konfigurasi keobservasian Microservices dan menggunakannya untuk menyiapkan
interceptor dan tracer global yang diperlukan untuk fungsi logging, metrik, dan trace
di setiap channel dan server yang dibuat. GcpObservability.grpcInit()
aman untuk thread dan harus dipanggil tepat satu kali. Metode ini menampilkan instance
GcpObservability yang harus Anda simpan untuk memanggil close() nanti.
GcpObservability.close() membatalkan alokasi resource. Channel atau server yang dibuat setelahnya tidak melakukan logging apa pun.
GcpObservability menerapkan java.lang.AutoCloseable, yang ditutup
secara otomatis jika Anda menggunakan try-with-resource sebagai berikut:
...
import io.grpc.gcp.observability.GcpObservability;
...
// Main application class
...
public static void main(String[] args) {
...
// call GcpObservability.grpcInit() to initialize & get observability
try (GcpObservability observability = GcpObservability.grpcInit()) {
...
} // observability.close() called implicitly
...
}
Menggunakan alat build Gradle
Jika Anda menggunakan alat build Gradle, sertakan kode berikut:
def grpcVersion = '1.54.1'
...
dependencies {
...
implementation "io.grpc:grpc-gcp-observability:${grpcVersion}"
...
}
Menggunakan alat build Maven (pom.xml)
Jika Anda menggunakan alat build Maven, sertakan kode berikut:
<properties>
...
<grpc.version>1.54.1</grpc.version>
...
</properties>
...
<dependencies>
...
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-gcp-observability</artifactId>
<version>${grpc.version}</version>
</dependency>
...
</dependencies>
Mengaktifkan pengumpulan data metrik, pelacakan, dan logging
Bagian berikut berisi petunjuk untuk mengaktifkan pengumpulan data dalam konfigurasi Anda dan contoh yang menunjukkan informasi konfigurasi dalam variabel lingkungan.
Mengaktifkan metrik
Untuk mengaktifkan metrik, tambahkan objek cloud_monitoring ke konfigurasi dan
tetapkan nilainya ke {}.
Untuk mengetahui informasi selengkapnya tentang metrik, lihat Definisi metrik.
Mengaktifkan pelacakan
Jika Anda berencana mengaktifkan pelacakan di seluruh layanan, pastikan layanan mendukung propagasi konteks rekaman aktivitas yang diterima dari hulu (atau dimulai dengan sendirinya) ke hilir.
Untuk mengaktifkan pelacakan, lakukan hal berikut:
- Tambahkan objek
cloud_traceke konfigurasi. - Tetapkan
cloud_trace.sampling_rateke probabilitas yang Anda inginkan agar aplikasi Anda amati untuk memulai rekaman aktivitas baru.- Misalnya,
1.0berarti melacak setiap RPC. 0.0berarti jangan memulai rekaman aktivitas baru.0.5berarti 50% RPC dilacak secara acak.
- Misalnya,
Jika keputusan pengambilan sampel positif dibuat di upstream, rentang upload layanan Anda terlepas dari setelan rasio pengambilan sampel.
Untuk mengetahui informasi selengkapnya tentang rekaman aktivitas, lihat Definisi rekaman aktivitas.
Aktifkan logging
Untuk mengaktifkan logging, lakukan hal berikut:
- Tambahkan objek
cloud_loggingke konfigurasi. - Tambahkan pola ke
client_rpc_eventsatauserver_rpc_eventsatau keduanya yang menentukan kumpulan layanan atau metode yang ingin Anda buat pencatatan peristiwa tingkat transportasi dan jumlah byte yang akan dicatat untuk header dan pesan.
Untuk mengetahui informasi selengkapnya tentang logging, lihat Definisi rekaman log.
Contoh variabel lingkungan
Contoh berikut menetapkan variabel kemampuan pengamatan di variabel lingkungan GRPC_GCP_OBSERVABILITY_CONFIG:
export GRPC_GCP_OBSERVABILITY_CONFIG='{
"project_id": "your-project-here",
"cloud_logging": {
"client_rpc_events": [
{
"methods": ["google.pubsub.v1.Subscriber/Acknowledge", "google.pubsub.v1.Publisher/CreateTopic"],
"exclude": true
},
{
"methods": ["google.pubsub.v1.Subscriber/*", "google.pubsub.v1.Publisher/*"],
"max_metadata_bytes": 4096,
"max_message_bytes": 4096
}],
"server_rpc_events": [{
"methods": ["*"],
"max_metadata_bytes": 4096,
"max_message_bytes": 4096
}],
},
"cloud_monitoring": {},
"cloud_trace": {
"sampling_rate": 1.00
},
"labels": {
"SOURCE_VERSION": "J2e1Cf",
"SERVICE_NAME": "payment-service-1Cf",
"DATA_CENTER": "us-west1-a"
}
}'
Membuat contoh kemampuan observasi
Gunakan petunjuk ini untuk membuat dan menghubungkan ke instance VM Compute Engine, lalu siapkan contoh kemampuan pengamatan.
Buat instance VM:
gcloud compute instances create grpc-observability-vm \ --image-family=debian-11 \ --image-project=debian-cloud \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Hubungkan ke instance VM:
gcloud compute ssh --project=PROJECT_ID grpc-observability-vm
Lanjutkan dengan petunjuk untuk Java, C++, atau Go, bergantung pada bahasa aplikasi gRPC Anda.
Java
Setelah Anda terhubung ke instance VM, pastikan Anda telah menginstal Java 8 atau yang lebih baru.
sudo apt update sudo apt upgrade sudo apt install git sudo apt-get install -y openjdk-11-jdk-headless
Buat clone repositori
grpc-java.export EXAMPLES_VERSION=v1.54.1 git clone -b $EXAMPLES_VERSION --single-branch --depth=1 \ https://github.com/grpc/grpc-java.git
Buka direktori contoh.
cd grpc-java/examples/example-gcp-observability
Di direktori contoh, buka file README dan ikuti petunjuk dalam file.
Saat petunjuk meminta Anda membuka jendela terminal lain, jalankan perintah ini:
gcloud compute ssh --project=PROJECT_ID grpc-observability-vm
C++
Setelah Anda terhubung ke instance VM, jalankan biner server
hello-worlddi jendela terminal.sudo apt-get update -y sudo apt-get install -y git build-essential clang git clone -b v1.54.0 https://github.com/grpc/grpc.git --depth=1 cd grpc export GOOGLE_CLOUD_PROJECT=PROJECT_ID export GRPC_GCP_OBSERVABILITY_CONFIG_FILE="$(pwd)/examples/cpp/gcp_observability/helloworld/server_config.json" tools/bazel run examples/cpp/gcp_observability/helloworld:greeter_server
Dari jendela terminal lain, hubungkan ke VM lagi menggunakan SSH, lalu jalankan perintah berikut, yang menjalankan biner klien
hello-world.cd grpc export GOOGLE_CLOUD_PROJECT=PROJECT_ID export GRPC_GCP_OBSERVABILITY_CONFIG_FILE="$(pwd)/examples/cpp/gcp_observability/helloworld/client_config.json" tools/bazel run examples/cpp/gcp_observability/helloworld:greeter_client
Go
Pastikan Anda telah menginstal Go.
sudo apt-get install -y git sudo apt install wget wget https://go.dev/dl/go1.20.2.linux-amd64.tar.gz sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf \ go1.20.2.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin
Buat clone contoh
gRPC-Go.git clone https://github.com/grpc/grpc-go.git cd grpc-go/ git checkout -b run-observability-example 875c97a94dca8093bf01ff2fef490fbdd576373d
Buka clone direktori
gRPC-Go:cd examples/features/observability
Jalankan server.
export GRPC_GCP_OBSERVABILITY_CONFIG_FILE=./server/serverConfig.json go run ./server/main.go
Di jendela terminal terpisah, jalankan perintah berikut.
export PATH=$PATH:/usr/local/go/bin cd grpc-go/examples/features/observability export GRPC_GCP_OBSERVABILITY_CONFIG_FILE=./client/clientConfig.json go run ./client/main.go
Melihat rekaman aktivitas, metrik, dan entri log
Gunakan petunjuk di bagian ini untuk melihat rekaman aktivitas, metrik, dan entri log.
Melihat rekaman aktivitas di Cloud Trace
Setelah menyiapkan contoh atau menginstrumentasi workload, Anda akan melihat rekaman aktivitas yang dihasilkan oleh klien gRPC dan server gRPC di konsolGoogle Cloud yang tercantum sebagai rekaman aktivitas terbaru.
Melihat log untuk rekaman aktivitas
Jika mengaktifkan logging dan tracing, Anda dapat melihat entri log untuk trace bersama grafik waterfall Cloud Trace atau di Logs Explorer.
Melihat metrik di dasbor
Kemampuan observasi microservice menyediakan dasbor pemantauan yang disebut Pemantauan Microservice (gRPC) untuk metrik yang ditentukan dalam Definisi metrik. Dasbor ditampilkan di konsol hanya saat Microservices API diaktifkan. Google Cloud Konsol Google Cloud memanggil
Service Usage API untuk memverifikasi apakah Microservices API diaktifkan dalam suatu project. Pengguna harus memiliki izin serviceusage.services.list untuk melihat
dasbor.
Dasbor Pemantauan Microservices (gRPC) adalah dasbor Google Cloud dan Anda tidak dapat mengubahnya secara langsung. Untuk menyesuaikan dasbor, Anda harus menyalin dasbor ke dasbor kustom. Kemudian, Anda dapat memperbarui dasbor kustom, misalnya dengan menambahkan, menghapus, atau menyusun ulang diagram.
Melihat metrik di Metrics Explorer
Setelah menyiapkan contoh gRPC atau menginstrumentasi workload, Anda akan melihat metrik yang dihasilkan oleh klien gRPC dan server gRPC di konsolGoogle Cloud .
Untuk melihat dan memetakan metrik, gunakan petunjuk di Memilih metrik saat menggunakan Metrics Explorer
Memeriksa entri log di Logs Explorer
Kueri yang disarankan adalah fitur Cloud Logging yang Google Cloud menyarankan serangkaian kueri berdasarkan log yang di-ingest. Anda dapat mengklik dan menggunakan filter yang sudah disiapkan.
Setelah entri log yang cocok dengan kueri yang disarankan muncul di Cloud Logging, Anda dapat melihat kueri baru yang disarankan dalam waktu sekitar 6 menit. Dalam sebagian besar kasus, Anda akan melihat saran kueri baru lebih cepat. Jika ada entri log yang cocok dengan saran dalam 15 menit sebelumnya, kueri yang disarankan akan terus ditampilkan. Saran tersebut akan terus muncul hingga tidak ada entri log yang cocok dalam 15 menit sebelumnya.
Anda dapat membuat kueri yang disesuaikan. Lihat Panduan bahasa kueri logging untuk mengetahui petunjuknya. Misalnya, di panel Kueri Logs Explorer, Anda dapat mencoba menampilkan semua log debug gRPC dengan kode berikut:
log_id("microservices.googleapis.com/observability/grpc")
Anda dapat menggunakan semua kolom dalam rekaman log gRPC untuk pemfilteran. Berikut adalah contoh entri log:
{
"insertId": "17kh8vafzuruci",
"jsonPayload": {
"authority": "10.84.1.15:50051",
"sequenceId": "6",
"serviceName": "helloworld.Greeter",
"peer": {
"ipPort": 50051,
"address": "10.84.1.10",
"type": "IPV4"
},
"callId": "d9577780-c608-4bff-9e12-4d9cdea6b298",
"type": "SERVER_TRAILER",
"methodName": "SayHello",
"payload": {},
"logger": "CLIENT"
},
"resource": {
"type": "k8s_container",
"labels": {
"pod_name": "grpc-client-deployment-155-6967959544-x8ndr",
"container_name": "grpc-client-container-155",
"cluster_name": "o11y-cluster",
"namespace_name": "grpc-client-namespace-155",
"location": "us-west1-b",
"project_id": "grpc-greeter"
}
},
"timestamp": "2023-04-05T23:33:41.718523Z",
"severity": "DEBUG",
"labels": {
"environment": "example-client"
},
"logName": "projects/grpc-greeter/logs/microservices.googleapis.com%2Fobservability%2Fgrpc",
"receiveTimestamp": "2023-04-05T23:33:42.712682457Z"
}
Kueri yang disarankan
Kemampuan observasi microservice menyediakan kueri yang disarankan berikut ke Cloud Logging:
Header atau rekaman log trailer untuk gRPC
Kueri ini memberikan tampilan dasar RPC, yang menghasilkan informasi peer dan hasil RPC.
log_id("microservices.googleapis.com/observability/grpc") AND
jsonPayload.type=("CLIENT_HEADER" OR "SERVER_TRAILER")
Panggilan gRPC gagal
Kueri ini menemukan RPC yang berakhir dengan status non-OK.
log_id("microservices.googleapis.com/observability/grpc") AND
jsonPayload.type="SERVER_TRAILER" AND
jsonPayload.payload.statusCode!="OK"
Mencatat rekaman untuk gRPC yang dibatalkan atau melampaui batas waktu
Pembatalan gRPC yang berlebihan atau melampaui batas waktu dapat memberikan informasi yang berguna tentang penurunan performa atau perilaku aplikasi yang tidak terduga.
log_id("microservices.googleapis.com/observability/grpc") AND
((jsonPayload.type="SERVER_TRAILER" AND jsonPayload.payload.statusCode=("CANCELLED" OR "DEADLINE_EXCEEDED")) OR (jsonPayload.type="CANCEL"))
Menggunakan log dan pelacakan untuk pemecahan masalah
Jika Anda melihat peristiwa RPC yang menunjukkan perilaku buruk, Anda dapat menemukan callId
dalam peristiwa tersebut. Gunakan kueri berikut untuk menampilkan semua peristiwa yang terjadi dalam satu RPC, terlepas dari apakah itu RPC unary atau streaming. Entri log sebelumnya digunakan sebagai contoh:
log_id("microservices.googleapis.com/observability/grpc")
jsonPayload.callId="a358c7b80-3548-4bc8-a33f-b93ba1514904"
Untuk menentukan cakupan masalah, Anda dapat menemukan semua peristiwa RPC untuk metode atau lokasi yang sama. Kueri berikut menampilkan semua log debug yang terkait dengan metode RPC tertentu, menggunakan layanan Greeter sebagai contoh:
log_id("microservices.googleapis.com/observability/grpc")
jsonPayload.serviceName="helloworld.Greeter"
jsonPayload.methodName="SayHello"
Untuk memeriksa RPC yang gagal dengan kode status tertentu, Anda dapat menambahkan kode status sebagai salah satu kondisi pemfilteran. Kueri berikut menampilkan peristiwa trailer yang berakhir dengan status non-OK:
log_id("microservices.googleapis.com/observability/grpc")
jsonPayload.payload.statusCode!="OK"
Opsi kemampuan observasi
Kemampuan observasi microservice mencakup fitur opsional berikut.
Menentukan label kustom
Anda dapat menentukan label kustom, yang menambahkan informasi yang disediakan pengguna ke data observasi. Label kustom terdiri dari pasangan nilai kunci. Setiap pasangan kunci-nilai dilampirkan ke data pelacakan sebagai label rentang, ke data metrik sebagai tag metrik, dan ke data logging sebagai label entri log.
Label kustom ditentukan dalam konfigurasi dengan daftar key-value pair di kolom labels. Semua kunci dan nilai untuk label kustom adalah jenis STRING. Implementasi
membaca konfigurasi dan membuat label terpisah untuk setiap
pasangan nilai kunci, lalu melampirkan label ke data observasi.
Misalnya, ini adalah definisi label:
"labels": {
"DATACENTER": "SAN_JOSE_DC",
"APP_ID": "24512"
}
Setiap entri log memiliki label tambahan berikut:
{
"DATACENTER" : "SAN_JOSE_DC"
"APP_ID" : "24512"
}
Mengaktifkan logging payload
Anda mengaktifkan logging payload menggunakan variabel lingkungan yang Anda berikan ke
workload. Untuk mengaktifkan logging payload untuk pesan dan header HelloWorld,
perbarui nilai file konfigurasi
gcp_observability_server_config.json, gcp_observability_client_config.json
atau keduanya dalam contoh gRPC sebagai berikut:
{
"cloud_monitoring":{
},
"cloud_trace":{
"sampling_rate":1.0
},
"cloud_logging":{
"client_rpc_events":[
{
"methods":[
"helloworld.Greeter/*"
],
"max_metadata_bytes":4096,
"max_message_bytes":4096
}
],
"server_rpc_events":[
{
"methods":[
"helloworld.Greeter/*"
],
"max_metadata_bytes":4096,
"max_message_bytes":4096
}
]
}
}
Menyiapkan kemampuan observasi lintas project
Anda dapat menetapkan project tujuan secara eksplisit menggunakan setelan konfigurasi di
variabel lingkungan GRPC_GCP_OBSERVABILITY_CONFIG. Untuk kemampuan pengamatan lintas project, Anda juga harus menetapkan
izin akun layanan yang sesuai.
Dengan asumsi project ID tujuan adalah core-platform-stats, Anda dapat menyiapkan kemampuan pengamatan lintas project menggunakan contoh konfigurasi berikut:
{
"project_id":"core-platform-stats",
"cloud_monitoring":{
},
"cloud_trace":{
"sampling_rate":1.0
},
"cloud_logging":{
"client_rpc_events":[
{
"methods":[
"helloworld.Greeter/*"
]
}
],
"server_rpc_events":[
{
"methods":[
"helloworld.Greeter/*"
]
}
]
}
}
Perkirakan volume log
Bagian ini memberikan informasi yang dapat Anda gunakan untuk memperkirakan volume penyerapan log secara opsional. Anda dapat membuat perkiraan sebelum berlangganan ke peristiwa RPC layanan Anda.
| Item | Detail |
|---|---|
| Peristiwa yang dihasilkan untuk panggilan unary OK | 6 peristiwa RPC panggilan unary OK menghasilkan 6 peristiwa berikut untuk klien atau server:
|
| Ukuran rata-rata entri log | 500 byte secara default Entri log dipetakan ke satu peristiwa RPC, peristiwa RPC mencakup informasi debug mendetail untuk peristiwa tersebut, label resource, dan label kustom. |
| Ukuran logging payload | 0 secara default, dapat dikonfigurasi Ukuran payload maksimum dapat dikonfigurasi dalam konfigurasi kemampuan pengamatan. Secara default, tidak ada payload yang dicatat. |
| Ukuran label khusus | 0 secara default, dapat dikonfigurasi Label kustom diberikan ke aplikasi menggunakan variabel lingkungan. Jika tidak ada yang ditentukan, tidak akan ada label khusus |
Formula estimasi total ukuran penyerapan log per bulan:
Monthly Log Ingestion = QPS * 6 * (500B + Payload Logging Size + Custom Labels Size) * 2592000
Misalnya, jika QPS metode panggilan unary adalah 1 dan tidak ada fitur tambahan yang diaktifkan, perkiraan ukuran penyerapan log adalah sekitar 7,24 GiB.
Langkah berikutnya
- Untuk mengetahui informasi mendetail tentang data konfigurasi, definisi rekaman aktivitas, definisi metrik, dan definisi log, lihat Referensi kemampuan pengamatan microservice.