איסוף והצגה של מדדים של cAdvisor/Kubelet

בדף הזה מוסבר איך להגדיר אשכול Google Kubernetes Engine‏ (GKE) כדי לשלוח קבוצה נבחרת של מדדי cAdvisor/Kubelet ל-Cloud Monitoring באמצעות השירות המנוהל של Google Cloud ל-Prometheus. בנוסף, בדף הזה מוסבר איך המדדים האלה מעוצבים כשהם נכתבים ב-Monitoring, ואיך לשלוח שאילתות לגבי מדדים.

הקבוצה שנבחרה של מדדים היא קבוצת משנה של מדדי cAdvisor/Kubelet שמוטמעים בכל פריסת Kubernetes כברירת מחדל, והיא כוללת מדדים שקשורים לצמצום נפח ההטמעה ולעלויות הנלוות.

לפני שמתחילים

לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

דרישות

כדי לאסוף מדדים של cAdvisor/Kubelet, אשכול GKE צריך לעמוד בדרישות הבאות:

  • האשכול צריך להריץ GKE בגרסה ‎1.29.3-gke.1093000 ואילך. חבילות cAdvisor/Kubelet מופעלות כברירת מחדל כשיוצרים אשכול שמריץ גרסה ‎1.29.3-gke.1093000 ואילך.
  • צריך להפעיל את מדדי המערכת באשכול.
  • בקטע הזה מוסבר איך להפעיל איסוף מנוהל של השירות המנוהל של Google Cloud ל-Prometheus באשכול. האיסוף המנוהל של השירות המנוהל של Google Cloud ל-Prometheus מופעל כברירת מחדל באשכולות חדשים.

הגדרת איסוף מדדים של cAdvisor/Kubelet

אפשר להפעיל מדדים של cAdvisor/Kubelet באשכול GKE קיים באמצעות מסוף Google Cloud ,‏ ה-CLI של gcloud או Terraform.

המסוף

כדי להגדיר מדדים של cAdvisor/Kubelet מהכרטיסייה פרטים של האשכול:

  1. נכנסים לדף Kubernetes clusters במסוף Google Cloud .

    כניסה אל Kubernetes clusters

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Kubernetes Engine.

  2. לוחצים על שם האשכול.

  3. בשורה Features עם התווית Cloud Monitoring, לוחצים על סמל העריכה.

  4. בתיבת הדו-שיח Edit Cloud Monitoring שמופיעה, מוודאים שהאפשרות Enable Cloud Monitoring מסומנת.

  5. בתפריט הנפתח Components, בוחרים את הרכיבים cAdvisor/Kubelet שמהם רוצים לאסוף מדדים:

    • cAdvisor
    • Kubelet
  6. לוחצים על OK.

  7. לוחצים על שמירת השינויים.

gcloud

כדי לאסוף מדדים, צריך לעדכן את האשכול:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --enable-managed-prometheus \
    --monitoring=SYSTEM,CADVISOR,KUBELET

מחליפים את מה שכתוב בשדות הבאים:

הערכים שמועברים לדגל monitoring מחליפים כל הגדרה קודמת.

Terraform

כדי להגדיר את איסוף המדדים של cAdvisor/Kubelet באמצעות Terraform, אפשר לעיין בבלוק monitoring_config ב- Terraform registry ל-google_container_cluster. מידע כללי על שימוש ב- Google Cloud עם Terraform זמין במאמר Terraform עם Google Cloud.

פורמט המדד

כל המדדים של Kubernetes cAdvisor/Kubelet שנכתבים ל-Cloud Monitoring משתמשים בסוג המשאב prometheus_target. לכל שם של מדד יש קידומת prometheus.googleapis.com/ וסיומת שמציינת את סוג המדד של Prometheus, כמו /gauge,‏ /histogram או /counter. אחרת, כל שם של מדד זהה לשם המדד שמוצג על ידי Kubernetes בקוד פתוח.

ייצוא מ-Cloud Monitoring

אפשר לייצא את מדדי cAdvisor/Kubelet מ-Cloud Monitoring באמצעות Cloud Monitoring API. מכיוון שכל המדדים של cAdvisor/Kubelet מוזנים באמצעות השירות המנוהל של Google Cloud ל-Prometheus, אפשר לשלוח שאילתות על המדדים של cAdvisor/Kubelet באמצעות שפת השאילתות של Prometheus‏ (PromQL). אפשר גם לשלוח שאילתות לגביהם באמצעות שפת שאילתת מעקב (MQL).

שאילתות לגבי מדדים

כששולחים שאילתות על מדדי cAdvisor/Kubelet, השם שבו משתמשים תלוי בשימוש ב-PromQL או בתכונות שמבוססות על Cloud Monitoring, כמו MQL או הכלי Metrics Explorer (ממשק מבוסס-תפריט).

בטבלאות הבאות של מדדי cAdvisor/Kubelet מוצגות שתי גרסאות של כל שם מדד:

  • שם המדד ב-PromQL: כשמשתמשים ב-PromQL בדפי Cloud Monitoring במסוף Google Cloud או בשדות PromQL ב-Cloud Monitoring API, צריך להשתמש בשם המדד ב-PromQL.
  • שם המדד ב-Cloud Monitoring כשמשתמשים בתכונות אחרות של Cloud Monitoring, צריך להשתמש בשם המדד ב-Cloud Monitoring שמופיע בטבלאות שבהמשך. לפני השם הזה צריך להוסיף את הקידומת prometheus.googleapis.com/, שלא מופיעה ברשומות שבטבלה.

מדדי cAdvisor

לשמות המדדים של Cloud Monitoring בטבלה הזו צריך להוסיף את הקידומת prometheus.googleapis.com/. התחילית הזו הושמטה מהערכים בטבלה.

שם המדד ב-PromQL
שם המדד ב-Cloud Monitoring
‫Kind, Type, Unit
Monitored resources
Required GKE version
תיאור
תוויות
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר המרווחים של תקופת האכיפה שחלפו. נדגמים כל 30 שניות.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מרווחי הזמן של תקופת ההגבלה. נדגמים כל 30 שניות.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.29.3-gke.1093000
זמן מצטבר של ה-CPU שנוצל. נדגמים כל 30 שניות.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
מספר הבייטים שמאגר התגים יכול לצרוך במערכת הקבצים הזו. נדגמים כל 30 שניות.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של קריאות שהושלמו. נדגמים כל 30 שניות.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של בייטים שנקראו. נדגמים כל 30 שניות.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של קריאות שהושלמו. נדגמים כל 30 שניות.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
‫Number of bytes that are consumed by the container on this filesystem. נדגמים כל 30 שניות.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של שניות שהוקדשו לכתיבה. נדגמים כל 30 שניות.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
המספר המצטבר של בייטים שנכתבו. נדגמים כל 30 שניות.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של פעולות כתיבה שהושלמו. נדגמים כל 30 שניות.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
גודל ה-RSS. נדגמים כל 30 שניות.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
הקבוצה הנוכחית של דפי עבודה. נדגמים כל 30 שניות.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של בייטים שהתקבלו. נדגמים כל 30 שניות.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
המספר המצטבר של חבילות הנתונים שהושמטו במהלך הקבלה. נדגמים כל 30 שניות.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של מנות שהתקבלו. נדגמים כל 30 שניות.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVE, DOUBLE, By
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של בייטים שהועברו. נדגמים כל 30 שניות.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
המספר המצטבר של חבילות נתונים שהושמטו במהלך השידור. נדגמים כל 30 שניות.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של חבילות נתונים שהועברו. נדגמים כל 30 שניות.

network
container_pressure_cpu_stalled_seconds_total
container_pressure_cpu_stalled_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שבו המשימות נתקעו ב-CPU (מלא). נדגמים כל 30 שניות.

cpu
container_pressure_cpu_waiting_seconds_total
container_pressure_cpu_waiting_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שהמשימות המתינו למעבד (חלק מהמשימות). נדגמים כל 30 שניות.

cpu
container_pressure_io_stalled_seconds_total
container_pressure_io_stalled_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שבו המשימות נתקעו ב-I/O (מלא). נדגמים כל 30 שניות.

diskIO
container_pressure_io_waiting_seconds_total
container_pressure_io_waiting_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שהמשימות המתינו לקלט/פלט (חלק מהמשימות). נדגמים כל 30 שניות.

diskIO
container_pressure_memory_stalled_seconds_total
container_pressure_memory_stalled_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שבו המשימות נתקעו בזיכרון (מלא). נדגמים כל 30 שניות.

memory
container_pressure_memory_waiting_seconds_total
container_pressure_memory_waiting_seconds_total/counter
CUMULATIVE, DOUBLE, s
prometheus_target
1.37
הזמן הכולל בשניות שהמשימות המתינו לזיכרון (חלק מהמשימות). נדגמים כל 30 שניות.

memory

מדדי Kubelet

לשמות המדדים של Cloud Monitoring בטבלה הזו צריך להוסיף את הקידומת prometheus.googleapis.com/. התחילית הזו הושמטה מהערכים בטבלה.

שם המדד ב-PromQL
שם המדד ב-Cloud Monitoring
‫Kind, Type, Unit
Monitored resources
Required GKE version
תיאור
תוויות
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מדד של ה-TTL (time-to-live) הקצר ביותר של אישור ההגשה של Kubelet. הערך הוא מספר השניות עד שתוקף האישור יפוג (שלילי אם התוקף כבר פג). אם אישור ההצגה לא תקין או לא בשימוש, הערך יהיה +INF. נדגמים כל 30 שניות.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
שם הצומת. הספירה היא תמיד 1. נדגמים כל 30 שניות.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVE, DISTRIBUTION, s
prometheus_target
1.29.3-gke.1093000
משך הזמן בשניות עד להוספה מחדש של יחידות PLEG לרשימה. נדגמים כל 30 שניות.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVE, DISTRIBUTION, s
prometheus_target
1.29.3-gke.1093000
משך הזמן בשניות לסנכרון של פוד יחיד. פירוט לפי סוג הפעולה: יצירה, עדכון או סנכרון. נדגמים כל 30 שניות.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מאגרי התגים שפועלים כרגע. נדגמים כל 30 שניות.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר הפודים שיש להם ארגז חול פעיל של פוד. נדגמים כל 30 שניות.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר מצטבר של פעולות בזמן ריצה לפי סוג הפעולה. נדגמים כל 30 שניות.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר הבייטים הזמינים בנפח האחסון. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
הקיבולת של עוצמת הקול בבייטים. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
המספר המקסימלי של צמתי inode בנפח האחסון. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר ה-inodes החופשיים בנפח האחסון. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר ה-inodes שנעשה בהם שימוש בנפח האחסון. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGE, DOUBLE, 1
prometheus_target
1.29.3-gke.1093000
מספר הבייטים שהיו בשימוש בנפח האחסון. נדגמים כל 30 שניות.

namespace
persistentvolumeclaim

המאמרים הבאים