שינוי אוטומטי של גודל ה-Pods באמצעות מדדים מותאמים אישית או חיצוניים

במסמך הזה מוסבר איך לאחזר מדדים מותאמים אישית ומדדים חיצוניים ולהשתמש בהם כדי להרחיב את ה-Pods באופן אופקי.

כדי לאחזר את המדדים, אפשר להשתמש במתאם מדדים מנוהל של GKE. הפתרון המנוהל הזה זמין גם למדדים ב-Cloud Monitoring שאפשר לשלוח אליהם שאילתות באמצעות PromQL, וגם למדדים מסוימים בהתאמה אישית של Pod שנחשפים בנקודת קצה (endpoint) של HTTP בפורמט Prometheus.

לאחר מכן, המידרוג האוטומטי של עומסי העבודה יכול להשתמש בנתונים האלה כדי להתאים את קנה המידה של עומסי העבודה בצורה יעילה יותר. לדוגמה, אתם יכולים להשתמש בתכונה הזו כדי לעקוב אחרי עומק התור או ניצול המטמון, ואז לאפשר למידרוג אוטומטי להגדיל או להקטין את מספר ה-Pods. מהדוגמה של vLLM, מדד שיכול להיות שימושי למעקב אחרי ניצול הזיכרון הוא vllm:gpu_cache_usage_perc.

כחלופה למתאם המדדים המנוהל, כדי להתאים אוטומטית לעומס באמצעות מדד כלשהו, אפשר לאחזר את המדד על ידי הגדרה ידנית של מתאם מדדים לשליחת מדדים למידרוג אוטומטי. התהליך הזה כולל התקנה של מתאם צד שלישי, כמו Stackdriver Adapter, והגדרת הרשאות. לדוגמה, אפשר לעיין במדריך בנושא אופטימיזציה של שינוי גודל אוטומטי של Pod על סמך מדדים.

שאר המסמך מתמקד במתאם המדדים המנוהל.

אחזור מדדים

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

  • אפשר לאחזר באשכול מדדים מותאמים אישית של Pods שנוצרו על ידי Pods. אפשר להשתמש במדדים האלה להתאמה אוטומטית לעומס (automatic scaling) בלי להעביר את הנתונים דרך מערכת מעקב כמו Cloud Monitoring.
  • אפשר לאחזר מדדים מותאמים אישית של פודים שמאוחסנים ב-Cloud Monitoring באמצעות שאילתת PromQL. המדדים האלה מופקים על ידי Pods ומיוצאים ל-Cloud Monitoring, בדרך כלל באמצעות השירות המנוהל של Google Cloud ל-Prometheus. בהשוואה לשיטה הקודמת, הגישה הזו מאפשרת להשתמש בתכונות של PromQL, כמו חישוב אחוזונים או קריאת ערכים היסטוריים.
  • אפשר לאחזר מדדים חיצוניים מ-Cloud Monitoring באמצעות שאילתת PromQL.

אחרי שמביאים את המדד, מפנים אליו באובייקט HorizontalPodAutoscaler. מידע נוסף זמין בקטע שימוש במדדים ב-Horizontal Pod Autoscaler.

לסקירה כללית על שינוי גודל אוטומטי על סמך מדדים, אפשר לעיין במאמר מידע על שינוי גודל אוטומטי של עומסי עבודה על סמך מדדים.

אחזור מדדים מותאמים אישית באשכול

מדדים בהתאמה אישית מגיעים מהשירות או מהאפליקציה שאתם מפעילים. דוגמה למדדים שמוצגים מופיעה במאמר בנושא מדדים שמוצגים על ידי vLLM Engine.

דרישות

אלה הדרישות ל-Pods:

אלה הדרישות לגבי המדדים:

  • המדדים צריכים להיות מופקים על ידי רכיבי ה-Pod בעומס העבודה שמתבצעת בו שינוי גודל אוטומטי.
  • צריכה להיות גישה למדדים בנקודת קצה של HTTP. נתיב נקודת הקצה (endpoint) הוא כברירת מחדל /metrics.
  • הפורמט של המדדים צריך להיות בהתאם לתקן Prometheus.
  • יש תמיכה רק במדדי מד.
  • כברירת מחדל, אפשר לחשוף עד 50 מדדים ייחודיים לכל צומת. אם אתם צריכים לחשוף עוד מדדים, אתם יכולים לבקש כמות גדולה יותר של זיכרון נוסף.
  • אם אתם משתמשים בגרסת טרום-השקה של התכונה הזו בגרסה ‎1.36.4-gke.1247000 עד גרסה ‎1.37.0-gke.3100000 של GKE, חלים עליכם הדרישות הנוספות הבאות:
    • שמות התוויות בבוררי תוויות של Pod לא יכולים להכיל תווים מיוחדים. מותר להשתמש רק באותיות a-z (קטנות או גדולות), במספרים, במקפים ובקווים תחתונים.
    • כשמשתמשים בסינון שמבוסס על תוויות של מדדים, מפתח התווית צריך להתאים לביטוי הרגולרי ^[a-zA-Z_][a-zA-Z0-9_]* (להתחיל באות או בקו תחתון, ולהכיל רק אותיות, מספרים או קווים תחתונים).
    • אפשר לחשוף עד 20 מדדים ייחודיים לכל אשכול.

הגדרת המדד

  1. בוחרים מדד לחשיפה. אפשר לבחור כל מדד שמוצג בעומס העבודה, ושעומד בדרישות שמפורטות בקטע הקודם.

    אם עומס העבודה חושף כמה מדדים עם אותו שם אבל עם תוויות שונות, כדאי להוסיף מסנן תוויות כדי לוודא שרק מדד אחד נבחר.

  2. מוסיפים את המשאב המותאם אישית הבא, ומחליפים את הפרטים הספציפיים למדד ול-Pod שלכם:

    apiVersion: autoscaling.gke.io/v1beta1
    kind: AutoscalingMetric
    metadata:
      name: NAME
      namespace: NAMESPACE
    spec:
      metrics:
      - pod:
          selector:
            matchLabels:
              APP_LABEL_NAME: APP_LABEL_VALUE
          containers:
          - endpoint:
              port: METRIC_PORT
              path: METRIC_PATH
            metrics:
            - gauge:
                name: METRIC_NAME
                prometheusMetricName: METRIC_PROMETHEUS_NAME
    

    מחליפים את הערכים הבאים בהתאם לעומס העבודה:

    • ‫NAME: השם של אובייקט AutoscalingMetric.
    • ‫NAMESPACE: מרחב השמות שבו נמצאים ה-Pods.
    • ‫APP_LABEL_NAME ו-APP_LABEL_VALUE: שם התווית והערך שלה שתואמים ל-Pods שפולטים את המדד.
    • ‫METRIC_PORT: מספר היציאה.
    • ‫METRIC_PATH: הנתיב למדד. צריך לוודא שהנתיב שבו נעשה שימוש בשירות או באפליקציה הוא /metrics.
    • ‫METRIC_NAME: שם המדד שאתם חושפים. השם חייב להתאים לביטוי הרגולרי ^[a-z]([-a-z0-9]*[a-z0-9])?, ולא לכלול יותר מ-63 תווים. הביטוי הזה אומר שהתו הראשון חייב להיות אות קטנה, וכל התווים הבאים חייבים להיות מקפים, אותיות קטנות או ספרות. עם זאת, התו האחרון לא יכול להיות מקף.
    • אופציונלי: METRIC_PROMETHEUS_NAME: שם המדד של Prometheus כפי שהוא מוצג על ידי ה-Pod. אתם יכולים להשתמש בשדה הזה כדי לשנות את שם המדד, למשל, כי שם המדד שחשוף ל-Pod לא עומד במגבלות השמות שהוגדרו על ידי ה-autoscaler.

      מידע נוסף על הגבלות השמות מופיע בקטע מגבלות של התאמה אופקית של קבוצות Pod לעומס. אפשר גם לסנן מדדים באמצעות תוויות מדדים.

  3. מחילים את המניפסט באמצעות הפקודה הבאה:

    kubectl apply -f FILE_NAME_AUTOSCALING_METRIC.yaml
    

    מחליפים את FILE_NAME_AUTOSCALING_METRIC בשם של קובץ ה-YAML.

  4. מאמתים את הגדרת המדד ומאחזרים את שם המדד לשימוש באובייקט HorizontalPodAutoscaler:

    1. מריצים את הפקודה kubectl describe למשאב המותאם אישית AutoscalingMetric:

      kubectl describe autoscalingmetric NAME -n NAMESPACE
      

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

      • ‫NAME: השם של האובייקט AutoscalingMetric.
      • ‫NAMESPACE: מרחב השמות של האובייקט AutoscalingMetric.
    2. מעיינים בשדה Status. אם לא מופיעות שגיאות, האובייקט תקין.

    3. מעתיקים את השם בשדה HPA Name. זה השם שמוסיפים לאובייקט HorizontalPodAutoscaler. השם הזה מופיע בפורמט הבא: autoscaling.gke.io|NAME|METRIC_NAME.

המדד מוגדר עכשיו באובייקט AutoscalingMetric. כדי להשתמש במדד הזה לצורך שינוי אוטומטי של קנה המידה, צריך להפנות אליו באובייקט HorizontalPodAutoscaler. מידע נוסף זמין בקטע שימוש במדדים באובייקט HorizontalPodAutoscaler.

כשמוסיפים את המשאב המותאם אישית, המדד נדחף אל ה-API של שינוי גודל אוטומטי. המדד נקרא כל כמה שניות ונשלח למנגנון לשינוי גודל עומס העבודה באופן אוטומטי.

סינון מדדים באמצעות תוויות מדדים

אפשר לסנן מדדים באמצעות תוויות מדדים ב-GKE 1.36.0-gke.1759000 ואילך.

המדדים שמופקים מעומסי העבודה שלכם כוללים בדרך כלל תוויות. תוויות הן צמדי מפתח/ערך שמאפשרים להוסיף מאפיינים לערך. לדוגמה, מדד שסופר את מספר הבקשות לנקודת קצה של HTTP, לפי שיטה וסביבה, יכול להשתמש בתוויות כדי לציין את ההקשר הזה. דוגמה:

http_requests_total{method="GET", env="prod"} 11111
http_requests_total{method="PUT", env="staging"} 22222

אתם יכולים להשתמש במסנני תוויות כדי לוודא שהגדרת המדד תואמת בדיוק למדד אחד. לדוגמה, כדי לבחור רק את המדד הראשון בדוגמה הקודמת, משתמשים במפרט הבא למדד AutoscalingMetric gauge:

apiVersion: autoscaling.gke.io/v1beta1
kind: AutoscalingMetric
metadata:
  name: filter-sample
spec:
  # Several lines are omitted here.
      metrics:
      - gauge:
          name: http_requests_total
          filter:
            matchLabels:
              method: GET
              env: prod

המפתחות של צמדי המפתח/ערך matchLabels צריכים להתאים לביטוי הרגולרי ^[a-zA-Z_][a-zA-Z0-9_]*: כלומר, להתחיל באות או בקו תחתון, ולהכיל רק אותיות, מספרים או קווים תחתונים.

אחזור מדדים מותאמים אישית או חיצוניים מ-Cloud Monitoring

אתם יכולים לאחזר מדדים מ-Cloud Monitoring כדי לשנות את קנה המידה של עומסי העבודה. ‫GKE תומך באחזור של שני סוגי מדדים מ-Cloud Monitoring:

  • מדדים בהתאמה אישית: משתמשים בסוג הזה כדי להחיל תכונות של PromQL, כמו חישוב אחוזונים או קריאת ערכים היסטוריים, על המדדים שנוצרים על ידי עומסי העבודה באשכול.
  • מדדים חיצוניים: משתמשים בסוג הזה כדי לשנות את קנה המידה על סמך ישות מחוץ לאשכול, כמו מספר ההודעות הממתינות במינוי ל-Pub/Sub.

אחרת, אחזרו מדדים מותאמים אישית מהאשכול.

דרישות

  • ‫GKE בגרסה 1.36.2-gke.2771000 ואילך.
  • צריך לאחסן את המדדים ב-Cloud Monitoring. לדוגמה, אפשר להשתמש בשירות המנוהל של Google Cloud ל-Prometheus.
  • אפשר להשתמש בעד 100 מדדים לכל אשכול. המגבלה הזו היא הסכום הכולל של המדדים המותאמים אישית והמדדים החיצוניים.
  • המדדים ב-Cloud Monitoring צריכים להיות באותו Google Cloud פרויקט שבו נמצא האשכול שמתבצעת בו שינוי גודל אוטומטי.

הגדרת המדד

משתמשים בקובץ YAML כדי להגדיר את המדדים, כולל שאילתת PromQL ספציפית.

בוחרים אחת מההגדרות הבאות, בהתאם לשאלה אם אתם מאחזרים מדד בהתאמה אישית או מדד חיצוני:

  1. יוצרים אובייקט AutoscalingMetric ומגדירים את המדד לאחזור.

    מדד מותאם אישית (Pods)

    apiVersion: autoscaling.gke.io/v1beta1
    kind: AutoscalingMetric
    metadata:
      name: NAME
      namespace: NAMESPACE
    spec:
      metrics:
        - promql:
            name: METRIC_NAME
            query: PROMQL_QUERY
            type: Pods # Specifies that the metric is associated with Pods.
            # metricLabels are optional, default to the labels used by Google
            # Cloud Managed Service for Prometheus. The defaults are used
            # below.
            metricLabels:
              podName: "pod"
              namespace: "namespace"
              clusterName: "cluster"
              location: "location"
              projectId: "project_id"
    

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

    • ‫NAME: השם של אובייקט AutoscalingMetric.
    • ‫NAMESPACE: מרחב השמות של האובייקט AutoscalingMetric, שצריך להיות זהה למרחב השמות של עומס העבודה שרוצים לשנות את קנה המידה שלו.
    • ‫METRIC_NAME: השם של המדד שבו משתמש אובייקט HorizontalPodAutoscaler.
    • ‫PROMQL_QUERY: שאילתת PromQL ששולפת את המדד. שאילתת PromQL צריכה להחזיר וקטור עם רשומה אחת לכל Pod במשאב שמשנה את גודלו באופן אוטומטי – לדוגמה, רשומה אחת לכל Pod בפריסה.

    אפשר להגדיר יותר ממדד אחד במניפסט AutoscalingMetric יחיד על ידי הוספת רשומות promql נוספות למערך metrics.

    במניפסט הזה, חלים התנאים הבאים:

    • השדה type: Pods מציין שהמדדים מופקים על ידי Pods.
    • אופציונלי: השדות metricLabels הם שמות התוויות בתוצאת השאילתה של PromQL שמפרטת את פרטי המשאב (כמו שם ה-Pod, מרחב השמות או פרטי האשכול). המדד המותאם אישית שמופק על ידי Pod חייב לכלול תווית שתואמת לשדה podName, שמציינת לאיזה Pod המדד משויך. התווית הזו מוגדרת באופן אוטומטי כששולחים מדדים ל-Cloud Monitoring באמצעות השירות המנוהל של Google Cloud ל-Prometheus.

      אם השדות האלה לא מצוינים באובייקט AutoscalingMetric, המערכת משתמשת בערכי ברירת המחדל הבאים כדי למצוא את המידע בתווית. ערכי ברירת המחדל האלה הם אותם שמות תוויות שמוגדרים על ידי השירות המנוהל של Google Cloud ל-Prometheus:

      • podName: "pod"
      • namespace: "namespace"
      • clusterName: "cluster"
      • location: "location"
      • projectId: "project_id"

    מדד חיצוני

    apiVersion: autoscaling.gke.io/v1beta1
    kind: AutoscalingMetric
    metadata:
      name: NAME
      namespace: NAMESPACE
    spec:
      metrics:
        - promql:
            name: METRIC_NAME
            query: PROMQL_QUERY
            type: External  # Optional, default is 'External'
    

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

    • ‫NAME: השם של אובייקט AutoscalingMetric.
    • ‫NAMESPACE: מרחב השמות של האובייקט AutoscalingMetric, שצריך להיות זהה למרחב השמות של עומס העבודה שרוצים לשנות את קנה המידה שלו.
    • ‫METRIC_NAME: שם המדד שבו משתמש ה-HPA.
    • ‫PROMQL_QUERY: שאילתת PromQL ששולחת שאילתה למדד. השאילתה ב-PromQL צריכה להחזיר ערך סקלרי או וקטור עם רשומה ייחודית.
  2. בודקים את שאילתות PromQL ב-Cloud Monitoring כדי לוודא שהן מחזירות את המדדים הצפויים. קל יותר לאמת את השאילתות בזמן ההגדרה שלהן מאשר לפתור בעיות בהתנהגויות לא צפויות בשלב מאוחר יותר.

    כדי לאמת את השאילתות, אפשר לעיין בקטע הבא: אימות שאילתות PromQL.

  3. מחילים את המניפסט AutoscalingMetric על האשכול:

    kubectl apply -f MANIFEST_FILE.yaml
    

    מחליפים את MANIFEST_FILE בשם של קובץ ה-YAML.

  4. מאמתים את הגדרת המדד ומאחזרים את שם המדד שבו רוצים להשתמש לאובייקט HorizontalPodAutoscaler:

    1. מריצים את הפקודה kubectl describe למשאב המותאם אישית AutoscalingMetric:

      kubectl describe autoscalingmetric NAME -n NAMESPACE
      

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

      • ‫NAME: השם של האובייקט AutoscalingMetric.
      • ‫NAMESPACE: מרחב השמות של האובייקט AutoscalingMetric.
    2. מעיינים בשדה Status. אם לא מופיעות שגיאות, האובייקט תקין.

    3. מעתיקים את השם בשדה HPA Name. זה השם שמוסיפים לאובייקט HorizontalPodAutoscaler. השם הזה מופיע בפורמט הבא: autoscaling.gke.io|NAME|METRIC_NAME.

המדד מוגדר עכשיו באובייקט AutoscalingMetric. כדי להשתמש במדד הזה לצורך שינוי אוטומטי של קנה המידה, צריך להפנות אליו באובייקט HorizontalPodAutoscaler. מידע נוסף זמין בקטע שימוש במדדים באובייקט HorizontalPodAutoscaler.

שימוש במדדים באובייקט HorizontalPodAutoscaler

  1. יוצרים אובייקט HorizontalPodAutoscaler. סוג המדד HorizontalPodAutoscaler צריך להיות זהה לערך בשדה type שמוגדר במשאב המותאם אישית AutoscalingMetric. בוחרים אחת מההגדרות הבאות בהתאם לסוג המדד:

    אפשרות 1: מדד חיצוני

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: HPA_NAME
      namespace: NAMESPACE
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: DEPLOYMENT_NAME
      minReplicas: MIN_REPLICAS
      maxReplicas: MAX_REPLICAS
      metrics:
        - type: External
          external:
            metric:
              name: autoscaling.gke.io|NAME|METRIC_NAME
            target:
              type: AverageValue
              averageValue: AVERAGE_VALUE
    

    אפשרות 2: המדד Pods

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: HPA_NAME
      namespace: NAMESPACE
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: DEPLOYMENT_NAME
      minReplicas: MIN_REPLICAS
      maxReplicas: MAX_REPLICAS
      metrics:
        - type: Pods
          pods:
            metric:
              name: autoscaling.gke.io|NAME|METRIC_NAME
            target:
              type: AverageValue  # This is the only supported target type
              averageValue: AVERAGE_VALUE
    

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

    • ‫HPA_NAME: השם של האובייקט HorizontalPodAutoscaler.
    • ‫NAMESPACE: מרחב השמות של האובייקט HorizontalPodAutoscaler, שצריך להתאים למרחב השמות של עומס העבודה ושל המשאב AutoscalingMetric.
    • ‫DEPLOYMENT_NAME: שם ה-Deployment של עומס העבודה שרוצים לשנות את קנה המידה שלו.
    • ‫MIN_REPLICAS: המספר המינימלי של Pods פועלים.
    • ‫MAX_REPLICAS: המספר המקסימלי של פודים פעילים.
    • ‫NAME: השם של המשאב המותאם אישית AutoscalingMetric שיצרתם.
    • ‫METRIC_NAME: השם של המדד שמוגדר במשאב AutoscalingMetric.
    • ‫AVERAGE_VALUE: ערך היעד של המדד שבו המידרוג האוטומטי משנה את קנה המידה של עומס העבודה.

    כשיוצרים אובייקט HorizontalPodAutoscaler משלכם, חשוב לשים לב לנקודות הבאות:

    • האובייקטים AutoscalingMetric,‏ Deployment ו-HorizontalPodAutoscaler צריכים להיות באותו מרחב שמות.
    • בדוגמה הקודמת נעשה שימוש בצמד השדה והערך type: AverageValue. שימו לב: אפשר להשתמש ב-type: Value גם למדדים חיצוניים.
    • הדוגמה הקודמת משתמשת באובייקט Deployment רק כדוגמה. אפשר גם להגדיר התאמה אוטומטית לעומס לכל אובייקט שנתמך על ידי אובייקטים של HorizontalPodAutoscaler, כמו אובייקט ReplicaSet.
  2. מחילים את מניפסט ה-HorizontalPodAutoscaler:

    kubectl apply -f HPA_MANIFEST_FILE.yaml
    

    מחליפים את HPA_MANIFEST_FILE בשם של קובץ ה-YAML.

פתרון בעיות במדדים שנשלפים לצורך שינוי גודל אוטומטי

כדי לפתור בעיות בשליפת מדדים, אפשר לעיין ביומנים או בסטטוס של המשאב המותאם אישית AutoscalingMetric.

למתאם המדדים של ההתאמה האוטומטית לעומס יש אפס רפליקות

כשבודקים את הפריסה של autoscaling-metrics-adapter ב-kube-system, יכול להיות שתראו שאין לה רפליקות.

כברירת מחדל, המתאם פועל עם אפס עותקים כדי לחסוך במשאבי האשכול. זה תקין. הפריסה מתרחבת רק עד העתק אחד כשקיים באשכול משאב מותאם אישית של AutoscalingMetric שנדרש בו עיבוד של PromQL.

אם הגדרתם אובייקט AutoscalingMetric עם שאילתת PromQL אבל המתאם לא הורחב אנכית, ודאו שהאובייקט נוצר בהצלחה באשכול.

בדיקת היומנים

כדי למצוא בעיות בבקר שאחראי על קבלת מדדים מ-Cloud Monitoring, אפשר לעיין ביומנים שלו.

אפשר לראות את היומנים במסוף Google Cloud :

  1. עוברים לדף Logs Explorer:

    כניסה לדף Logs Explorer

  2. בחלונית השאילתה, מזינים את השאילתה הבאה:

    resource.type="k8s_container"
    resource.labels.namespace_name="kube-system"
    resource.labels.container_name="autoscaling-metrics-adapter"
    

לחלופין, כדי להציג את היומנים באמצעות kubectl, מריצים את הפקודה הבאה:

kubectl logs deployment.apps/autoscaling-metrics-adapter -n kube-system

בדיקת הסטטוס של AutoscalingMetric

כדי לחפש שגיאות בהגדרות, אפשר לבדוק את הסטטוס של המשאב המותאם אישית AutoscalingMetric.

  1. בודקים את המשאב המותאם אישית AutoscalingMetric:

    kubectl describe autoscalingmetric NAME -n NAMESPACE
    

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

    • ‫NAME: השם של המשאב המותאם אישית AutoscalingMetric שיצרתם.
    • ‫NAMESPACE: מרחב השמות של המשאב המותאם אישית.
  2. פרטים על המדדים שהוגדרו מופיעים בשדה Status. הפרטים האלה כוללים אזהרות לגבי שגיאות בהגדרות ואת השם המדויק של המדד, כפי שהוא אמור להופיע באובייקט HorizontalPodAutoscaler.

    דוגמה לסטטוס תקין:

    Name:         sample-metric
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  autoscaling.gke.io/v1beta1
    Kind:         AutoscalingMetric
    Metadata:
      Creation Timestamp:  2026-08-10T14:41:58Z
      Generation:          1
      Resource Version:    1786372918604351020
      UID:                 c3f012a9-8f25-4399-ac91-12ae8f4426d7
    Spec:
      Metrics:
        Promql:
          Name:   pubsub_unacked
          Query:  sum(pubsub_subscription_num_undelivered_messages)
          Type:   External
    Status:
      Metric Statuses:
        Hpa Name:  autoscaling.gke.io|sample-metric|pubsub_unacked
        Name:      pubsub_unacked
    Events:        <none>
    

    הדוגמה הבאה מציגה סטטוס עם שגיאת הגדרה:

    Name:         bad-metric
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  autoscaling.gke.io/v1beta1
    Kind:         AutoscalingMetric
    Metadata:
      Creation Timestamp:  2026-08-10T14:42:40Z
      Generation:          1
      Resource Version:    1786372960414079010
      UID:                 a47d3ed4-f6f2-4c2c-9341-0de4e9752c3c
    Spec:
      Metrics:
        Promql:
          Name:   duplicate_metric
          Query:  sum(up)
          Type:   External
        Promql:
          Name:   duplicate_metric
          Query:  avg(up)
          Type:   External
    Status:
      Metric Statuses:
        Errors:
          Multiple metrics defined with the same name.
        Name:  duplicate_metric
    Events:    <none>
    

אימות שאילתות PromQL

אם אתם מאחזרים מדדים מ-Cloud Monitoring באמצעות שאילתת PromQL, בעיה בשאילתה עלולה לגרום לשגיאות באחזור המדד או לאחזור של ערך לא צפוי. לדוגמה, אם אתם מצפים שאחוז יוחזר כערך מ-1 עד 100, אבל במקום זאת מקבלים ערך מ-0 עד 1, אז ההתנהגות של התאמה אוטומטית לעומס תהיה לא צפויה.

אתם יכולים לבדוק את שאילתות PromQL ב-Cloud Monitoring כדי לוודא שהן מחזירות את המדדים הצפויים.

כדי לאמת את השאילתות:

  1. נכנסים לדף Metrics explorer במסוף Google Cloud .

    כניסה ל-Metrics Explorer

  2. בחלק העליון של החלונית הכלי ליצירת שאילתות, בוחרים בכרטיסייה PromQL.

  3. בעורך השאילתות, מזינים את שאילתת PromQL שרוצים לבדוק.

  4. לוחצים על Run Query כדי לראות את המדדים בתרשים.

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