Ringkasan
Panduan ini memberikan pedoman tentang apa yang harus dipantau dan cara memantau deployment Apigee Hybrid. Fitur ini ditujukan untuk administrator cluster hybrid dan admin Org.
Jika Anda baru menggunakan pemantauan Google Cloud, lihat dokumentasi Google Cloud Monitoring untuk: Membuat diagram dengan Metrics Explorer dan Cara kerja pemberitahuan.
Cluster Apigee Hybrid menyediakan metrik SLI (Indikator Tingkat Layanan) untuk membantu Anda memahami performa aplikasi dan layanan sistem pada waktu tertentu. Anda dapat melihat daftar lengkap Metrik yang tersedia.
Google Cloud Monitoring menggunakan Jenis Resource untuk mengidentifikasi setiap metrik SLI. Ada tiga Jenis Resource umum yang digunakan untuk semua metrik Apigee Hybrid.
k8s_container
untuk metrik tingkat sistem.Proxy
untuk metrik Proxy API Apigee.Target
untuk metrik Target API Apigee
Jenis Resource memiliki label umum yang berlaku untuk semua metrik terkaitnya. Misalnya,
semua metrik dengan jenis resource k8s_container
memiliki label cluster_name
,
pod_name
, dan container_name
yang dapat digunakan, selain
label metrik. Kombinasi label Jenis Resource dan label metrik harus digunakan untuk
memantau kondisi dan performa cluster secara efektif.
Nilai minimum pemberitahuan: Seharusnya, nilai minimum pemberitahuan akan terlihat jelas dan dokumentasi yang diberikan akan mencantumkan nilai yang harus memicu pemberitahuan. Pada kenyataannya, Apigee kurang jelas dalam mendefinisikan performa yang dapat diterima dan pemanfaatan resource layanan dan infrastruktur yang berbahaya. Nilai batas pemberitahuan akan sangat bervariasi bergantung pada pola traffic tertentu dan perjanjian SLO/SLA.
Pengoptimalan dan penentuan nilai minimum Pemberitahuan adalah proses berkelanjutan karena dapat berubah seiring dengan penggunaan layanan dan infrastruktur. Gunakan nilai minimum Peringatan dan Kritis untuk notifikasi dan pemberitahuan.
- Sehat: Nilai kurang dari ambang batas peringatan.
- Mengkhawatirkan: Nilai lebih besar dari ambang batas peringatan, tetapi nilai lebih kecil dari ambang batas kritis.
- Kritis: Nilai > Nilai minimum kritis.
Pelanggan harus menggunakan alat yang disediakan untuk menentukan nilai minimum yang optimal, baik itu dasbor Cloud Monitoring yang dapat dibuat pelanggan dengan PromQL yang disediakan di bawah atau analisis Apigee, untuk mengidentifikasi seperti apa "normal" itu dan kemudian menyesuaikan nilai minimum pemberitahuan dengan tepat.
Pemantauan cluster hybrid dapat dikategorikan ke dalam empat grup umum yang berbeda, misalnya Traffic, Database, Bidang kontrol Apigee, dan infrastruktur pemantauan. Bagian berikut menjelaskan kelompok ini secara detail:
Traffic
Metrik SLI Proxy dan Target Apigee memberikan jumlah permintaan/respons dan latensi untuk Proxy dan Target API. Metrik SLI latensi Kebijakan Apigee memberikan latensi respons kebijakan. Metrik SLI ini memberikan cakupan untuk memantau traffic API Apigee.
Rasio Permintaan
Jumlah permintaan proxy
Kasus penggunaan: Gunakan proxy/request_count untuk memantau jumlah permintaan proxy. Diagram proxy/request_count menampilkan kecepatan permintaan untuk proxy. Diagram ini berguna untuk mengidentifikasi Proxy mana yang menerima rasio permintaan yang lebih tinggi, pola rasio permintaan, dan lonjakan panggilan permintaan yang tidak normal untuk proxy tertentu. Lonjakan abnormal yang tidak terduga dalam traffic API dapat menjadi masalah keamanan terkait bot atau serangan pada proxy API. Demikian pula, penurunan traffic secara keseluruhan yang besar dapat menunjukkan masalah pada klien atau konektivitas dari komponen upstream Apigee.
Jenis resource | Proxy |
Metrik | proxy/request_count |
Kelompokkan Berdasarkan | method dan semua label jenis resource Proxy |
Aggregator | sum |
Pertimbangan pemberitahuan | Peristiwa seperti peringatan lonjakan/penurunan request_count yang tidak normal |
Nilai minimum pemberitahuan | Tidak ada |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method) ( rate({"apigee.googleapis.com/proxy/request_count", monitored_resource="apigee.googleapis.com/Proxy"}[1m]) ) |
Jumlah permintaan target
Kasus penggunaan: Gunakan target/request_count untuk memantau jumlah permintaan target runtime Apigee. Diagram target/request_count menampilkan rasio permintaan yang diterima oleh target Apigee. Diagram ini mungkin berguna untuk melihat target mana yang mendapatkan rasio permintaan yang lebih tinggi, pola rasio permintaan, dan lonjakan panggilan permintaan yang tidak normal untuk target tertentu.
Jenis resource | Target |
Metrik | target/request_count |
Kelompokkan Berdasarkan | method dan semua label jenis resource Target |
Aggregator | sum |
Pertimbangan pemberitahuan | Peristiwa seperti peringatan lonjakan/penurunan request_count yang tidak normal |
Nilai minimum pemberitahuan | Tidak ada |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method, type, endpoint) ( rate({"apigee.googleapis.com/target/request_count", monitored_resource="apigee.googleapis.com/Target"}[1m]) ) |
Tingkat Error
Jumlah respons error proxy
Kasus penggunaan: Gunakan proxy/response_count untuk memantau rasio respons error proxy. Diagram proxy/response_count menampilkan kecepatan permintaan untuk Proxy API. Diagram ini berguna untuk memahami proxy mana yang mendapatkan rasio error permintaan yang lebih tinggi atau lonjakan error yang tidak normal dalam panggilan permintaan untuk proxy tertentu.
Jenis resource | Proxy |
Metrik | proxy/response_count |
Filter Menurut | response_code != 200
|
Kelompokkan Berdasarkan | method, response_code , fault_code ,
fault_source , apigee_fault ,
dan semua label jenis resource Proxy |
Aggregator | sum |
Pertimbangan pemberitahuan | Rasio error respons Proxy: Total error respons / Total jumlah respons.
|
Nilai minimum pemberitahuan | Bergantung pada SLO untuk penginstalan. Penginstalan produksi dan non-produksi mungkin memiliki nilai minimum yang berbeda. Misalnya: Untuk produksi, picu notifikasi peristiwa jika rasio error 500 respons proxy adalah 5% selama 5 menit. |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method, response_code, fault_code, fault_source, apigee_fault) ( rate({"apigee.googleapis.com/proxy/response_count", monitored_resource="apigee.googleapis.com/Proxy", response_code!="200"}[1m]) ) |
|
Contoh PromQL kebijakan Pemberitahuan operasi Google Cloud:
100 * ( sum by (method, org, apigee_fault, location, resource_container, env, proxy_name, fault_code, fault_source) ({"apigee.googleapis.com/proxy/response_count", monitored_resource="apigee.googleapis.com/Proxy", response_code="500"}) / sum by (method, org, apigee_fault, location, resource_container, env, proxy_name, fault_code, fault_source) ({"apigee.googleapis.com/proxy/response_count", monitored_resource="apigee.googleapis.com/Proxy"}) ) > 5 |
Jumlah respons error target
Kasus penggunaan: Gunakan target/response_count untuk memantau rasio respons error Target API. Diagram target/response_count menampilkan kecepatan permintaan dari Target API. Diagram ini dapat berguna untuk mengidentifikasi target mana yang mendapatkan rasio permintaan yang lebih tinggi atau lonjakan error yang tidak normal dalam panggilan permintaan.
Jenis resource | Target |
Metrik | target/response_count |
Filter Menurut | response_code != 200
|
Kelompokkan Berdasarkan | method dan semua label jenis resource Target |
Aggregator | sum |
Pertimbangan pemberitahuan | Rasio error respons Proxy, misalnya: Total error respons / Total jumlah respons.
|
Nilai minimum pemberitahuan | Bergantung pada SLO untuk penginstalan. Misalnya: Untuk produksi, picu notifikasi peristiwa jika rasio error respons target adalah 5% selama 3 menit. |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method, type, endpoint, response_code) ( rate({"apigee.googleapis.com/target/response_count", monitored_resource="apigee.googleapis.com/Target", response_code!="200"}[1m]) ) |
Latensi
Latensi proxy
Kasus penggunaan: Gunakan proxy/latencies untuk memantau latensi semua respons proxy API terhadap permintaan. Diagram proxy/latensi dapat berguna untuk mengidentifikasi latensi di proxy API Apigee terhadap latensi permintaan proxy API secara keseluruhan.
Jenis resource | Proxy |
Metrik | proxy/latensi |
Kelompokkan Berdasarkan | method dan semua label jenis resource Proxy |
Aggregator | p99 (persentil ke-99) |
Pertimbangan pemberitahuan | Nilai persentil latensi p99 yang tinggi. |
Nilai minimum pemberitahuan | Bergantung pada SLO untuk penginstalan. Misalnya: Untuk produksi, picu notifikasi peristiwa, Jika nilai persentil latensi p99 proxy adalah 5 detik selama 5 menit. |
Kueri PromQL dasbor Cloud Monitoring:
histogram_quantile( 0.99, sum by (le, method) ( rate({"apigee.googleapis.com/proxy/latencies/bucket", monitored_resource="apigee.googleapis.com/Proxy"}[1m]) ) ) |
Latensi target
Kasus penggunaan: Gunakan target/latencies untuk memantau latensi semua respons target proxy API terhadap permintaan. Diagram target/latensi mengidentifikasi total waktu yang dibutuhkan target proxy API Apigee untuk merespons permintaan. Nilai ini tidak mencakup overhead proxy API Apigee.
Jenis resource | Target |
Metrik | target/latencies |
Kelompokkan Berdasarkan | method, persentil, dan semua label jenis resource Target |
Aggregator | p99 (persentil ke-99) |
Pertimbangan pemberitahuan | Nilai persentil latensi p99 yang tinggi. |
Nilai minimum pemberitahuan | Bergantung pada SLO untuk penginstalan. Misalnya: Untuk produksi, picu notifikasi peristiwa, Jika nilai persentil latensi p99 target adalah 5 detik selama 5 menit. |
Kueri PromQL dasbor Cloud Monitoring:
histogram_quantile( 0.99, sum by (le, method) ( rate({"apigee.googleapis.com/target/latencies/bucket", monitored_resource="apigee.googleapis.com/Target"}[1m]) ) ) |
Database
Cassandra
Layanan database Apigee Cassandra memiliki beberapa metrik SLI Cassandra. Metrik SLI ini dapat memberikan pemantauan yang komprehensif untuk layanan Apigee Cassandra. Setidaknya, bersama dengan penggunaan resource Cassandra (CPU, Mem, dan volume disk), latensi permintaan baca dan tulis klien harus dipantau untuk mengetahui kondisi layanan Cassandra.
Frekuensi permintaan baca Cassandra
Kasus penggunaan: Metrik SLI cassandra/clientrequest_rate (dengan scope=Read) memberikan insight tentang kecepatan rata-rata permintaan baca layanan Cassandra pada waktu tertentu. Metrik ini membantu memahami tren tingkat aktivitas permintaan baca klien.
Jenis resource | k8s_container |
Metrik | cassandra/clientrequest_rate |
Filter Menurut | scope = Read dan unit = OneMinuteRate |
Kelompokkan Berdasarkan | scope, unit, dan semua label jenis resource k8s_container |
Aggregator | sum |
Pertimbangan pemberitahuan | Untuk potensi masalah atau perubahan signifikan dalam pola kueri klien; misalnya, lonjakan atau penurunan tiba-tiba dan tidak terduga dalam rasio permintaan baca. |
Nilai minimum pemberitahuan | Tidak ada |
Kueri PromQL dasbor Cloud Monitoring:
sum by (scope, unit) ( avg_over_time({"apigee.googleapis.com/cassandra/clientrequest_latency", monitored_resource="k8s_container", scope="Read", unit="OneMinuteRate" }[1m]) ) |
Kecepatan permintaan tulis Cassandra
Kasus penggunaan: Metrik SLI cassandra/clientrequest_rate (dengan scope=Write) memberikan insight tentang kecepatan rata-rata permintaan penulisan layanan Cassandra pada waktu tertentu. Metrik ini membantu memahami tren tingkat aktivitas permintaan penulisan klien.
Jenis resource | k8s_container |
Metrik | cassandra/clientrequest_rate |
Filter Menurut | scope = Read dan unit = OneMinuteRate |
Kelompokkan Berdasarkan | scope, unit, dan semua label jenis resource k8s_container |
Aggregator | sum |
Pertimbangan pemberitahuan | Untuk potensi masalah atau perubahan signifikan dalam pola kueri klien; misalnya, lonjakan atau penurunan permintaan penulisan yang tiba-tiba dan tidak terduga yang memerlukan penyelidikan lebih lanjut. |
Nilai minimum pemberitahuan | Tidak ada |
Kueri PromQL dasbor Cloud Monitoring:
sum by (scope, unit) ( avg_over_time({"apigee.googleapis.com/cassandra/clientrequest_latency", monitored_resource="k8s_container", scope="Write", unit="OneMinuteRate" }[1m]) ) |
Latensi permintaan baca Cassandra
Kasus penggunaan: Metrik SLI cassandra/clientrequest_latency (dengan scope=Read) memberikan latensi permintaan baca layanan Cassandra (pada persentil ke-99, persentil ke-95, atau persentil ke-75). Metrik ini membantu tampilan keseluruhan performa Cassandra dan dapat menunjukkan perubahan apa pun dalam pola penggunaan atau masalah yang muncul seiring waktu.
Jenis resource | k8s_container |
Metrik | cassandra/clientrequest_latency |
Filter Menurut | scope = Read dan unit = 99thPercentile |
Kelompokkan Berdasarkan | scope, unit, dan semua label jenis resource k8s_container |
Aggregator | sum |
Pertimbangan pemberitahuan | Jika SLI latensi permintaan baca secara konsisten menunjukkan tren latensi persentil ke-99 yang terus meningkat. |
Nilai minimum pemberitahuan | Bergantung pada SLO Anda untuk layanan Cassandra. Misalnya: Di produksi, picu notifikasi peristiwa jika nilai clientrequest_latency 99thPercentile adalah 5 detik selama 3 menit |
Kueri PromQL dasbor Cloud Monitoring:
sum by (scope, unit) ( avg_over_time({"apigee.googleapis.com/cassandra/clientrequest_latency", monitored_resource="k8s_container", scope="Read", unit="99thPercentile" }[1m]) ) |
Latensi permintaan tulis Cassandra
Kasus penggunaan: Metrik SLI cassandra/clientrequest_latency (dengan scope=Write) memberikan latensi permintaan tulis layanan Cassandra (pada persentil ke-99, persentil ke-95, atau persentil ke-75). Metrik ini membantu tampilan keseluruhan performa Cassandra dan dapat menunjukkan perubahan pola penggunaan atau masalah yang muncul seiring waktu.
Jenis resource | k8s_container |
Metrik | cassandra/clientrequest_latency |
Filter Menurut | scope = Write dan unit = 99thPercentile |
Kelompokkan Berdasarkan | scope, unit, dan semua label jenis resource k8s_container |
Aggregator | sum |
Pertimbangan pemberitahuan | Jika SLI latensi permintaan tulis secara konsisten menunjukkan tren latensi persentil ke-99 yang terus meningkat. |
Nilai minimum pemberitahuan | Bergantung pada SLO Anda untuk layanan Cassandra. Misalnya: di produksi, picu notifikasi peristiwa jika nilai clientrequest_latency 99thPercentile penulisan adalah 5 detik selama 3 menit |
Kueri PromQL dasbor Cloud Monitoring:
sum by (scope, unit) ( avg_over_time({"apigee.googleapis.com/cassandra/clientrequest_latency", monitored_resource="k8s_container", scope="Write", unit="99thPercentile" }[1m]) ) |
Bidang kontrol Apigee
Metrik SLI layanan Apigee Synchronizer memberikan jumlah dan latensi permintaan dan respons antara bidang kontrol Apigee dan bidang runtime Hybrid. Instance sinkronisasi yang berjalan di bidang runtime diharapkan melakukan polling bidang kontrol secara rutin, mendownload kontrak, dan menyediakannya untuk instance runtime lokal.
Rasio permintaan
Jumlah permintaan upstream
Kasus penggunaan: Metrik upstream/request_count menunjukkan jumlah permintaan yang dibuat oleh layanan Synchronizer ke bidang kontrol Apigee.
Jenis resource | k8s_container |
Metrik | upstream/request_count |
Filter Menurut | container_name = apigee-synchronizer dan type = CONTRACT |
Kelompokkan Berdasarkan | method, type, container_name, dan semua jenis resource k8s_container label |
Aggregator | sum |
Pertimbangan pemberitahuan | Gunakan ini untuk mendeteksi anomali traffic, seperti lonjakan request_count yang tidak normal atau pemberitahuan penurunan. |
Nilai minimum pemberitahuan | Tidak ada |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method, type, container_name) ( rate({"apigee.googleapis.com/upstream/request_count", monitored_resource="k8s_container", container_name="apigee-synchronizer", type="CONTRACT" }[1m]) ) |
Tingkat error
Jumlah respons upstream
Kasus penggunaan: Metrik SLI upstream/response_count memberikan jumlah respons yang diterima layanan Sinkronisasi dari bidang kontrol Apigee. Diagram ini dapat berguna untuk mengidentifikasi masalah konektivitas atau konfigurasi antara bidang Runtime Apigee Hybrid dan Bidang kontrol.
Jenis resource | k8s_container |
Metrik | upstream/request_count |
Filter Menurut | method, response_type, container_name, dan semua jenis resource k8s_container label |
Kelompokkan Berdasarkan | |
Aggregator | sum |
Pertimbangan pemberitahuan | Jika ada error dalam metrik upstream/response_count dengan kode respons non-200 yang ditampilkan dari Panel kontrol Apigee, maka diperlukan penyelidikan lebih lanjut terhadap error tersebut. |
Nilai minimum pemberitahuan | Bergantung pada SLO Anda untuk layanan Cassandra. Misalnya: dalam produksi, picu notifikasi peristiwa jika Synchronizer mengalami lebih dari satu error response_code setiap tiga menit. |
Kueri PromQL dasbor Cloud Monitoring:
sum by (method, response_code, type, container_name) ( rate({"apigee.googleapis.com/upstream/response_count", monitored_resource="k8s_container", container_name="apigee-synchronizer", response_code!="200" type="CONTRACT" }[1m]) ) |
Infrastruktur
GKE dan platform Kubernetes lainnya menyediakan metrik SLI tingkat sistem. Label metrik SLI dapat difilter dan dikelompokkan untuk memantau penampung tertentu dan penggunaan resource-nya. Untuk memantau kondisi dan ketersediaan infrastruktur cluster Apigee Runtime, admin cluster dapat memantau penggunaan resource umum container dan pod seperti CPU, Mem, disk, dan jumlah mulai ulang container. Ikuti dokumentasi GKE untuk mengetahui detail selengkapnya tentang metrik dan label yang tersedia.
Tabel berikut mencantumkan beberapa layanan dan penampung yang dapat Anda pantau untuk setiap layanan.
Nama Layanan | Nama Penampung |
---|---|
Cassandra | apigee-cassandra |
Message Processor(MP) | apigee-runtime |
Synchronizer | apigee-synchronizer |
Telemetri | apigee-prometheus-app apigee-prometheus-proxy apigee-prometheus-agg apigee-stackdriver-exporter |
Container / Pod
Jumlah mulai ulang
Kasus penggunaan: Metrik SLI sistem kubernetes.io/container/restart_count memberikan jumlah berapa kali container telah dimulai ulang. Diagram ini dapat berguna untuk mengidentifikasi apakah container sering mengalami error/dimulai ulang. Container layanan tertentu dapat difilter berdasarkan label metrik untuk pemantauan container layanan tertentu.
Berikut ini menunjukkan penggunaan metrik kubernetes.io/container/restart_count untuk container Cassandra. Anda dapat menggunakan metrik ini untuk semua penampung dalam tabel di atas.
Jenis resource | k8s_container |
Metrik | kubernetes.io/container/restart_count |
Filter Menurut | namespace_name = apigee dan container_name =~ .*cassandra.* |
Kelompokkan Berdasarkan | cluster_name, namespace_name, pod_name, container_name, dan semua label jenis resource k8s_container |
Aggregator | sum |
Pertimbangan pemberitahuan | Jika penampung sering dimulai ulang, penyelidikan lebih lanjut diperlukan untuk mengetahui penyebab utamanya. Ada beberapa alasan mengapa penampung dapat dimulai ulang, seperti OOMKilled ,
disk data penuh, dan masalah konfigurasi, serta beberapa alasan lainnya. |
Nilai minimum pemberitahuan | Bergantung pada SLO untuk penginstalan. Misalnya: Untuk produksi, picu notifikasi peristiwa, jika penampung dimulai ulang lebih dari 5 kali dalam waktu 30 menit. |
Kueri PromQL dasbor Cloud Monitoring:
sum by (cluster_name, namespace_name, pod_name, container_name) ( rate({"kubernetes.io/container/restart_count", monitored_resource="k8s_container", container_name=~".*cassandra.*", namespace_name="apigee" }[1m]) ) |