צפייה ביומנים של מידרוג אוטומטי

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

באמצעות הכלי Logs Explorer, תוכלו לראות אירועים שקשורים ל:

  • המלצה של Autoscaler לשינוי הגודל של קבוצת מופעי מכונה מנוהלים (MIG). אם ה-autoscaler מחשב גודל מומלץ חדש ל-MIG, השינוי בגודל המומלץ מתואר ביומני ה-autoscaler. שינוי הגודל של רשומה ביומן
  • שינויים בסטטוס של קנה המידה האוטומטי. לדוגמה, אם המידרוג האוטומטי פעל כמצופה אבל נתקל בבעיה, השינוי בסטטוס יתואר ביומני המידרוג האוטומטי. אפשר לעיין ברשומה ביומן שינויים.

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

  • מומלץ לקרוא את מסמכי התיעוד בנושא התאמה אוטומטית לעומס.
  • יש לכם מידרוג אוטומטי פעיל שאתם רוצים לראות את היומנים שלו.
  • אפשר להיעזר בהוראות שבמאמר איך משתמשים ב-Logs Explorer.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

הצגת יומנים של התאמה אוטומטית לעומס (autoscaler)

כדי להציג את יומני ההתאמה האוטומטית לעומס, אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-REST.

המסוף

אם הפעלתם התאמה אוטומטית לעומס, תוכלו לראות את יומני ההתאמה האוטומטית לעומס ב-Google Cloud console.

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

    כניסה לדף Logs Explorer

  2. פותחים את התפריט הנפתח Resource ובוחרים באפשרות Autoscaler.

אפשר גם לנווט לדף Logs Explorer מ-MIG באופן הבא:

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG שרוצים להציג את היומנים שלה.

  3. לוחצים על הכרטיסייה Monitoring.

  4. בכרטיסייה מעקב, החלונית יומנים נמצאת בתחתית הדף. מרחיבים את החלונית על ידי לחיצה על keyboard_capslock החלפת החלונית 'יומנים' בסוף החלונית.

  5. כדי לפתוח את הדף Logs explorer, לוחצים על open_in_new View in logs explorer.

    הכלי Log Explorer נפתח עם שאילתת ברירת מחדל לאחזור כל היומנים של ה-autoscaler של ה-MIG.

gcloud

כדי לחפש את כל היומנים שקשורים להתאמה אוטומטית לעומס, משתמשים בפקודה logging read. לדוגמה:

gcloud logging read "resource.type=autoscaler" --limit 10 \
    --format json

כדי להציג את יומני ה-autoscaler של קבוצת MIG ספציפית, מציינים את instance_group_manager_name באופן הבא:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm" \
    --limit 10 --format json

כדי להציג את רשומות היומן שקשורות לפעולות שינוי הגודל של המידרוג האוטומטי, מציינים את שם השיטה compute.autoscalers.resize:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.resize" \
    --limit 10 --format json

כדי לראות את רשומות היומן שקשורות לשינויים בסטטוס של המידרוג האוטומטי, מציינים את שם השיטה compute.autoscalers.changeStatus:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.changeStatus" \
    --limit 10 --format json

REST

שולחים בקשה ל-Logging V2 API. גוף הבקשה צריך להכיל את הפרמטר filter שבו רוצים להשתמש כשמחפשים יומנים, ואת הפרמטר project של היומנים שרוצים להציג. לדוגמה, כדי לשלוח בקשה לקבלת רשימה של פעולות שינוי גודל של קבוצת MIG ספציפית:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.resize",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

כדי לשלוח בקשה לקבלת רשימה של שינויי סטטוס של MIG ספציפי:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.changeStatus",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

שינוי הגודל של רשומה ביומן

כשכלי ההתאמה האוטומטית של גודל הקבוצה מחשב גודל מומלץ לקבוצת ה-MIG,‏ Compute Engine יוצר רשומה ביומן. הערך הזה כולל את הגדלים המומלצים החדשים והישנים, ואת הסיבה לשינוי בהמלצה.

בדוגמה הבאה מוצגת רשומה ביומן של קבוצת MIG אזורית. בדוגמה הזו, המידרוג האוטומטי חישב 3 מכונות וירטואליות כדי להשיג את יעד ניצול המעבד של 35%, על סמך התאמה אוטומטית לעומס מבוססת-תחזיות. אבל המספר המקסימלי של מופעים שהוגדר במדיניות ההתאמה האוטומטית לעומס הוא רק 2. לכן, המידרוג האוטומטי מגביל את הגודל המומלץ ל-2.

    {
    insertId: "1l68z7sg4jw7kzo"
    logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload: {
      @type: "type.googleapis.com/google.cloud.audit.AuditLog"
      metadata: {
        @type: "type.googleapis.com/autoscaler.AutoscalerSizeChangeExplanation"
        autoscalingMode: "ON"
        autoscalingReason: {
          scalingLimit: {
            limitPolicy: {
              maxNumReplicas: 2
            }
            limitSize: 2
            name: "MAX_INSTANCES"
          }
          scalingSignal: {
            calculatedSize: 3
            calculationDetails: {
              servingSize: 1
              signalTarget: 0.35
              signalValue: 1.03533
            }
            name: "PREDICTED_CPU_UTILIZATION"
            signalPolicy: {
              coolDownPeriodSec: 15
              cpuUtilization: {
                predictiveMethod: "OPTIMIZE_AVAILABILITY"
                utilizationTarget: 0.35
              }
            }
          }
          summary: "The autoscaler's recommended size changed from 1 to 2
          because the autoscaler predicted that in 15 seconds the average CPU
          utilization across 1 serving instance will be 103.533%, which is above
          the utilization target of 35%. The calculated size was 3 to achieve
          the target CPU utilization but the size was limited by the maximum
          number of instances set in the autoscaling policy."
        }
        newSize: 2
        oldSize: 1
      }
      methodName: "compute.autoscalers.resize"
      resourceName: "projects/example-project/zones/us-east1-d/autoscalers/example-autoscaler"
      serviceName: "compute.googleapis.com"
    }
    receiveTimestamp: "2022-06-13T22:34:43.045973046Z"
    resource: {
      labels: {
        autoscaler_id: "1234567890123456789"
        autoscaler_name: "example-autoscaler"
        instance_group_manager_id: "1357908642148074125"
        instance_group_manager_name: "example-igm"
        location: "us-east1-d"
        project_id: "example-project"
      }
      type: "autoscaler"
    }
    severity: "INFO"
    timestamp: "2022-06-13T22:34:42.810216614Z"
    }

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

מאפיין (property) ערך
autoscalingMode מצב התאמה אוטומטית לעומס בזמן שבו הרשומה נרשמה ביומן. בלי קשר למצב, המידרוג האוטומטי מחשב את הגודל המומלץ, שמיוצג על ידי newSize ביומן. בהתאם למצב של התאמה אוטומטית לעומס, המידרוג האוטומטי משנה את גודל ה-MIG באופן הבא:
  • ON: המידרוג האוטומטי משנה את הגודל של ה-MIG ל-newSize.
  • ‫OFF: המנגנון להתאמה לעומס לא משנה את הגודל של ה-MIG.
  • ONLY_SCALE_OUT: המידרוג האוטומטי משנה את הגודל של ה-MIG רק אם הערך של newSize גדול מגודל היעד של ה-MIG.
autoscalingReason פרטים על הסיבה להתאמה אוטומטית לעומס.
autoscalingReason.scalingLimit פרטים על תכונת ההתאמה האוטומטית לעומס שהגבילה את calculatedSize, שהוא הגודל שחושב על ידי ההתאמה האוטומטית לעומס על סמך האות להתאמה אוטומטית לעומס. התכונות של ההתאמה האוטומטית לעומס שיכולות להגביל את calculatedSize הן מספר המכונות המקסימלי או המינימלי, אמצעי הבקרה לצמצום אופקי בהתאם לעומס (scale in) או תקופת הייצוב. אם לא חלה מגבלה על calculatedSize, השדה scalingLimit לא מופיע ביומנים.
autoscalingReason.scalingLimit.limitPolicy ההגדרה של התכונה 'התאמה אוטומטית לעומס' שהגבילה את calculatedSize. השדה limitPolicy לא מוגדר כשהייצוב מגביל את calculatedSize, כי הייצוב הוא תכונת ברירת מחדל של התאמה אוטומטית לעומס (automatic scaling).
autoscalingReason.scalingLimit.limitSize מספר המכונות הווירטואליות שמבוסס על התכונה של שינוי גודל אוטומטי שהגבילה את calculatedSize.
autoscalingReason.scalingLimit.name השם של תכונת ההתאמה האוטומטית לעומס שהגבילה את calculatedSize.
autoscalingReason.scalingSignal פרטים על אות ההתאמה האוטומטית לעומס שמשמש לחישוב מספר המכונות הווירטואליות שצריכות להיות ב-MIG. אם למדיניות ההתאמה האוטומטית לעומס יש כמה אותות, המידרוג האוטומטי מתייחס לאות שדורש את המספר הגדול ביותר של מכונות וירטואליות.
autoscalingReason.scalingSignal.calculatedSize מספר המכונות הווירטואליות שצריכות להיות בקבוצת ה-MIG על סמך אותות של התאמה אוטומטית לעומס. אם scalingLimit חל, אז המידרוג האוטומטי מגביל את calculatedSize ל-scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails פרטים שמשמשים לקביעת calculatedSize.
  • ‫servingSize: מספר המכונות הווירטואליות ב-MIG, לא כולל המכונות הווירטואליות שעדיין נמצאות בתקופת האתחול שלהן.
  • ‫signalTarget: ערך היעד ששומר המידרוג האוטומטי עבור ניצול המעבד (בזמן אמת), ניצול המעבד החזוי, ניצול איזון העומסים או מדד שהוגדר עם יעד ניצול.
  • ‫singleInstanceAssignment: אם ההתאמה לעומס מבוססת על ערך של מדד שמייצג את כמות העבודה הכוללת שצריך לבצע, אז singleInstanceAssignment הוא כמות העבודה שכל מכונה וירטואלית יכולה לטפל בה.
  • ‫signalValue: הערך של אות ההתאמה האוטומטית לעומס. אם המאפיין signalTarget מוגדר, המידרוג האוטומטי משווה בין signalValue לבין signalTarget כדי לחשב כמה מכונות וירטואליות נדרשות, והתוצאה מוצגת באמצעות calculatedSize.
autoscalingReason.scalingSignal.name השם של אות ההתאמה האוטומטית לעומס שעל פיו המערכת להתאמה אוטומטית לעומס חישבה את מספר המכונות הווירטואליות, שמיוצג על ידי calculatedSize ביומן.
autoscalingReason.scalingSignal.signalPolicy ההגדרה של אות ההתאמה האוטומטית לעומס שלפיו נקבע המידרוג האוטומטי של calculatedSize.
autoscalingReason.summary תיאור של הסיבה להתאמה אוטומטית לעומס.
newSize הגודל המומלץ הנוכחי של ה-MIG. בהתאם לערך של autoscalingMode, המידרוג האוטומטי משנה את הגודל של קבוצת ה-MIG לערך של newSize באופן הבא:
  • ON: המידרוג האוטומטי משנה את הגודל של ה-MIG ל-newSize.
  • ‫OFF: המנגנון להתאמה לעומס לא משנה את הגודל של ה-MIG.
  • ‫ONLY_SCALE_OUT: המידרוג האוטומטי משנה את גודל ה-MIG רק אם newSize גדול מגודל היעד של ה-MIG.
oldSize הגודל המומלץ הקודם של ה-MIG.

למידע על השדות האחרים ברשומה ביומן, קראו את המאמר הפורמט של רשומות ביומן הביקורת.

רשומה ביומן השינויים של הסטטוס

כשסטטוס המידרוג האוטומטי משתנה, Compute Engine יוצרת רשומה ביומן שכוללת את הודעות הסטטוס הישנות והחדשות. אפשר להשתמש בהודעות הסטטוס האלה כדי להבין למה המערכת האוטומטית לשינוי גודל לא מתנהגת כמו שציפיתם, או כדי לנפות באגים בבעיות שזיהיתם בעבר. כמה מהודעות הסטטוס הנפוצות מפורטות במאמר הודעות סטטוס נפוצות שמוחזרות.

השדות הבאים ב-protoPayload מתארים את הסטטוסים הישנים והחדשים:

  • ‫metadata.newStatus.details: הסטטוס החדש של המידרוג האוטומטי.
  • ‫metadata.oldStatus.details: הסטטוס הקודם של קנה המידה האוטומטי.

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

    {
      insertId: "ivho6kg4icqfio"
      logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload: {
        metadata: {
          @type: "type.googleapis.com/autoscaler.AutoscalerStatusChange"
          newStatus: {
            details: "The autoscaler is configured to scale based on a load
            balancing signal but the instance group has not received any
            utilization data from the load balancer or the utilization is
            constantly 0. Check that the load balancing configuration is
            working"
          }
          oldStatus: {
            details: "OK"
          },
          methodName: "compute.autoscalers.changeStatus"
          resourceName: "projects/example-project/zones/us-east1-b/autoscalers/example-autoscaler"
          serviceName: "compute.googleapis.com"
        }
        receiveTimestamp: "2022-06-08T03:54:12.332329320Z"
        resource: {
          labels: {
            autoscaler_id: "1234567890123456789"
            autoscaler_name: "example-autoscaler"
            instance_group_manager_id: "1357908642148074125"
            instance_group_manager_name: "example-igm"
            location: "us-east1-b"
            project_id: "example-project"
          }
          type: "autoscaler"
        }
        severity: "INFO"
        timestamp: "2022-06-08T03:54:10.675416812Z"
      }
    }

מידע על שדות אחרים ברשומה ביומן מופיע במאמר פורמט של רשומות ביומן הביקורת.

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