שינוי קנה מידה על סמך מדדי מעקב

התאמה אוטומטית לעומס (autoscaling) על סמך מדדים של Cloud Monitoring מאפשרת לכם להתאים את הקיבולת הנדרשת בהתאם למדידות מהאפליקציה. כשמבצעים התאמה אוטומטית לעומס (autoscale) של MIG על סמך מדד, המידרוג האוטומטי יוצר מכונות וירטואליות כשהערך של המדד עולה ומוחק מכונות וירטואליות כשהערך יורד.

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

במאמר הזה מוסבר איך להתאים אוטומטית לעומס קבוצת מופעי מכונה מנוהלים (MIG) על סמך מדדי מעקב.

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

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

מגבלות

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

  • אפשר להגדיר התאמה אוטומטית לעומס על סמך עד 5 מדדים של Monitoring לכל MIG.
  • אפשר להגדיר התאמה אוטומטית לעומס על סמך מדדים עם סוגי הערכים INT64 או DOUBLE בלבד. אין תמיכה בסוגי ערכים אחרים.
  • אי אפשר להגדיר את אותו מדד יותר מפעם אחת במדיניות של התאמה אוטומטית לעומס.

הגדרת התאמה לעומס (autoscaling) על סמך מדדי מעקב

יש שתי דרכים שונות להשתמש בערך של מדד Monitoring להתאמה לעומס:

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

    מידרוג אוטומטי מוסיף ומסיר מכונות וירטואליות כדי לשמור על יעד ניצול.

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

    הקשר הפרופורציונלי בין ערך המדד לבין מספר המקרים.

התאמה אוטומטית לעומס כדי לשמור על מדד בערך יעד

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

  • אם המדד מגיע מכל מכונה וירטואלית ב-MIG, כלי ה-autoscaler לוקח את ערך המדד הממוצע בכל המכונות הווירטואליות ב-MIG ומשווה אותו ליעד הניצול. לדוגמה, אם רוצים לבצע התאמה אוטומטית לעומס באמצעות המדד tcp_connections שמציין את מספר חיבורי ה-TCP במכונה וירטואלית, ההתאמה האוטומטית לעומס תחשב את המספר הממוצע של חיבורי ה-TCP בכל המכונות הווירטואליות בקבוצת המכונות המנוהלת, כדי להשוות אותו ליעד. כשמשתמשים במדדים כאלה שמקורם ב-VM, קבוצת ה-MIG לא יכולה לצמצם אופקית בהתאם לעומס (scale in) ל-0, כי המידרוג האוטומטי דורש לפחות VM אחד כדי לפרסם ערך של מדד.

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

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

המסוף

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

    כניסה לדף Instance groups

  2. אם אין לכם קבוצה של מופעי מכונה מנוהלים, צריך ליצור אחת. אחרת, לוחצים על השם של קבוצת ה-MIG ברשימה כדי לפתוח את הדף של קבוצת המכונות הזו.

  3. לוחצים על Edit.

  4. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על הגדרה. בחלונית Resource and metric שנפתחת:

    1. לוחצים על בחירת מדד.
      1. בוחרים את המדד שרוצים להשתמש בו לצורך שינוי גודל אוטומטי. אפשר לסנן את המדדים לפי מילות מפתח, למשל memory,‏ bytes, ‏ disk.
      2. לוחצים על אישור. בחלונית מוצג תרשים עם הנתונים של המדד שנבחר.
    2. אם רוצים להשתמש בנתונים ספציפיים מהמדד, מוסיפים מסנן על סמך תוויות באופן הבא:

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

    4. בקטע Metric target options for autoscaling (אפשרויות של מדדי יעד להרחבת קנה מידה אוטומטית), בוחרים באפשרות Utilization target (יעד ניצול).

    5. עליך לספק את הפרטים הבאים:

      1. יעד ניצול: מציינים את הערך שצריך לשמור על ידי קנה המידה האוטומטי. הערך חייב להיות מספר חיובי. לדוגמה, הערכים 24.5 ו-100 הם ערכים קבילים.
      2. סוג היעד לניצול: בוחרים סוג יעד שמתאים לסוג המדידה של המדד. כדי להשוות בצורה מדויקת, אם יעד הניצול נמדד לפי שניות, צריך להשתמש בשינוי לשנייה כסוג היעד. באופן דומה, משתמשים ב-Delta / min ליעד ניצול שנמדד לפי דקות.
        • מד: המערכת לשינוי גודל משאבים באופן אוטומטי מחשבת את הערך הממוצע של הנתונים שנאספו בדקות האחרונות, ומשווה אותו ליעד הניצול.
        • ‫Delta / min: המידרוג האוטומטי מחשב את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
        • דלתא / שנייה: המידרוג האוטומטי מחשב את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול.
    6. בסיום הגדרת המדד, לוחצים על בחירה.

  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כדי להשלים את ההגדרה, לוחצים על שמירה.

gcloud

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

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

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

אם למדד יש כמה ערכים ואתם רוצים להשתמש בערך ספציפי לצורך התאמה אוטומטית לעומס (automatic scaling), צריך להשתמש בדגל --stackdriver-metric-filter כמו בפקודה הבאה.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE \
  --stackdriver-metric-filter="METRIC_FILTER"

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

  • ‫MIG_NAME: ה-MIG שרוצים להוסיף לו מידרוג אוטומטי.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד מעקב. לדוגמה, compute.googleapis.com/instance/uptime. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫TARGET_VALUE: ערך המדד שהמידרוג האוטומטי מנסה לשמור עליו.
  • ‫TARGET_TYPE: סוג הערך של המדד.
    • gauge, המידרוג האוטומטי מחשב את הערך הממוצע של הנתונים שנאספו בדקות האחרונות ומשווה אותו ליעד הניצול.
    • delta-per-minute המידרוג האוטומטי מחשב את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
    • ‫delta-per-second המידרוג האוטומטי מחשב את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול. כדי שההשוואות יהיו מדויקות, אם מגדירים את יעד הניצול בשניות, צריך להשתמש ב-delta-per-second בתור סוג היעד. באופן דומה, משתמשים ב-delta-per-minute כדי להגדיר יעד ניצול בדקות.
  • ‫METRIC_FILTER: הוספת מסנן כדי להשתמש בערך ספציפי מתוך מדד עם כמה ערכים, וכדי לציין את סוג המשאב שבמעקב. אם משתמשים במדד שמגיע מכל מכונה וירטואלית, לא צריך לציין את סוג המשאב שבמעקב כי gce_instance משמש כברירת מחדל. לגבי מדדים אחרים, משתמשים ב-resource.type בביטוי המסנן כדי לציין את המשאב שבמעקב. מידע נוסף על מסנן מדדים זמין במאמר מושגים בנושא מדדים של Monitoring.

רשימה מלאה של הפקודות והדגלים הזמינים ב-CLI של gcloud מופיעה במאמר gcloud.

REST

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי מעקב בקבוצת MIG אזורית, משתמשים במשאב autoscalers. בקבוצת MIG בכמה אזורים משתמשים במשאב regionAutoscalers.

כדי להתאים אוטומטית לעומס קבוצת MIG אזורית על סמך מדד של מעקב עם יעד ניצול, מבצעים את הקריאה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE
    }
  ],
 }
}

אם למדד יש כמה ערכים ואתם רוצים להשתמש בערך ספציפי לצורך התאמה אוטומטית לעומס (automatic scaling), צריך להשתמש בפרמטר filter כמו שמופיע בקריאה הבאה ל-API.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE,
      "filter": "METRIC_FILTER"
    }
  ],
 }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי.
  • ‫MIG_NAME: ה-MIG שרוצים להוסיף לו מידרוג אוטומטי.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance/uptime. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫TARGET_VALUE: ערך המדד שהמידרוג האוטומטי מנסה לשמור עליו.
  • ‫TARGET_TYPE: סוג הערך של המדד.
    • GAUGE: המידרוג האוטומטי מחשב את הערך הממוצע של הנתונים שנאספו בדקות האחרונות, ומשווה אותו ליעד הניצול.
    • DELTA_PER_MINUTE המידרוג האוטומטי מחשב את קצב הגידול הממוצע לדקה ומשווה אותו ליעד הניצול.
    • DELTA_PER_SECOND המידרוג האוטומטי מחשב את קצב הגידול הממוצע לשנייה ומשווה אותו ליעד הניצול. כדי להשוות בצורה מדויקת, אם הגדרתם את יעד הניצול בשניות, צריך להשתמש ב-DELTA_PER_SECOND כסוג היעד. באופן דומה, משתמשים ב-DELTA_PER_MINUTE כדי להגדיר יעד ניצול בדקות.
  • ‫METRIC_FILTER: הוספת מסנן לשימוש בערך יחיד ממדד עם כמה ערכים, ולציון סוג המשאב שבמעקב. אם משתמשים במדד שמגיע מכל מכונה וירטואלית, לא צריך לציין את סוג המשאב שבמעקב כי gce_instance משמש כברירת מחדל. לגבי מדדים אחרים, צריך לציין את המשאב המנוטר באמצעות בורר resource.type. מידע נוסף על מסנן מדדים זמין במאמר מושגים בנושא מדדים של Monitoring.

התאמה אוטומטית לעומס (Autoscale) על סמך העבודה שזמינה לכל מכונה וירטואלית (VM) ב-MIG

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

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

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

המסוף

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

    כניסה לדף Instance groups

  2. אם אין לכם קבוצה של מופעי מכונה מנוהלים, צריך ליצור אחת. אחרת, לוחצים על השם של MIG מהרשימה כדי לפתוח את הדף של קבוצת המכונות הזו.

  3. לוחצים על Edit.

  4. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על הגדרה. בחלונית Resource and metric שנפתחת:

    1. לוחצים על בחירת מדד.
      1. בוחרים את המדד שרוצים להשתמש בו לצורך שינוי גודל אוטומטי. אפשר לסנן את המדדים לפי מילות מפתח, למשל memory,‏ bytes, ‏ disk.
      2. לוחצים על אישור. בחלונית מוצג תרשים עם הנתונים של המדד שנבחר.
    2. אם רוצים להשתמש בנתונים ספציפיים מהמדד, מוסיפים מסנן על סמך תוויות באופן הבא:

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

    4. בקטע Metric target options for autoscaling, בוחרים באפשרות Single VM instance assignment.

    5. מציינים ערך של Single instance assignment שמייצג את כמות העבודה שצריך להקצות לכל מכונה וירטואלית ב-MIG.

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

  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כדי להשלים את ההגדרה, לוחצים על שמירה.

gcloud

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדי Monitoring, משתמשים בפקודה set-autoscaling.

בפקודה, מציינים את האפשרות --stackdriver-metric-single-instance-assignment כדי לציין את כמות העבודה שאתם מצפים שכל מכונה וירטואלית בקבוצה תבצע.

הפקודה הבאה יוצרת קנה מידה אוטומטי על סמך הקצאת עבודה לכל מכונה וירטואלית.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    --max-num-replicas=MAX_INSTANCES \
    --min-num-replicas=MIN_INSTANCES \
    --update-stackdriver-metric=METRIC_URL \
    --stackdriver-metric-filter="METRIC_FILTER" \
    --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT

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

  • ‫MIG_NAME: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד מעקב. לדוגמה, compute.googleapis.com/instance_group/size. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫METRIC_FILTER: הוספת מסנן לשימוש בערך יחיד ממדד עם כמה ערכים, ולציון סוג המשאב שבמעקב. מידע נוסף על מסנן מדדים זמין במאמר הסברים על מדדי מעקב.
  • ‫INSTANCE_ASSIGNMENT: כמות העבודה להקצאה לכל מופע של מכונה וירטואלית ב-MIG.

REST

כדי להגדיר התאמה אוטומטית לעומס על סמך מדדים של Monitoring עבור קבוצת MIG אזורית, משתמשים במשאב autoscalers. כדי להגדיר התאמה אוטומטית לעומס על סמך מדדים של Monitoring עבור קבוצת MIG אזורית, משתמשים במשאב regionAutoscalers.

משתמשים בפרמטר singleInstanceAssignment כדי לציין את כמות העבודה שאתם מצפים שכל VM יטפל בה.

לדוגמה, אפשר לבצע את הקריאה הבאה כדי ליצור קנה מידה אוטומטי שמשנה את גודל ה-MIG האזורי על סמך הקצאת המופע.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers

{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "filter": "METRIC_FILTER",
      "singleInstanceAssignment": INSTANCE_ASSIGNMENT
    }
  ],
 }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי.
  • ‫MIG_NAME: השם של קבוצת ה-MIG שרוצים להתאים לעומס באופן אוטומטי.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות בקבוצת ה-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות ב-MIG.
  • ‫METRIC_URL: כתובת URL ללא פרוטוקול של מדד ב-Monitoring. לדוגמה, compute.googleapis.com/instance_group/size. אם משתמשים במדד מותאם אישית, הוא צריך לעמוד בדרישות של מדדים מותאמים אישית.
  • ‫METRIC_FILTER: הוספת מסנן לשימוש בערך יחיד ממדד עם כמה ערכים, ולציון סוג המשאב שבמעקב. מידע נוסף על מסנן מדדים זמין במאמר הסברים על מדדי מעקב.
  • ‫INSTANCE_ASSIGNMENT: כמות העבודה להקצאה לכל מופע של מכונה וירטואלית ב-MIG.

דוגמאות להתאמה אוטומטית לעומס על סמך מדדים

בקטע הזה מופיעות כמה דוגמאות למדדים שמשמשים להתאמה אוטומטית לעומס. רשימה מלאה של המדדים זמינה במאמר מדדים שלCloud de Confiance .

שינוי גודל אוטומטי על סמך מדד מותאם אישית

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

נניח שיש לכם את ההגדרה הבאה:

  • קבוצת מופעים מנוהלת אזורית בשם our-instance-group מוקצית לביצוע משימה מסוימת. הקבוצה נמצאת באזור us-central1-a.
  • יש לכם מדד מותאם אישית למעקב שמייצא ערך שאתם רוצים לשמור ברמה מסוימת. בדוגמה הזו, נניח שהמדד מייצג את זמן האחזור הממוצע של עיבוד שאילתות שהוקצו לקבוצה.
    • שם המדד המותאם אישית: custom.googleapis.com/example_average_latency.
    • למדד המותאם אישית יש תווית עם מפתח בשם group_name וערך ששווה לשם של קבוצת ה-MIG, ‏ our-instance-group.
    • המדד המותאם אישית מייצא נתונים של משאב במעקב גלובלי, כלומר הוא לא משויך לאף מכונה וירטואלית ספציפית.

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

אפשר להגדיר התאמה אוטומטית לעומס (automatic scaling) לקבוצה באמצעות יעד ניצול של 250, שמייצג את קצב השינוי של ערך המדד שהמידרוג האוטומטי ינסה לשמור:

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המכונות.

  3. לוחצים על Edit.

  4. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים את המדד מתוך Global > Custom metrics (כללי > מדדים מותאמים אישית).
      2. לוחצים על אישור.
    2. בקטע Filters מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח תווית, בוחרים באפשרות group_name.
      3. בשדה ערך, מציינים our-instance-group.
      4. לוחצים על סיום. התרשים מתרענן ומוצג בו הערך המסונן מהמדד.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. בוחרים באפשרות יעד ניצול.
      2. מזינים את ערך היעד של הניצול בתור 250.
      3. מגדירים את סוג יעד הניצול ל-Delta / sec.
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling our-instance-group \
  --zone=us-central1-a \
  --max-num-replicas=50 \
  --min-num-replicas=0 \
  --update-stackdriver-metric=custom.googleapis.com/example_average_latency \
  --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \
  --stackdriver-metric-utilization-target=250 \
  --stackdriver-metric-utilization-target-type=delta-per-second

REST

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers
{
"name": "our-instance-group-autoscaler",
"target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group",
"autoscalingPolicy": {
  "maxNumReplicas": 50,
  "minNumReplicas": 0,
  "customMetricUtilizations": [
    {
      "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"",
      "utilizationTargetType": "delta-per-second",
      "utilizationTarget": 250.0,
      "metric": "custom.googleapis.com/example_average_latency"
    }
  ]
}
}

התאמה אוטומטית לעומס על סמך הודעות שלא אושרו ב-Pub/Sub

כדי להגדיר התאמה אוטומטית לעומס על סמך הודעות שלא אושרו במינוי Pub/Sub, משתמשים במדד subscription/num_undelivered_messages שמופיע ב-pubsub ומסננים לפי subscription ID.

המדד subscription/num_undelivered_messages מייצא את המספר הכולל של ההודעות במינוי, כולל הודעות שנמצאות בתהליך עיבוד אבל עדיין לא אושרו. לא מומלץ להשתמש במדד שלא כולל את ההודעות שעוברות עיבוד, כי מדד כזה יכול לרדת ל-0 כשהעבודה עדיין מתבצעת, מה שגורם להתאמה אוטומטית לעומס לצמצם אופקית ואולי גם להפסקת העבודה בפועל.

אם אין לכם מינוי, תוכלו ליצור מינוי pull,‏ push או BigQuery לפני שתגדירו את ההתאמה האוטומטית לעומס.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המכונות.

  3. לוחצים על Edit.

  4. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Pub/Sub queue.

  8. בוחרים נושא. אם רוצים ליצור נושא חדש, לוחצים על Create a topic כדי ליצור אותו.

  9. בוחרים את המינוי שעל פיו רוצים להגדיר שינוי גודל אוטומטי של קבוצת ה-MIG. אם רוצים ליצור מינוי חדש, לוחצים על יצירת מינוי כדי ליצור מינוי.

  10. בשדה Number of messages to assign to each VM (מספר ההודעות להקצאה לכל מכונה וירטואלית), מציינים את מספר ההודעות שלא אושרו שכל מכונה וירטואלית צפויה לטפל בהן.

  11. לוחצים על סיום.

  12. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \
  --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \
  --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM

REST

כדי להגדיר התאמה אוטומטית לעומס (automatic scaling) של MIG אזורי, משתמשים במשאב autoscalers. כדי להגדיר התאמה אוטומטית לעומס (automatic scaling) של MIG אזורי, משתמשים במשאב regionAutoscalers.

לדוגמה, מבצעים את הקריאה הבאה כדי ליצור קנה מידה אוטומטי לקבוצת מופעים מנוהלת אזורית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM,
      "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"",
      "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages"
    }
  ]
}
}

שינוי קנה מידה אוטומטי על סמך תנועת רשת נכנסת

כדי להגדיר התאמה אוטומטית לעומס (automatic scaling) על סמך תנועה ברשת הנכנסת למכונות וירטואליות ב-MIG, משתמשים במדד instance/network/received_bytes_count שמופיע ב-compute.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. לוחצים על Edit.

  4. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM Instance > Instance > Received bytes (compute.googleapis.com/instance/network/received_bytes_count).
      2. לוחצים על אישור.
    2. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך ליעד הניצול.
      3. מגדירים סוג של יעד ניצול.
    3. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "utilizationTargetType": "TARGET_TYPE",
      "utilizationTarget": TARGET_VALUE,
      "metric": "compute.googleapis.com/instance/network/received_bytes_count"
    }
  ]
}
}

שינוי גודל אוטומטי על סמך השימוש בזיכרון

כדי להגדיר התאמה אוטומטית לעומס על סמך אחוז הזיכרון בשימוש, צריך לציין את המדד percent_used שמופיע במדדים של memory סוכן תפעול. כדי להשתמש רק במצב הזיכרון של used, צריך לסנן את המדד לפי state. אם לא מציינים את המסנן, המידרוג האוטומטי מחשב את סכום השימוש בזיכרון לפי כל מצבי הזיכרון שמסומנים בתוויות buffered, cached, free, slab ו-used.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM Instance > Memory > Memory utilization (agent.googleapis.com/memory/percent_used).
      2. לוחצים על אישור.
    2. בקטע Filters מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח תווית, בוחרים את תווית המדד מדינה.
      3. בשדה ערך, מקלידים משומש.
      4. לוחצים על סיום.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך ליעד הניצול.
      3. מגדירים את סוג יעד הניצול ל-Gauge (מד).
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \
  --stackdriver-metric-filter="metric.labels.state = \"used\"" \
  --stackdriver-metric-utilization-target-type=gauge \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "filter": "metric.labels.state=\"used\"",
    "utilizationTargetType": "GAUGE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/memory/percent_used"
  }
  ]
}
}

שינוי גודל אוטומטי על סמך קלט/פלט של הדיסק

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המופעים.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות VM instance > Disk > Disk operations (agent.googleapis.com/disk/operation_count).
      2. לוחצים על אישור.
    2. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. מוודאים שהאפשרות יעד ניצול נבחרה.
      2. מזינים ערך ליעד הניצול.
      3. מגדירים סוג של יעד ניצול.
    3. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES  \
  --min-num-replicas=MIN_INSTANCES  \
  --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "utilizationTargetType": "TARGET_TYPE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/disk/operation_count"
  }
  ]
}
}

שינוי גודל אוטומטי על סמך הגודל של MIG אחר

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

כדי להתאים אוטומטית לעומס (autoscale) של MIG (MIG_1) על סמך הגודל של MIG אחר (MIG_2), משתמשים במדד instance_group/size שסופק על ידי compute.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של קבוצת המכונות.

  3. בדף הסקירה הכללית של קבוצת המופעים, לוחצים על עריכה.

  4. לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
  5. אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.

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

  6. בקטע אותות של התאמה אוטומטית לעומס, אם קיים אות למדד של מעקב, אפשר ללחוץ עליו כדי לערוך אותו, או ללחוץ על הוספת אות כדי להוסיף אות.
  7. מגדירים את Signal type בתור Cloud Monitoring metric.

  8. לוחצים על Configure (הגדרה). החלונית Resource and metric (משאב ומדד) נפתחת.

    1. לוחצים על בחירת מדד.
      1. בוחרים באפשרות Instance Group > Instance_group > Instance group size (compute.googleapis.com/instance_group/size).
      2. לוחצים על אישור.
    2. בקטע Filters מבצעים את הפעולות הבאות:
      1. לוחצים על הוספת מסנן.
      2. בתפריט הנפתח Label, בוחרים את תווית המשאב instance_group_name.
      3. בשדה Value, מקלידים את השם של ה-MIG ‏ (MIG_2) שעליו רוצים להגדיר התאמה אוטומטית לעומס של ה-MIG.
      4. לוחצים על סיום.
    3. בקטע Metric target options for autoscaling, מבצעים את הפעולות הבאות:
      1. בוחרים באפשרות Single VM instance assignment (הקצאה של מכונה וירטואלית יחידה).
      2. בשדה Single VM instance assignment (הקצאת מכונה וירטואלית יחידה), מזינים 4 אם רוצים לשמור מכונה וירטואלית אחת בקבוצת ה-MIG הנוכחית (MIG_1) לכל 4 מכונות וירטואליות ב-MIG_2.
    4. אחרי שמגדירים את המדד, לוחצים על בחירה.
  9. בודקים את פרטי המדד ולוחצים על סיום.

  10. כשמסיימים, לוחצים על שמירה.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_1 \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance_group/size \
  --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \
  --stackdriver-metric-single-instance-assignment=4

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "singleInstanceAssignment": 4,
      "filter": "resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"",
      "metric": "compute.googleapis.com/instance_group/size"
    }
  ]
}
}

התאמה אוטומטית לעומס על סמך מדד מפרויקט אחר

אפשר להגדיר התאמה אוטומטית לעומס של MIG על סמך מדדים מפרויקט אחר. כדי לאפשר לפרויקט שלכם לגשת למדדים מפרויקט אחר, אתם צריכים להוסיף את הפרויקט השני להיקף המדדים של הפרויקט הנוכחי.

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

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

  • אפשר להגדיר את המדד רק באמצעות ה-CLI של gcloud או REST. אין תמיכה במסוף Cloud de Confiance .

  • אפשר להשתמש רק במדדים שרלוונטיים לכל ה-MIG. אין תמיכה במדדים שמגיעים מכל מכונה וירטואלית בקבוצת ה-MIG.

בדוגמה הבאה אפשר לראות איך להגדיר התאמה אוטומטית לעומס של קבוצת MIG אזורית (MIG_1) על סמך הגודל של קבוצת MIG אחרת (MIG_2) שנמצאת בפרויקט אחר.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_1 \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance_group/size \
  --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.project_id = \"PROJECT_ID_OF_MIG_2\" AND resource.labels.instance_group_name = \"MIG_2\"" \
  --stackdriver-metric-single-instance-assignment=1 \
  --zone=ZONE

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

  • ‫MIG_1: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות ב-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת המכונות המנוהלת.
  • ‫PROJECT_ID_OF_MIG_2: מזהה הפרויקט שמכיל את המדד.
  • ‫MIG_2: השם של קבוצת ה-MIG שמספקת את המדד.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG שרוצים להתאים לה את קנה המידה באופן אוטומטי.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID_OF_MIG_1/zones/ZONE/autoscalers
{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID_OF_MIG_1/zones/ZONE/instanceGroupManagers/MIG_1",
  "autoscalingPolicy": {
    "maxNumReplicas": MAX_INSTANCES,
    "minNumReplicas": MIN_INSTANCES,
    "customMetricUtilizations": [
      {
        "singleInstanceAssignment": 1,
        "filter": "resource.type = \"instance_group\" AND resource.labels.project_id = \"PROJECT_ID_OF_MIG_2\" AND resource.labels.instance_group_name = \"MIG_2\"",
        "metric": "compute.googleapis.com/instance_group/size"
      }
    ]
  }
}

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

  • ‫PROJECT_ID_OF_MIG_1: מזהה הפרויקט שמכיל את קבוצת ה-MIG שרוצים להתאים אוטומטית לעומס.
  • ‫ZONE: האזור שמכיל את ה-MIG שרוצים להגדיר לו התאמה אוטומטית לעומס.
  • ‫AUTOSCALER_NAME: השם של ה-autoscaler שאתם מגדירים.
  • ‫MIG_1: השם של קבוצת ה-MIG שרוצים להגדיר לה התאמה אוטומטית לעומס.
  • ‫MAX_INSTANCES: המספר המקסימלי של מכונות וירטואליות שיכולות להיות ב-MIG.
  • ‫MIN_INSTANCES: המספר המינימלי של מכונות וירטואליות שצריכות להיות בקבוצת המכונות המנוהלת.
  • ‫PROJECT_ID_OF_MIG_2: מזהה הפרויקט שמכיל את המדד.
  • ‫MIG_2: השם של קבוצת ה-MIG שמספקת את המדד.

הסבר על מושגים שקשורים למדדי מעקב

בקטע הזה מוסבר בקצרה על המושגים של מדדי מעקב שצריך להכיר כשמגדירים התאמה אוטומטית לעומס על סמך מדדי מעקב.

  • מזהה המדד או כתובת ה-URL של המדד: שם המדד בפורמט של כתובת URL ללא פרוטוקול. אפשר למצוא כתובות URL למדדים מובנים ברשימת המדדים.

    לדוגמה, כתובת ה-URL של מדד Pub/Sub שמציג את מספר ההודעות שלא אושרו היא pubsub.googleapis.com/subscription/num_undelivered_messages.

  • סוג המשאב במעקב: המקור של ערך המדד. ברשימת המדדים תוכלו למצוא את סוג המשאב במעקב של המדד.

    לדוגמה, סוג המשאב במעקב של המדד pubsub.googleapis.com/subscription/num_undelivered_messages הוא pubsub_subscription. למידע נוסף על כל סוג של משאב במעקב, ראו סוגי המשאבים במעקב.

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

    לדוגמה, המדד pubsub.googleapis.com/subscription/num_undelivered_messages נותן את מספר ההודעות שלא אושרו בכל המינויים הזמינים. ללא מסנן, הכלי לשינוי קנה מידה אוטומטי מחשב את סכום ערכי המדדים מכל המינויים. כדי לבצע התאמה אוטומטית לעומס על סמך מינוי יחיד, צריך להחיל מסנן על התווית subscription_id שמוגדרת ל-pubsub_subscription.

דרישות לסינון מדדים

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

הסינון של מדדים ב-Autoscaler תואם לתחביר של מסננים ב-Monitoring. המסנן צריך לעמוד בדרישות הבאות:

  • חובה להקיף את הערך של המסנן במירכאות כפולות.
  • צריך להשתמש באופרטור להשוואת שוויון ישיר (=).
  • צריך להשתמש באופרטור AND כדי לצרף קריטריונים שונים של סינון.

    לדוגמה: --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\"".

  • חובה להשתמש בערכים ישירים. אי אפשר להשתמש בתווים כלליים לחיפוש או בפונקציות במסנן.

    לדוגמה, אי אפשר להשתמש ב-resource.labels.zone = starts_with("us-").

  • אי אפשר להשתמש בתוויות של מטא-נתונים של משאבים שמאחסנות מטא-נתונים על משאב במעקב.

רשימה מלאה של תוויות מדדים ותוויות משאבים במעקב שאפשר לסנן לפיהן זמינה ברשימת המדדים וברשימת המשאבים במעקב.

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

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

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

  • אם הגדרת ההתאמה האוטומטית לעומס מתבססת על נתונים מכל מכונה וירטואלית בקבוצה, צריך להגדיר מכונות ב-MIG כך שכל מכונה וירטואלית תייצא את המדד המותאם אישית. הערכים שמיוצאים מכל מכונה וירטואלית צריכים להיות משויכים למשאב מנוטר gce_instance, שכולל את התוויות הבאות:
    • ‫zone בשם האזור שבו נמצאת המכונה.
    • ‫instance_id עם הערך של המזהה המספרי הייחודי שהוקצה למכונה הווירטואלית.
  • המדד צריך לייצא נתונים לפחות כל 60 שניות. אם מייצאים נתונים בתדירות גבוהה יותר מפעם ב-60 שניות, המערכת להתאמה אוטומטית לעומס יכולה להגיב מהר יותר לשינויים בעומס. אם מייצאים את הנתונים בתדירות נמוכה יותר מכל 60 שניות, יכול להיות שהמידרוג האוטומטי לא יגיב לשינויים בעומס מספיק מהר.
  • המדד צריך לייצא נתונים מסוג ערך INT64 או DOUBLE.

מידע על יצירת מדד מותאם אישית זמין במאמר שימוש במדדים מותאמים אישית.

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