Logging dan pemantauan untuk plugin Load Balancer Aplikasi dan Cloud CDN

Halaman ini menunjukkan cara mengonfigurasi dan menggunakan Cloud Logging dan Cloud Monitoring dengan plugin Service Extensions untuk Cloud Load Balancing dan Cloud CDN.

Logging

Bagian ini menjelaskan logging untuk plugin Load Balancer Aplikasi. Logging dapat dilakukan dari perspektif plugin dan perspektif load balancer.

Pesan log

Ekstensi Layanan mendukung pembuatan pesan log selama eksekusi plugin Anda. Perekaman log dinonaktifkan secara default. Untuk mencatat log plugin, aktifkan saat Anda membuat plugin atau mengupdatenya.

Data log plugin dianotasi dengan informasi kontekstual berikut:

  • Anotasi log standar, seperti stempel waktu dan level log.
  • Identitas plugin yang menghasilkan pesan.
  • Callback plugin tempat pesan log dibuat.
  • ID trace requestId yang membantu menentukan log permintaan yang terkait dengan pesan log.

Log yang relevan dengan Ekstensi Layanan termasuk dalam salah satu kategori berikut:

  • Pesan log plugin

    Dihasilkan oleh panggilan logging, seperti info!(...) untuk Rust, proxywasm.LogInfo(...) untuk Go, atau LOG_INFO untuk C++. Service Extensions mengekspor pesan log ini ke Cloud Logging. Anda dapat mencatat header permintaan dan respons ke dalam log, serta tindakan apa pun yang telah dilakukan plugin.

    Anda dapat melihat pesan ini menggunakan layanan networkservices.googleapis.com.

  • Pesan log Cloud Load Balancing

    Anda dapat melihat pesan ini menggunakan layanan loadbalancing.googleapis.com.

Logging dari perspektif plugin

Bagian ini menjelaskan logging Service Extensions dari perspektif plugin.

Mengaktifkan logging untuk plugin

Ekstensi Layanan mendukung pembuatan pesan log selama eksekusi plugin Anda. Perekaman log dinonaktifkan secara default.

Untuk merekam log plugin, aktifkan saat Anda membuat plugin atau mengupdatenya.

Untuk mengaktifkan logging bagi plugin yang ada, gunakan perintah gcloud service-extensions wasm-plugins update:

gcloud service-extensions wasm-plugins update WASM_PLUGIN \
    --log-config=[LOG_CONFIG,...]

Ganti kode berikut:

  • WASM_PLUGIN: ID atau nama plugin yang sepenuhnya memenuhi syarat
  • LOG_CONFIG: opsi logging untuk plugin. Untuk mengaktifkan logging, tetapkan opsi enable ke true. Kemudian, tentukan detail berikut:

    • sample-rate: frekuensi sampling log aktivitas sebagai nilai antara 0 dan 1. Nilai 0 menunjukkan bahwa pesan log tidak disimpan. Nilai default 1 menunjukkan bahwa semua pesan log disimpan. Nilai floating point antara 0.0 dan 1.0 menunjukkan bahwa persentase pesan log disimpan.
    • min-log-level: tingkat keparahan minimum pesan log plugin yang akan diekspor ke Cloud Logging. Nilai defaultnya adalah INFO.

Setelah mengaktifkan logging untuk plugin, Anda dapat melihat pesan yang dikeluarkan oleh pernyataan logging dalam kode plugin di Cloud Logging.

Untuk melihat log, di konsol Google Cloud , buka halaman Logs Explorer.

Melihat pesan log untuk plugin

Log dapat dilihat dengan membuat kueri di Logs Explorer.

Anda dapat melihat log plugin sebagai log Service Extensions mandiri. Dalam tampilan ini, setiap pesan log plugin dicatat dalam data log-nya sendiri dan tidak otomatis dikaitkan dengan informasi log permintaan.

Pesan log ini berada di log networkservices.googleapis.com/wasm_plugin_activity dengan jenis resource networkservices.googleapis.com/WasmPluginVersion.

Sistem juga dapat menambahkan pesan log informasi ke log ini. Misalnya, jika terjadi kegagalan plugin saat pemanggilan plugin melebihi batas CPU atau memori, pesan dengan tingkat keparahan ERROR akan dicatat ke dalam log. Pesan tersebut juga dapat dilihat di Melihat dan memfilter error.

Contoh log plugin

Pertimbangkan contoh entri log Service Extensions. Nilai message diteruskan ke panggilan LOG_INFO plugin. Nilai severity bergantung pada level log yang digunakan dalam panggilan log plugin. Di bagian labels, nilai API adalah HTTP_REQUEST_HEADER, yang menunjukkan bahwa operasi yang dicatat ke dalam log adalah callback plugin on_http_request_headers.

{
  "insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.networkservices.logging.v1.WasmPluginLogEntry",
    "metroIataCode": "ber",
    "proxyRegionCode": "DE",
    "message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
    "requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
  },
  "resource": {
    "type": "networkservices.googleapis.com/WasmPluginVersion",
    "labels": {
      "plugin_version": "prod-1",
      "resource_container": "projects/123456789",
      "location": "global",
      "plugin_name": "add-headers-plugin-prod-resource"
    }
  },
  "timestamp": "2023-05-10T03:05:43.317015458Z",
  "severity": "INFO",
  "labels": {
    "networkservices.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
  },
  "logName": "projects/123456789/logs/networkservices.googleapis.com%2Fwasm_plugin_activity",
  "trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}

Batasan untuk logging

Plugin dibatasi untuk mencatat data payload hingga 16 KiB per permintaan HTTP klien. Jumlah ini dibagi di beberapa panggilan logging yang terkait dengan permintaan HTTP tertentu. Batas ini hanya berlaku untuk teks pesan log, bukan untuk metadata tambahan yang ditambahkan ke data log oleh Service Extensions.

Misalnya, jika callback on_http_request_headers melakukan dua panggilan logging dengan masing-masing pesan 4 KiB, lalu callback on_http_response_headers mencoba melakukan tiga panggilan logging dengan masing-masing pesan 4 KiB untuk permintaan HTTP yang sama, pesan logging kelima akan dihapus. Pesan log ditambahkan untuk mencatat jumlah pesan log yang dihasilkan plugin yang dihapus.

Logging dari perspektif load balancer

Bagian ini menjelaskan logging Service Extensions dari perspektif load balancer.

Mengaktifkan logging di layanan backend

Anda dapat mengaktifkan logging untuk plugin Load Balancer Aplikasi saat membuat layanan dengan mengaktifkan logging pada layanan backend yang menjadi target permintaan.

Untuk mengaktifkan logging bagi layanan backend target, gunakan perintah gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --region=REGION \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

Ganti kode berikut:

  • BACKEND_SERVICE: nama layanan backend
  • RATE: nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang di-log dan 1.0 berarti 100% permintaan di-log. Nilai defaultnya adalah 1.0. Setelan ini hanya efektif jika digunakan dengan parameter enable-logging. Jika Anda menghilangkan enable-logging, logging akan dinonaktifkan.
  • REGION: region backend
  • LOGGING_OPTIONAL_MODE: mengaktifkan logging untuk kolom opsional dalam salah satu mode berikut:

    • INCLUDE_ALL_OPTIONAL menyertakan semua kolom opsional.
    • EXCLUDE_ALL_OPTIONAL (default) mengecualikan semua kolom opsional.
    • CUSTOM menyertakan daftar kustom kolom opsional.
  • OPTIONAL_FIELDS: daftar kolom opsional yang dipisahkan koma saat Anda memilih mode CUSTOM

Setelah Anda mengaktifkan logging di layanan backend, permintaan HTTP atau HTTPS akan dicatat ke dalam log menggunakan permintaan log Cloud Logging.

Untuk melihat log, di konsol Google Cloud , buka halaman Logs Explorer.

Pesan log untuk layanan backend

Secara umum, entri log Load Balancer Aplikasi berisi informasi yang berguna untuk memantau dan men-debug traffic HTTP atau HTTPS Anda. Entri log berisi jenis informasi berikut:

  • Informasi yang ditampilkan di sebagian besar log Google Cloud , seperti tingkat keparahan, project ID, nomor project, dan stempel waktu seperti yang dijelaskan dalam log LogEntry.
  • Kolom log HttpRequest.

Log permintaan untuk load balancer HTTP dan HTTPS berisi objek service_extension_info dalam payload JSON entri log load balancer dengan informasi berikut:

Kolom Jenis Deskripsi
backend_target_name string Nama target backend ekstensi.
backend_target_type string Jenis target backend.
chain string Nama rantai ekstensi dalam resource ekstensi layanan yang cocok dengan permintaan.
extension string Nama ekstensi dalam rantai ekstensi.
failed_open boolean Jika konfigurasi ekstensi memiliki failOpen yang ditetapkan ke true, nilai true untuk metrik ini menunjukkan bahwa pemrosesan dilanjutkan saat waktu tunggu ekstensi habis atau gagal.

Hanya berlaku untuk Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, dan Load Balancer Aplikasi internal lintas region.

grpc_status enum Status terbaru di streaming gRPC. Untuk informasi selengkapnya, lihat kode status gRPC.
per_processing_request_info array Daftar statistik ProcessingRequest untuk ekstensi ext_proc atau statistik CheckRequest untuk ekstensi ext_authz yang terjadi melalui aliran gRPC.
per_processing_request_info[].event_type enum Jenis peristiwa ProcessingRequest. Dapat berupa salah satu dari berikut ini: REQUEST_HEADERS, REQUEST_BODY, RESPONSE_HEADERS, atau RESPONSE_BODY.
per_processing_request_info[].latency durasi Durasi dari saat byte pertama pesan ProcessingRequest dikirim ke ekstensi hingga saat byte terakhir pesan ProcessingResponse diterima.
per_processing_request_info[].processing_effect enum Hasil pemrosesan untuk setiap peristiwa dalam permintaan pemrosesan.

Hanya berlaku untuk Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, dan Load Balancer Aplikasi internal lintas region.

Dapat berupa salah satu dari nilai berikut ini:

  • NONE: menunjukkan bahwa konten tidak diubah.
  • NONE_FAILED_OPEN: menunjukkan bahwa tidak ada mutasi yang dilakukan karena ekstensi gagal terbuka.
  • CONTENT_MODIFIED: menunjukkan bahwa konten diubah oleh permintaan mutasi yang berhasil diterapkan.
  • IMMEDIATE_RESPONSE: menunjukkan bahwa respons langsung dikirim oleh ekstensi untuk menghentikan semua pemrosesan lebih lanjut.
  • MUTATION_REJECTED: menunjukkan bahwa ekstensi meminta setidaknya satu perubahan yang tidak diizinkan dan pemrosesan lebih lanjut dihentikan. Pesan error yang sesuai akan dicatat ke dalam log.
  • UNSPECIFIED: menunjukkan bahwa efek pemrosesan tidak diketahui.
per_processing_request_info[].processing_effect_details string Jika processing_effect adalah MUTATION_REJECTED, detail tentang alasan mutasi ditolak.

Hanya berlaku untuk Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, dan Load Balancer Aplikasi internal lintas region.

resource string Nama resource ekstensi

Pemantauan

Bagian ini menjelaskan cara menggunakan dasbor Cloud Monitoring untuk melihat metrik plugin Load Balancer Aplikasi yang dikonfigurasi menggunakan Service Extensions. Anda dapat memantau plugin dari perspektif plugin atau perspektif load balancer.

Pemantauan dari perspektif plugin

Bagian ini menjelaskan pemantauan Service Extensions dari perspektif plugin.

Untuk mengetahui informasi mendetail tentang jenis metrik Service Extensions, lihat halaman metrikGoogle Cloud .

Melihat dasbor Monitoring untuk Service Extensions

Untuk melihat dasbor Monitoring untuk Service Extensions, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Service Extensions.

    Buka Service Extensions

  2. Klik tab Plugins.
  3. Klik nama plugin.
  4. Di halaman Plugin details, klik tab Monitoring.
  5. Di halaman Monitoring, diagram metrik menampilkan informasi yang dapat membantu Anda memantau performa plugin.

  6. Untuk melihat metrik operasi siklus proses plugin, pilih nilai dari daftar Filter operasi. Secara default, nilai HTTP request header dan HTTP response header dipilih.
  7. Untuk melihat metrik versi plugin tertentu, pilih nilai dari daftar Filter versi plugin. Secara default, metrik ditampilkan untuk semua versi.
  8. Untuk mengubah periode yang datanya ingin Anda lihat, pilih periode yang telah ditentukan dari pemilih waktu atau klik Kustom, lalu tentukan waktu mulai dan waktu berakhir. Secara default, pemilih ditetapkan ke 1 day.

Metrik plugin untuk Service Extensions

Anda dapat memantau metrik berikut untuk plugin dari perspektif Service Extensions. Metrik ini memiliki awalan networkservices.googleapis.com/wasm_plugin/. Awalan dihilangkan dari entri dalam tabel.

Jenis metrik Nama tampilan
Jenis, Tipe, Unit
Deskripsi
invocation_count Jumlah pemanggilan plugin Wasm
DELTA, INT64, 1
Jumlah pemanggilan plugin selama rentang waktu yang dipilih. Setiap pemanggilan callback plugin dihitung sebagai pemanggilan plugin terpisah.
invocation_latencies Latensi pemanggilan plugin Wasm
DELTA, DISTRIBUTION, us
Waktu eksekusi lokal, dalam milidetik, dari plugin. Metrik ini mencakup entri yang dibatasi label untuk setiap callback.
cpu/usage_times Penggunaan CPU yang dinormalisasi plugin Wasm
DELTA, DISTRIBUTION, us{CPU}
Waktu penggunaan CPU dari pemanggilan plugin, dalam mikrodetik.
memory/bytes_used Penggunaan memori plugin Wasm
GAUGE, DISTRIBUTION, By
Total memori yang dialokasikan oleh VM plugin Wasm, dalam byte.

Pemantauan dari perspektif load balancer

Bagian ini menjelaskan pemantauan Service Extensions untuk plugin dari perspektif load balancer.

Melihat dasbor Monitoring untuk Cloud Load Balancing

Load Balancer Aplikasi mengekspor data pemantauan ke Cloud Monitoring.

Gunakan metrik Monitoring untuk tujuan berikut:

  • Mengevaluasi konfigurasi, penggunaan, dan performa load balancer
  • Memecahkan masalah
  • Meningkatkan pemanfaatan resource dan pengalaman pengguna

Untuk melihat dasbor standar, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Dashboards overview.

    Buka Dashboards overview

  2. Di bagian Categories, klik GCP.
    • Untuk melihat daftar dasbor untuk semua load balancer Anda, di daftar GCP Dashboards, klik dasbor bernama Google Cloud Load Balancers. Untuk melihat dasbor load balancer tertentu, temukan load balancer dalam daftar, lalu klik namanya.
    • Untuk melihat dasbor standar hanya untuk load balancer Anda, pilih dasbor yang sesuai.

Selain dasbor standar di Monitoring, Anda dapat membuat dasbor kustom, menyiapkan pemberitahuan, dan membuat kueri metrik melalui Cloud Monitoring API.

Metrik plugin untuk Cloud Load Balancing

Anda dapat memantau metrik berikut untuk plugin dari perspektif Cloud Load Balancing.

Dalam Pratinjau, Anda dapat memantau metrik berikut untuk ekstensi di semua jenis Load Balancer Aplikasi. Metrik ini memiliki awalan networkservices.googleapis.com. Awalan dihilangkan dari entri dalam tabel berikut.

Tabel berikut menyediakan jenis metrik, nama tampilan, jenis, tipe, unit, dan deskripsi untuk setiap metrik.

Jenis metrik Nama tampilan
Jenis, Tipe, Unit
Deskripsi
extension/invocation_count Jumlah pemanggilan ekstensi
DELTA, INT64, 1
Jumlah pemanggilan yang dikirim ke ekstensi.
extension/invocation_latencies Latensi pemanggilan ekstensi
DELTA, DISTRIBUTION, ms
Distribusi yang dihitung dari latensi setiap pemanggilan ekstensi. Hanya berlaku untuk ekstensi info; tidak didukung untuk plugin.
extension/sent_chunks_count Jumlah potongan yang dikirim ekstensi
DELTA, INT64, 1
Hanya berlaku untuk peristiwa request_body dan response_body. Jumlah potongan data yang dikirim ke ekstensi.
extension/received_chunks_count Jumlah potongan yang diterima ekstensi
DELTA, INT64, 1
Hanya berlaku untuk peristiwa request_body dan response_body. Jumlah potongan yang diterima dari ekstensi.
extension/failed_open_count Pemanggilan ekstensi gagal dengan fail-open
DELTA, INT64, 1
Frekuensi kegagalan pemanggilan saat sistem dikonfigurasi untuk fail-open dan permintaan diizinkan untuk dilanjutkan.
extension/mutation_rejections_count Jumlah penolakan mutasi ekstensi
DELTA, INT64, 1
Jumlah pemanggilan yang meminta mutasi header, isi, atau trailer, tetapi ditolak. Penolakan dapat terjadi karena berbagai alasan, seperti saat mutasi tidak valid atau melebihi batas ukuran.
extension/sent_bytes_count Jumlah byte yang dikirim ekstensi
DELTA, INT64, By
Jumlah byte yang dikirim ke ekstensi.
extension/received_bytes_count Jumlah byte yang diterima ekstensi
DELTA, INT64, By
Jumlah byte yang diterima dari ekstensi.

Anda juga dapat memantau metrik berikut. Metrik ini memiliki awalan loadbalancing.googleapis.com/. Awalan dihilangkan dari entri dalam tabel.

Jenis metrik Nama tampilan
Jenis, Tipe, Unit
Deskripsi
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
Jumlah permintaan backend
DELTA, INT64, 1
Frekuensi plugin dipanggil dari Load Balancer Aplikasi.
https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
Byte permintaan backend
DELTA, INT64, By
Jumlah byte yang dikirim dari load balancer ke plugin.
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
Byte respons backend
DELTA, INT64, By
Jumlah byte yang diterima oleh load balancer dari backend ekstensi.

Melihat metrik plugin

Untuk melihat metrik plugin tertentu, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Metrics explorer.

    Buka Metrics explorer

  2. Pada elemen Metric, luaskan menu Select a metric. Kemudian, lakukan hal berikut:

    1. Dari daftar resource, pilih aturan Load Balancer Aplikasi yang sesuai.

    2. Dari daftar kategori metrik, pilih Https.

    3. Dari daftar metrik, pilih metrik plugin.

    4. Klik Terapkan.

  3. Di elemen Filter, lakukan hal berikut:

    1. Pilih label backend_target_type dan tetapkan nilainya ke WASM_PLUGIN.

    2. Pilih label backend_target_name dan tetapkan nama plugin sebagai nilainya.

Untuk mengetahui informasi selengkapnya tentang jenis metrik load balancer, lihat bagian loadbalancing di halaman metrik Google Cloud .