Tiap permintaan Cloud CDN akan di-log di Cloud Logging. Untuk mengetahui informasi tentang cara mengaktifkan dan menonaktifkan logging, baca bagian Ringkasan logging dan pemantauan Load Balancer Aplikasi eksternal dan Cloud CDN.
Log untuk Cloud CDN dikaitkan dengan Load Balancer Aplikasi eksternal yang terhubung ke backend Cloud CDN Anda. Log Cloud CDN diindeks pertama-tama berdasarkan aturan penerusan, kemudian berdasarkan peta URL.
Untuk melihat log Cloud CDN, ikuti langkah-langkah berikut.
Konsol
- Di konsol Google Cloud , buka halaman Logs Explorer.
- Di menu Resource, pilih Cloud HTTP Load Balancer.
- Lihat log sebagai berikut:
- Melihat semua log: pilih menu Resource, lalu pilih All forwarding rules.
- Melihat log untuk aturan penerusan: pilih nama aturan penerusan dari daftar aturan penerusan.
- Melihat log untuk peta URL yang digunakan oleh aturan penerusan: pilih aturan penerusan, lalu pilih peta URL.
Permintaan disajikan dari backend
Untuk mengonfirmasi bahwa permintaan disajikan dari backend yang mendukung Cloud CDN, ada tiga kolom utama yang harus dicari, sebagai berikut:
httpRequest: Saat permintaan disajikan dari backend, Anda dapat melihat bahwa cache terisi dan Anda dapat mengonfirmasi URL permintaan.cacheFillBytes:NUMBER_OF_BYTEScacheLookup: TruerequestURL: URL
jsonPayload: Dari kolomstatusDetails, Anda dapat mengonfirmasi bahwa respons disajikan oleh backend.statusDetails: "response_sent_by_backend"
Permintaan yang disajikan dari cache
Entri log berikut menunjukkan cache ditemukan.
{
insertId: "1oek5rg3l3fxj7"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
cacheId: "SFO-fbae48ad"
statusDetails: "response_from_cache"
}
httpRequest: {
requestMethod: "GET"
requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg"
requestSize: "577"
status: 304
responseSize: "157"
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
remoteIp: "CLIENT_IP_ADDRESS"
cacheHit: true
cacheLookup: true
}
resource: {
type: "http_load_balancer"
labels: {
zone: "global"
url_map_name: "URL_MAP_NAME"
forwarding_rule_name: "FORWARDING_RULE_NAME"
target_proxy_name: "TARGET_PROXY_NAME"
backend_service_name: ""
project_id: "PROJECT_ID"
}
}
timestamp: "2020-06-08T23:41:30.078651Z"
severity: "INFO"
logName: "projects/PROJECT_ID/logs/requests"
trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992"
receiveTimestamp: "2020-06-08T23:41:30.588272510Z"
spanId: "7b6537d3672e08e1"
}
Hal yang di-log
Selain informasi umum yang terdapat di sebagian besar log, seperti tingkat keparahan, project ID, nomor project, dan stempel waktu, log Load Balancer Aplikasi eksternal dan Cloud CDN berisi hal-hal berikut:
Kolom log HttpRequest, yang mencatat kode status HTTP, byte yang ditampilkan, dan apakah pencarian cache atau pengisian cache dilakukan atau tidak.
Kolom
jsonPayload.cacheId, yang menunjukkan lokasi dan instance cache yang menjadi asal respons cache disajikan. Misalnya, respons cache yang disalurkan dari cache di Amsterdam akan memiliki nilai ter-cacheAMS-85e2bd4b, denganAMSadalah kode IATA, dan85e2bd4badalah ID buram dari instance cache (karena sebagian lokasi Cloud CDN memiliki beberapa cache terpisah).Kolom
statusDetailsdancacheDetaildarijsonPayload.
Anda dapat memfilter kolom berikut untuk menentukan status cache ditemukan, cache tidak ditemukan, atau validasi ulang cache permintaan yang disajikan oleh Cloud CDN:
Cache Ditemukan
jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")atau
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer!=trueCache Ditemukan yang Divalidasi Dengan Server Asal
jsonPayload.statusDetails="response_from_cache_validated"atau
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=trueCache Tidak Ditemukan
jsonPayload.statusDetails="response_sent_by_backend"atau
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
Atau, Anda dapat mengamati status cache dari sisi klien dengan
mengonfigurasi header respons kustom
dengan cdn_cache_status.
Kolom log berjenis boolean biasanya hanya akan muncul jika memiliki nilai
true. Jika kolom boolean memiliki nilai false, kolom tersebut akan dihilangkan
dari log.
Encoding UTF-8 diterapkan untuk kolom-kolom ini. Karakter yang bukan karakter UTF-8 akan diganti dengan tanda tanya.
Saat menyajikan permintaan klien dengan memulai permintaan validasi atau permintaan rentang byte, Cloud CDN tidak akan menyertakan kolom serverIp dari entri log Cloud Logging untuk permintaan klien. Hal ini karena Cloud CDN dapat mengirim permintaan ke beberapa alamat IP server sebagai respons terhadap satu permintaan klien.
Tiap permintaan yang dimulai oleh Cloud CDN akan membuat entri log Cloud Logging. Entri log yang dihasilkan akan berisi kolom parentInsertId di dalam
jsonPayload. Anda dapat menggunakan kolom ini untuk mengidentifikasi insertId entri log untuk satu permintaan klien yang meminta Cloud CDN memulai permintaan validasi atau permintaan rentang byte. Selain itu, entri log tersebut
akan mengidentifikasi Cloud CDN sebagai agen pengguna.
Pemantauan untuk Cloud CDN
Cloud CDN akan mengekspor data pemantauan ke Cloud Monitoring. Monitoring digunakan untuk memantau kondisi deployment Cloud CDN.
Cloud Monitoring akan menyediakan
dasbor yang telah ditentukan sebelumnya
yang diaktifkan secara default untuk mendapatkan insight cepat terkait kondisi dan performa sistem. Monitoring juga akan menawarkan serangkaian dasbor kustom. Definisi
dasbor kustom ini tersedia di
GitHub dalam
repositori monitoring-dashboard-samples
sebagai file JSON. Di direktori dashboards/networking, ada dasbor kustom khusus Cloud CDN bernama cloud-cdn-monitoring.json.
Upload dasbor kustom ini ke Monitoring dengan mengikuti
petunjuk yang tercantum di artikel
Menginstal contoh dasbor.
Dasbor bawaan
Cloud Monitoring menawarkan dasbor bawaan untuk Cloud CDN. Dasbor ini menampilkan metrik utama yang dapat Anda gunakan untuk memantau distribusi traffic dan efektivitas cache tanpa konfigurasi manual.
Melihat dasbor bawaan
Lakukan langkah-langkah berikut untuk mengakses dasbor bawaan:
Di konsol Google Cloud , buka halaman Cloud CDN.
Klik nama server asal yang ingin Anda lihat dasbornya.
Di halaman Origin details, klik Monitoring.
Dasbor bawaan akan muncul secara default.
Metrik di dasbor
Dasbor bawaan memberikan metrik utama berikut terkait server asal CDN Anda:
Distribusi traffic klien
Peta geografis dinamis yang menampilkan sumber permintaan klien. Peta ini memberikan ringkasan visual global terkait asal traffic. Anda dapat menyesuaikan filter rentang waktu untuk menganalisis pola distribusi traffic selama periode tertentu.
Metrik inti
Tabel berikut menjelaskan metrik inti yang ditampilkan di dasbor.
Metrik Deskripsi Total permintaan Jumlah gabungan semua permintaan HTTP/HTTPS yang diproses oleh Cloud CDN, yang disajikan dari cache atau dari layanan backend server asal. Diagram ini menampilkan jumlah permintaan dari waktu ke waktu. Egress cache Total volume data, dalam byte, yang disajikan dari cache edge Cloud CDN. Diagram batang menampilkan volume egress dari waktu ke waktu. Total rasio error Persentase semua permintaan yang menghasilkan kode status error 4xxatau5xx. Metrik ini adalah indikator utama kondisi layanan secara keseluruhan.Rasio error 4xx Persentase permintaan yang menghasilkan kode status sisi klien. Ini adalah kode 4xx, seperti 404 Not Foundatau403 Forbidden. Error tersebut menunjukkan masalah pada konten yang diminta atau izin klien.Rasio error 5xx Persentase permintaan yang menghasilkan kode status sisi server. Ini adalah kode 5xx, seperti 502 Bad Gatewayatau503 Service Unavailable. Error tersebut menunjukkan masalah pada layanan server asal backend atau konfigurasi load balancer.Rasio cache ditemukan Ini adalah rasio (sebagai persentase) dari permintaan yang disajikan langsung dari cache Cloud CDN dibandingkan dengan jumlah total permintaan. Total pengisian cache Total volume data, dalam byte, yang diambil dari backend asal dan disimpan di cache Cloud CDN.
Dasbor kustom
Dengan Monitoring, Anda dapat membuat dasbor kustom. Dasbor dapat menggunakan salah satu metrik pemantauan untuk Load Balancer Aplikasi eksternal. Berikut beberapa contoh cuplikan PromQL yang dapat Anda tempelkan ke dasbor Monitoring kustom.
Jumlah byte permintaan yang dikelompokkan menurut hasil cache
Kueri ini berfokus pada backend yang memiliki Cloud CDN yang diaktifkan, yang dilakukan dengan menyertakan
cache_result!="DISABLED".
sum by (cache_result) (
rate({"loadbalancing.googleapis.com/https/response_bytes_count", monitored_resource="https_lb_rule", cache_result!="DISABLED"}[1m])
)
Latensi TCP round-trip klien pada 95% untuk target backend tertentu
Kueri ini mencakup backend_target_name="example-backend",
yang mempersempit traffic ke example-backend backend. Backend dapat berupa bucket Cloud Storage, grup VM Compute Engine, atau backend eksternal.
histogram_quantile(
0.95,
sum by (proxy_continent, le) (
rate({"loadbalancing.googleapis.com/https/frontend_tcp_rtt_bucket",
monitored_resource="https_lb_rule",
backend_target_name="example-backend"
}[1m])
)
)
Jumlah permintaan yang dikelompokkan menurut kelas kode respons untuk backend dengan Cloud CDN yang diaktifkan
Kueri ini memecah traffic menurut class kode respons (2xx, 3xx, 4xx, 5xx) untuk membantu memisahkan keberhasilan klien, error klien, dan error server.
sum by (response_code_class) (
count_over_time(
{"loadbalancing.googleapis.com/https/request_count",
monitored_resource="https_lb_rule",
cache_result!="DISABLED"
}[1h]
)
)
Jumlah permintaan yang dikelompokkan menurut negara server asal
Kueri ini menampilkan traffic yang dikelompokkan menurut negara server asal, yang ditentukan menggunakan alamat IP klien.
sum by (client_country) (
rate({"loadbalancing.googleapis.com/https/request_count", monitored_resource="https_lb_rule"}[1m])
)
Langkah berikutnya
Untuk mempelajari logging lebih lanjut, termasuk cara mengekspor log ke BigQuery, Pub/Sub, atau Cloud Storage, dan cara mengonfigurasi metrik berbasis log untuk pemantauan dan pemberitahuan, baca dokumentasi Cloud Logging.
Untuk mempelajari kolom-kolom yang termasuk dalam entri log
httpRequest, lihatHttpRequest.