מדדים מותאמים אישית למאזני עומסים של אפליקציות (ALB)

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

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

מאזן העומסים משתמש בערכים של המדדים המותאמים אישית כדי לקבל את ההחלטות הבאות:

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

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

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

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

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

  • התאמת קצה עורפי אוטומטית על סמך מדדים בהתאמה אישית שהכי רלוונטיים לדרישות של האפליקציה. לדוגמה, אתם יכולים להגדיר מדיניות של התאמה אוטומטית לעומס כדי לשנות את הגודל של שרתי ה-Backend באופן אוטומטי כשהמדד המותאם אישית שהגדרתם חורג מ-80%. ההתאמה האוטומטית לעומס מתבצעת באמצעות מדדים של התאמה אוטומטית לעומס שמבוססים על תנועה (autoscaling.googleapis.com|gclb-capacity-fullness). מידע נוסף זמין במאמר בנושא התאמה אוטומטית לעומס שמבוססת על תנועה במאזן העומסים (LB).

מאזני עומסים וקצה עורפי נתמכים

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

  • מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
  • מאזן עומסים חיצוני אזורי של אפליקציות (ALB)
  • מאזן עומסים פנימי של אפליקציות (ALB) שפועל בכמה אזורים
  • מאזן עומסים פנימי אזורי של אפליקציות (ALB)

יש תמיכה במדדים מותאמים אישית בסוגי ה-Backend הבאים:

  • קבוצות של מופעי מכונה מנוהלים
  • קבוצות אזוריות של נקודות קצה של רשתות (עם נקודות קצה של GCE_VM_IP_PORT)
  • קבוצות של נקודות קצה ברשת (NEGs) לקישוריות היברידית

איך פועלים מדדים מותאמים אישית

כדי לאפשר למאזן העומסים לקבל החלטות לגבי חלוקת התנועה על סמך מדדים מותאמים אישית, צריך קודם לקבוע מהם המדדים הרלוונטיים ביותר לאפליקציה הספציפית שלכם. אחרי שמחליטים באילו מדדים רוצים להשתמש, צריך להגדיר את השרתים העורפיים כך שיתחילו לדווח על זרם קבוע של המדדים האלה למאזן העומסים. Google Cloud מאפשר לכם לדווח על מדדים כחלק מהכותרת של כל תגובת HTTP שנשלחת מהשרתים העורפיים למאזן העומסים. המדדים האלה מוצפנים בכותרת תגובת HTTP מותאמת אישית, והם צריכים להיות בהתאם לתקן Open Request Cost Aggregation (ORCA).

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

  • ברמת שירות לקצה העורפי, כדי להשפיע על בחירת ה-Backend (MIG או NEG)
  • ברמת ה-Backend, כדי להשפיע על הבחירה של מכונה וירטואלית או נקודת קצה

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

איך קובעים אילו מדדים מותאמים אישית משפיעים על החלטות איזון העומסים

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

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

לדוגמה, אם מגדירים מדד בשם example-custom-metric, עם סף ניצול מקסימלי של 0.8, מאזן העומסים משנה באופן דינמי את חלוקת התנועה בין השרתים כדי לשמור על ערך המדד example-custom-metric שמדווח על ידי השרת מתחת ל-0.8, ככל האפשר.

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

  • מדדים שמורים. יש חמישה שמות שמורים של מדדים. השמות האלה שמורים כי הם תואמים לשדות מוגדרים מראש ברמה העליונה ב-ORCA API.

    • orca.cpu_utilization
    • orca.mem_utilization
    • orca.application_utilization
    • orca.eps
    • orca.rps_fractional

    המדדים mem_utilization, cpu_utilization ו-application_utilization צפויים לקבל ערכים בטווח 0.0 - 1.00, אבל יכולים לחרוג מ-1.00 בתרחישים שבהם ניצול המשאבים חורג מהתקציב.

  • מדדים עם שם. אלה מדדים שייחודיים לאפליקציה שלכם, שאתם מציינים באמצעות השדה ORCA named_metrics בפורמט הבא:

    orca.named_metrics.METRIC_NAME
    

    כל המדדים המותאמים אישית שהוגדרו על ידי המשתמש מצוינים באמצעות המיפוי named_metrics הזה בפורמט של צמדי שם/ערך.

    מדדים עם שם שהוגדרו עבור CUSTOM_METRICS מצב איזון חייבים לכלול ערכים בטווח 0 - 100. למדדים עם שם שהוגדרו עבור מדיניות המיקום של איזון העומסים WEIGHTED_ROUND_ROBIN אין טווח צפוי.

מדדים נדרשים

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

  • orca.cpu_utilization
  • orca.application_utilization
  • orca.mem_utilization
  • orca.named_metrics

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

  • orca.rps_fractional (בקשות לשנייה)
  • orca.eps (שגיאות לשנייה)
  • מדד ניצול עם סדר העדיפות הבא:
    1. orca.application_utilization
    2. orca.cpu_utilization
    3. מדדים בהגדרת המשתמש במפה orca.named_metrics

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

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

    אם מספקים שני מדדים, מאזן העומסים מתייחס אליהם באופן עצמאי. לדוגמה, אם מגדירים שני מאפיינים: custom-metric-util1 ו-custom-metric-util2, מאזן העומסים מתייחס אליהם באופן עצמאי. אם קצה עורפי פועל ברמת ניצול גבוהה מבחינת custom-metric-util1, מאזן העומסים נמנע משליחת תנועה לקצה העורפי הזה. באופן כללי, מאזן העומסים מנסה להפעיל את כל הקצוות העורפיים עם עומס דומה. הנפח הפנוי מחושב כך: currentUtilization / maxUtilization. במקרה כזה, מאזן העומסים משתמש בערך הגבוה מבין שני ערכי המלאות שדווחו על ידי שני המדדים כדי לקבל החלטות לגבי איזון העומסים.

  • יש מגבלה של שני מדדים מותאמים אישית לכל שירות לקצה העורפי. עם זאת, אפשר לבצע dryRun בדיקות עם שלושה מדדים מותאמים אישית לכל היותר. המגבלה הזו לא כוללת את המדדים הנדרשים orca.eps ו-orca.rps_fractional. ההגבלה הזו לא קשורה למדדים שמוגדרים ברמת ה-backend.

  • אפשר להשתמש גם במדדים שמורים וגם במדדים עם שם. לדוגמה, אפשר לספק בדוח טעינה יחיד גם את orca.cpu_utilization = 0.5 וגם מדד מותאם אישית כמו orca.named_metrics.queue_depth_util = 0.2.

  • שמות של מדדים מותאמים אישית לא יכולים להכיל מידע מפוקח, רגיש, מזהה או מידע סודי אחר שאסור לאף אחד מחוץ לארגון לראות.

קידודים זמינים למפרט של מדדים מותאמים אישית

  • JSON

    דוגמה לקידוד JSON של דוח עומס:

    endpoint-load-metrics-json: JSON {"cpu_utilization": 0.3, "mem_utilization": 0.8, "rps_fractional": 10.0, "eps": 1, "named_metrics": {"custom-metric-util": 0.4}}.
    
  • Binary Protobuf

    עבור קוד שמודע למאגרי אחסון לפרוטוקולים, זהו קובץ protobuf של OrcaLoadReport בקידוד base64 עם סריאליזציה בינארית ב-endpoint-load-metrics-bin או ב-endpoint-load-metrics: BIN.

  • Native HTTP

    צמדים של מפתח/ערך מופרדים בפסיקים בפורמט endpoint-load-metrics. זהו ייצוג טקסטואלי שטוח של OrcaLoadReport:

    endpoint-load-metrics: TEXT cpu_utilization=0.3, mem_utilization=0.8, rps_fractional=10.0, eps=1, named_metrics.custom_metric_util=0.4
    
  • gRPC

    במפרט של gRPC נדרש לספק את המדדים באמצעות מטא-נתונים מסוג trailing באמצעות המפתח endpoint-load-metrics-bin.

הגדרת ה-Backend לדיווח על מדדים מותאמים אישית

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

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

הגדרת מאזן עומסים לתמיכה במדדים מותאמים אישית

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

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

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

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

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

הגדרת מדדים מותאמים אישית

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

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

קביעת המדדים המותאמים אישית

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

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

הגדרת קצה עורפי לדיווח מדדים למאזן העומסים

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

כשמשתמשים ב-Google Kubernetes Engine, יש גם אפשרות להשתמש במדדים מותאמים אישית למאזני עומסים.

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

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

endpoint-load-metrics: TEXT BACKEND_METRIC_NAME_1=BACKEND_METRIC_VALUE_1,BACKEND_METRIC_NAME_2=BACKEND_METRIC_VALUE_2

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

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

...
type OrcaReportType int

const (
        OrcaText OrcaReportType = iota
        OrcaBin
)

type HttpHeader struct {
        key   string
        value string
}

const (
        customUtilA = 0.2
        customUtilB = 0.4
)

func GetBinOrcaReport() HttpHeader {
        report := &pb.OrcaLoadReport{
                NamedMetrics: map[string]float64{"customUtilA": customUtilA, "customUtilB": customUtilB}}
        out, err := proto.Marshal(report)
        if err != nil {
                log.Fatalf("failed to serialize the ORCA proto: %v", err)
        }
        return HttpHeader{"endpoint-load-metrics-bin", base64.StdEncoding.EncodeToString(out)}
}

func GetHttpOrcaReport() HttpHeader {
        return HttpHeader{
                "endpoint-load-metrics",
                fmt.Sprintf("TEXT named_metrics.customUtilA=%.2f,named_metrics.customUtilB=%.2f",
                        customUtilA, customUtilB)}
}

func GetOrcaReport(t OrcaReportType) HttpHeader {
        switch t {
        case OrcaText:
                return GetHttpOrcaReport()
        case OrcaBin:
                return GetBinOrcaReport()
        default:
                return HttpHeader{"", ""}
        }
}
...

הגדרת מאזן העומסים לשימוש במדדים מותאמים אישית

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

השלבים שמתוארים בקטע הזה מניחים שכבר פרסתם מאזן עומסים עם קצוות עורפיים של NEG אזוריים. עם זאת, אפשר להשתמש באותם דגלי --custom-metrics שמוצגים כאן כדי לעדכן כל קצה עורפי קיים באמצעות הפקודה gcloud compute backend-services update.

  1. אפשר להגדיר את מצב האיזון של קצה עורפי ל-CUSTOM_METRICS כשמוסיפים את הקצה העורפי לשירות הקצה העורפי. משתמשים בדגל --custom-metrics כדי לציין את המדד המותאם אישית ואת ערך הסף שישמש להחלטות בנוגע לאיזון העומסים.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=NEG_ZONE \
        [--global | region=REGION] \
        --balancing-mode=CUSTOM_METRICS \
        --custom-metrics='name="BACKEND_METRIC_NAME_1",maxUtilization=MAX_UTILIZATION_FOR_METRIC_1' \
        --custom-metrics='name="BACKEND_METRIC_NAME_2",maxUtilization=MAX_UTILIZATION_FOR_METRIC_2'
    

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

    • BACKEND_SERVICE_NAME: השם של שירות ה-Backend
    • NEG_NAME: השם של ה-NEG האזורי או ההיברידי
    • NEG_ZONE: האזור שבו נוצר ה-NEG
    • REGION: במאזני עומסים אזוריים, האזור שבו נוצר מאזן העומסים
    • BACKEND_METRIC_NAME: השמות של המדדים המותאמים אישית שמשמשים כאן צריכים להיות זהים לשמות של המדדים המותאמים אישית שמדווחים בדוח ORCA של ה-Backend
    • MAX_UTILIZATION_FOR_METRIC: רמת הניצול המקסימלית שהאלגוריתמים לאיזון העומסים צריכים לשאוף להשיג עבור כל מדד

    לדוגמה, אם השרתים העורפיים מדווחים על שני מדדים מותאמים אישית, customUtilA ו-customUtilB (כפי שמוסבר בקטע הגדרת שרתים עורפיים לדיווח מדדים למאזן העומסים), משתמשים בפקודה הבאה כדי להגדיר את מאזן העומסים לשימוש במדדים האלה:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=NEG_ZONE \
        [--global | region=REGION] \
        --balancing-mode=CUSTOM_METRICS \
        --custom-metrics='name="customUtilA",maxUtilization=0.8' \
        --custom-metrics='name="customUtilB",maxUtilization=0.9'
    

    אפשר גם לספק רשימה של מדדים מותאמים אישית בקובץ JSON מובנה:

    {
    "name": "METRIC_NAME_1",
    "maxUtilization": MAX_UTILIZATION_FOR_METRIC_1,
    "dryRun": true
    }
    {
    "name": "METRIC_NAME_2",
    "maxUtilization": MAX_UTILIZATION_FOR_METRIC_2,
    "dryRun": false
    }

    לאחר מכן מצרפים את קובץ המדדים בפורמט JSON לשרת העורפי באופן הבא:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=NEG_ZONE \
        [--global | region=REGION] \
        --balancing-mode=CUSTOM_METRICS \
        --custom-metrics-file='BACKEND_METRIC_FILE_NAME'
    

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

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=NEG_ZONE \
        [--global | region=REGION] \
        --balancing-mode=CUSTOM_METRICS \
        --custom-metrics 'name="BACKEND_METRIC_NAME",maxUtilization=MAX_UTILIZATION_FOR_METRIC,dryRun=true'
    

    כשמגדירים מדד עם dryRun שמוגדר ל-true, המדד מדווח ל-Monitoring אבל מאזן העומסים לא משתמש בו בפועל.

    כדי לבטל את הפעולה הזו, צריך לעדכן את שירות ה-Backend עם הדגל dryRun שמוגדר לערך false.

    gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-zone=NEG_ZONE \
        [--global | region=REGION] \
        --balancing-mode=CUSTOM_METRICS \
        --custom-metrics 'name="BACKEND_METRIC_NAME",maxUtilization=MAX_UTILIZATION_FOR_METRIC_,dryRun=false'
    

    אם כל המדדים המותאמים אישית מוגדרים עם dryRun שמוגדר כ-true, הגדרת מצב האיזון כ-CUSTOM_METRICS או מדיניות המיקום של איזון העומסים כ-WEIGHTED_ROUND_ROBIN לא משפיעה על מאזן העומסים.

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

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

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        [--global | region=REGION] \
        --custom-metrics='name=BACKEND_SERVICE_METRIC_NAME,dryRun=false' \
        --locality-lb-policy=WEIGHTED_ROUND_ROBIN
    

    כמו במדדים ברמת ה-Backend שהוצגו קודם, אפשר גם לספק רשימה של מדדים מותאמים אישית בקובץ JSON מובנה ברמת שירות לקצה העורפי. משתמשים בשדה --custom-metrics-file כדי לצרף את קובץ המדדים לשירות לקצה העורפי.

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