תרשים ומעקב אחרי מדדי המכסות

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

כדי ליצור מדיניות התראות בכמה פרויקטים ב- Google Cloud , מומלץ להשתמש ב-Monitoring API. כדי להציג בתרשים או לעקוב אחרי יחס של מדדים, מומלץ להשתמש ב-Prometheus Query Language‏ (PromQL). לסקירה כללית על מכסות הקצאה ומכסות לקצב הגשת בקשות ב-Cloud

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

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

  • למידע על עבודה עם נתונים של סדרות עתיות, קראו את המאמר סינון וצבירה.
  • ההגדרות של המונחים gauge,‏ delta ו-cumulative מפורטות במאמר סוגי מדדים.
  • למידע נוסף על הפונקציות שמשמשות לשילוב סדרות זמנים, ראו Aligner ו-Reducer.

ניהול מכסות

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

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

    כדי לראות את השימוש במכסה של שירות מסוים, מסננים את הסדרות העיתיות של serviceruntime לפי תווית quota_metric ספציפית.

    רוב הדוגמאות בדף הזה הן דוגמאות למכסות צרכנים.

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

    • service/quota/quota-type/exceeded
    • service/quota/quota-type/limit
    • service/quota/quota-type/usage

    לדוגמה, ל-Compute Engine יש את המשאב compute.googleapis.com/VpcNetwork. המדדים שקשורים למכסות ומשויכים למשאב הזה הם קבוצת המשנה compute.googleapis.com/quota של המדדים של compute. יש שלושה סוגי מדדים שקשורים למכסה "מכונות לכל רשת VPC":

זיהוי מדדי המכסות ושמות המגבלות

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

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

  • מדד המכסה: מדד המכסה הוא מזהה של סוג המכסה. הוא לא אחד מסוגי המדדים שמתוארים ברשימת המדדים. לדוגמה, כל נתוני המכסות של הצרכנים נכתבים כסוג המדד serviceruntime.googleapis.com, כמו quota/allocation/usage. לסוג המדד הזה יש תווית quota_metric שאפשר להשתמש בה כדי לסנן לפי מכסה ספציפית, למשל נתוני שימוש בהקצאה.
  • שם המגבלה: שם המגבלה מזהה מגבלה על סוג ספציפי של מכסה. למכסה יכולה להיות יותר ממגבלה אחת שמשויכת אליה. לדוגמה, למכסה של קריאות לקריאה יכולה להיות מגבלה של 100 לדקה ומגבלה של 1,000 ליום, עם שני שמות מגבלה, readsPerMinute ו-readsPerDay. יכול להיות שלסוגי מדדים שקשורים למכסות יהיה שדה limit_name לערך הזה.

כל סוגי המדדים של serviceruntime.googleapis.com/quota מספקים את התווית quota_metric, אבל רק חלק מהם כוללים את התווית limit_name. סוגי המדדים הספציפיים למשאבים של מכסות כוללים את התווית limit_name.

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

  1. במסוף Google Cloud , נכנסים לדף Quotas & System Limits:

    כניסה לדף Quotas & System Limits

    אם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא IAM & Admin.

  2. לוחצים על View column ומוסיפים את העמודות הבאות לתצוגת המכסות:

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

    כששירות מספק מכסה לצרכן, הרשומה בטבלה לא כוללת משאב במעקב. לדוגמה, במכסה של רשתות המשנה ב-Compute Engine API, הערך של Metric הוא compute.googleapis.com/subnetworks והערך של Limit name הוא SUBNETWORKS-per-project. העמודה משאב במעקב ריקה.

    אם לשירות יש מכסה או מגבלה ספציפית למשאב, סוג המשאב במעקב מצוין. לדוגמה, בדף המכסות של AlloyDB API מופיעה הרשומה "Storage used per cluster (bytes)". סוג המשאב במעקב הוא alloydb.googleapis.com/Location והמדד הוא alloydb.googleapis.com/storage_usage_per_cluster.

דוגמה: הצגת השימוש במדד מכסה ספציפי של צרכן

המטרה היא ליצור תרשים שמציג את מכסת האחסון הכוללת בדיסק של Compute Engine לפי אזור. בדוגמה הבאה, שמתייחסת למכסות של צרכני נתונים, מאחזרים את הנתונים של quota/allocation/usage ואז מסננים אותם כדי להציג את השימוש בהקצאה של מדד מכסה ספציפי:

  1. במסוף Google Cloud , בוחרים באפשרות Cloud Monitoring ואז באפשרות Metrics Explorer.

  2. בסרגל הכלים, מרחיבים את תפריט תקופת הזמן ובוחרים באפשרות 14 הימים האחרונים.

  3. מרחיבים את התפריט Widget type ובוחרים באפשרות תרשים עמודות אופקי מוערם.

  4. מגדירים את Metrics Explorer כך שיציג את השימוש במכסת ההקצאה:

    1. לוחצים על Select a metric ומזינים allocation ב- Filter bar.
    2. בוחרים באפשרות Consumer Quota למשאב.
    3. בוחרים באפשרות Quota בקטגוריית המדדים.
    4. בוחרים באפשרות Allocation quota usage בתור מדד השימוש במכסת הקצאה ולוחצים על Apply.
    5. מרחיבים את התפריט Aggregation ובוחרים באפשרות Unaggregated.

    בוחרים באפשרות Consumer quota.

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

    אם אתם משתמשים ב-Cloud Monitoring API, ערך המסנן המקביל הוא:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota"
    

    כדי לראות את ערך המסנן הזה, מרחיבים את התפריט Resource type ובוחרים באפשרות Direct filter mode.

  5. כדי להגביל את התרשים לשירות Compute Engine, מוסיפים את המסנן service = compute.googleapis.com:

    סינון מכסת הצרכן לפי שירות המחשוב.

    אם אתם משתמשים ב-Cloud Monitoring API, ערך המסנן המקביל הוא:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" resource.label.service="compute.googleapis.com"
    

    בתרשים מוצגת עכשיו סדרת הזמן של השימוש במכסות ההקצאה של Compute Engine. במקרא מוצג הערך של התווית quota_metric לכל סדרת זמנים שמוצגת. הערך הזה מזהה את המכסה הספציפית. לדוגמה, compute.googleapis.com/disks_total_storage מזהה את סדרת הזמן של מכסת האחסון הכוללת של הדיסק ב-Compute Engine.

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

  6. כדי ליצור תרשים שמציג את השימוש הכולל במכסת האחסון בדיסק של Compute Engine, משתמשים במסנן quota_metric = compute.googleapis.com/disks_total_storage:

    סינון מכסת הצרכן לפי מדד המכסה.

    אם אתם משתמשים ב-Cloud Monitoring API, ערך המסנן המקביל הוא:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  7. בתרשים הקודם מוצגות סדרות זמנים לאזורים us-central1 ו-us-east1, ולכמה תחומים, כולל התחום us-central1-a.

    כדי לצמצם את התרשים כך שיוצגו בו רק נתונים של האזורים, בלי התחומים, מוסיפים מסנן שמבוסס על התווית location. בדוגמה הזו, שבה שני האזורים מתחילים ב-us- ומסתיימים ב-1, מסנן שמשתמש בביטוי הרגולרי location =~ ^us.*1$ פועל היטב:

    סינון לפי מדד המכסה והאזור.

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

כללי מדיניות התראות ב-Cloud Monitoring

מדיניות התראות היא דרך להגדיר ל-Monitoring לשלוח לכם התראה כשקורה משהו, כמו הגעה ל-85% מהמגבלה של המכסה.

מדיניות התראות היא אוסף של תנאים ופרטי התראות:

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

יש שתי שיטות ליצירת תנאים למדיניות התראה:

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

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

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

דוגמאות לסינון של מדיניות התראות

בכל סעיף משנה בחלק הזה יש ייצוג JSON של מדיניות התראה, וגם שתי טבלאות שמתארות איך להגדיר את המדיניות במסוף Google Cloud :

  • בטבלה הראשונה מתואר מה מנוטר ואיך לשלב את הנתונים.
  • בטבלה השנייה מתואר מתי נוצרת התראה.

הדוגמאות האלה מיועדות לגישה שמבוססת על מסננים.

אף אחת מהמדיניות האלה לא מחשבת יחסים. במאמר דוגמאות למדיניות התראות ב-PromQL תוכלו למצוא דוגמאות שמבוססות על יחסים.

התראה על שגיאות ב-quota/exceeded

אתם יכולים ליצור מדיניות התראות כדי לקבל התראה אם שירות כלשהו בפרויקט ב-Google Cloud מדווח על שגיאה של חריגה מהמכסה. אפשר ליצור מדיניות מהסוג הזה באמצעות מסוף Google Cloud או באמצעות Cloud Monitoring API.

באמצעות מסוף Google Cloud

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

ממלאים את תיבת הדו-שיח New condition לפי ההגדרות שבטבלה הבאה. ההגדרות האלה מציינות שאתם רוצים לעקוב אחרי נתוני סדרת הזמנים של המדד serviceruntime /quota/exceeded בכל השירותים בפרויקט Google Cloud , ולקבץ את הנתונים לפי מגבלת המכסה.

תיבת הדו-שיח תנאי חדש
שדה

ערך
משאב ומדד בתפריט Resources בוחרים באפשרות Consumer Quota.
בתפריט Metric categories בוחרים באפשרות Quota.
בתפריט Metrics, בוחרים באפשרות Quota exceeded error.

(metric.type הוא serviceruntime.googleapis.com/quota/exceeded,
ו-resource.type הוא consumer_quota).
סינון

מוסיפים מסנן כדי שהתרשים יציג רק נתונים של השירות שרוצים לעקוב אחריו. לדוגמה, כדי לעקוב אחרי השירות "ניהול זהויות והרשאות גישה", מוסיפים את המסנן הבא: service = iam.googleapis.com.

כשהשדה של המסנן ריק, כל נתוני המדדים הזמינים נכללים בתרשים.

חלון זמן דינמי בוחרים באפשרות 1 m
פונקציה של חלון זמן דינמי בוחרים באפשרות count true

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

במדד הזה, הפונקציות של חלון הזמן הדינמי של count true ו-count שוות ערך.

בסדרות זמנים
צבירה של סדרות זמנים

בוחרים באפשרות sum.

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

בסדרות זמנים
קיבוץ לפי סדרות זמנים

בוחרים באפשרות quota_metric.

האפשרות הזו מקבצת את הנתונים לפי סוג השם של quota_metric.

ממלאים את תיבת הדו-שיח Configure trigger לפי ההגדרות הבאות: ההגדרות האלה גורמות למדיניות ההתראות ליצור התראה אם מספר השגיאות של חריגה מהמכסה גדול מ-0 במשך דקה אחת. כאן נבחר הערך 0 כי שגיאות של חריגה מהמכסה הן לא צפויות, והן מצביעות על כך שצריך להגדיל את המכסה או לשנות את השירות כדי לצמצם את בקשות ה-API. יכול להיות שכדאי להשתמש בסף גבוה יותר.

תיבת הדו-שיח Configure trigger
שדה

ערך
סוג התנאי Threshold
טריגר להתראה Any time series violates
מיקום הסף Above threshold
ערך הסף 0
חלון הבדיקה החוזרת מטר אחד

שימוש ב-Cloud Monitoring API

אפשר ליצור את מדיניות ההתראות הזו באמצעות ה-method ‏alertPolicies.create של ה-API. אפשר להפעיל את Cloud Monitoring API ישירות, באמצעות Google Cloud CLI או באמצעות ספריות לקוח. מידע נוסף זמין במאמר יצירת כללי מדיניות.

במאמר מדיניות לדוגמה מוסבר איך לייצג מדיניות התראות ב-JSON או ב-YAML.

בהמשך מוצג ייצוג של מדיניות ההתראה הזו בפורמט JSON.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "60s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_COUNT_TRUE"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "60s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/exceeded\" resource.type=\"consumer_quota\"",
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Quota exceeded error by label.quota_metric SUM",
      }
    ],
    "displayName": "Quota exceeded policy",
  }

התראה על quota/allocation/usage מוחלט

אתם יכולים ליצור מדיניות התראות כדי לקבל התראה אם השימוש במכסת ההקצאה של שירות ספציפי בפרויקט ב-Google Cloud חורג מסף שהגדרתם. אפשר ליצור מדיניות מהסוג הזה באמצעות מסוף Google Cloud או באמצעות Cloud Monitoring API.

באמצעות מסוף Google Cloud

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

ממלאים את תיבת הדו-שיח New condition לפי ההגדרות שבטבלה הבאה. ההגדרות האלה מציינות שאתם רוצים לעקוב אחרי נתוני סדרת הזמנים של המדד serviceruntime /quota/allocation/usage בשירות אחד בפרויקט Google Cloud , ולקבץ את הנתונים לפי מגבלת המכסה.

תיבת הדו-שיח תנאי חדש
שדה

ערך
משאב ומדד בתפריט Resources בוחרים באפשרות Consumer Quota.
בתפריט Metric categories בוחרים באפשרות Quota.
בתפריט מדדים, בוחרים באפשרות שימוש במכסת הקצאה.

(metric.type הוא serviceruntime.googleapis.com/quota/allocation/usage,
ו-resource.type הוא consumer_quota).
סינון

מוסיפים מסנן כדי שהתרשים יציג רק נתונים של השירות שרוצים לעקוב אחריו. לדוגמה, כדי לעקוב אחרי השירות "ניהול זהויות והרשאות גישה", מוסיפים את המסנן הבא: service = iam.googleapis.com.

כשהשדה של המסנן ריק, כל נתוני המדדים הזמינים נכללים בתרשים.

חלון זמן דינמי בוחרים באפשרות 1440 m

התקופה תואמת למרווח הדגימה של המדד הזה.

פונקציה של חלון זמן דינמי בוחרים באפשרות next older

הפונקציה של חלון הזמן הדינמי מוגדרת ל-next older כדי לכלול את הערך האחרון שנמדד במדד GAUGE.

בסדרות זמנים
צבירה של סדרות זמנים

בוחרים באפשרות sum.

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

בסדרות זמנים
קיבוץ לפי סדרות זמנים

בוחרים באפשרות quota_metric.

האפשרות הזו מקבצת את הנתונים לפי סוג השם של quota_metric.

ממלאים את תיבת הדו-שיח Configure trigger באמצעות ההגדרות הבאות. ההגדרות האלה גורמות למדיניות ההתראות ליצור התראה אם הערך של סדרת הזמן חורג מ-2.5 למשך 1,440 דקות. הערך 1440m תואם לחלון הזמן הדינמי. הערך 2.5 נבחר בדוגמה הזו כי הוא קצת יותר גבוה מהערך הרגיל של מערכת הבדיקה. כדאי לבחור את הסף בהתאם לשירות שאתם עוקבים אחריו, בשילוב עם הבנה של טווח הערכים הצפוי של המדד.

תיבת הדו-שיח Configure trigger
שדה

ערך
סוג התנאי Threshold
טריגר להתראה Any time series violates
מיקום הסף Above threshold
ערך הסף 2.5
חלון הבדיקה החוזרת ‫1,440 מ'

שימוש ב-Cloud Monitoring API

אפשר ליצור את מדיניות ההתראות הזו באמצעות ה-method ‏alertPolicies.create של ה-API. אפשר להפעיל את Cloud Monitoring API ישירות, באמצעות Google Cloud CLI או באמצעות ספריות לקוח. מידע נוסף זמין במאמר יצירת כללי מדיניות.

במאמר מדיניות לדוגמה מוסבר איך לייצג מדיניות התראות ב-JSON או ב-YAML.

בהמשך מוצג ייצוג של מדיניות ההתראה הזו בפורמט JSON.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "86400s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_NEXT_OLDER"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "86400s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/allocation/usage\" resource.type=\"consumer_quota\" resource.label.\"service\"=\"iam.googleapis.com\"",
          "thresholdValue": 2.5,
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Allocation quota usage for iam.googleapis.com by label.quota_metric SUM",
      }
    ],
    "displayName": "Absolute quota usage policy",
  }

דוגמאות למדיניות התראות ב-PromQL

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

אפשר ליצור מדיניות התראות מבוססת-PromQL באמצעות מסוף Google Cloud או Monitoring API:

למידע ספציפי על PromQL, קראו את המאמר PromQL ל-Cloud Monitoring. למידע נוסף על מדיניות התראות שמבוססות על PromQL, ראו מדיניות התראות שמבוססות על PromQL.

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

תבנית השאילתה הבאה ב-PromQL מתארת מדיניות התראה ששולחת התראה כשקצב השימוש לדקה במשאב ספציפי חורג מ-80% ממגבלה ספציפית:

(
  sum by (project_id, quota_metric, location) (increase({"serviceruntime.googleapis.com/quota/rate/net_usage", monitored_resource="consumer_quota", service="sample.googleapis.com"}[1m]))
  /
  max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service="sample.googleapis.com", limit_name="Limit"})
) > 0.8

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

  • מחליפים את sample.googleapis.com בשירות שרוצים לעקוב אחריו.
  • מחליפים את Limit של limit_name במגבלה שרוצים לעקוב אחריה. למידע על איתור שמות של מגבלות, ראו זיהוי מדדי מכסות ושמות של מגבלות.
  • מחליפים את 1m בחלון שמתאים לשאילתה.

אי אפשר ליצור את השאילתה הזו עם מסננים.

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

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

מבנה השאילתה הבא ב-PromQL מתאר מדיניות התראה ששולחת התראות כששיעור השימוש בדקה או ביום של שירותי משאבים כלשהם חורג מ-80%:

(
  sum by (project_id, quota_metric, location) (increase({"serviceruntime.googleapis.com/quota/rate/net_usage", monitored_resource="consumer_quota", service=~".*"}[1m]))
  /
  max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service=~".*", limit_name=~".*PerMinute.*"})
)
or
(
  sum by (project_id, quota_metric, location) (increase({"serviceruntime.googleapis.com/quota/rate/net_usage", monitored_resource="consumer_quota", service=~".*"}[23h]))
  /
  max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service=~".*", limit_name=~".*PerDay.*"})
) > 0.8

בשאילתה הקודמת, הארגומנט של המיישר היומי מוגדר ל-23 שעות במקום ליום אחד. ב-PromQL אפשר לבקש נתונים רק ל-25 שעות, ולמטרות חישוב, המיישר מוסיף שעה אחת לתקופת היישור. אם משתמשים ב-[1d], אי אפשר לשמור את התנאי כי הוא דורש נתונים של 25 שעות.

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

  • מחליפים את הביטוי הרגולרי של service=~ בביטוי רגולרי של השירותים שרוצים לעקוב אחריהם.
  • ביחס הראשון:
    • מחליפים את .*PerMinute.* של limit_name=~ בביטוי רגולרי לקבוצה הראשונה של המגבלות שרוצים לעקוב אחריהן. למידע על איתור שמות של מגבלות, ראו זיהוי מדדי מכסות ושמות של מגבלות.
    • מחליפים את 1m בחלון זמן שמתאים למגבלות שלכם.
  • ביחס השני:
    • מחליפים את .*PerDay.* ב-limit_name=~ בביטוי רגולרי לקבוצה השנייה של המגבלות שרוצים לעקוב אחריהן.
    • מחליפים את 23h בחלון זמן שמתאים למגבלות שלכם.

אי אפשר ליצור את השאילתה הזו עם מסננים.

התראה על יחס השימוש במכסת ההקצאה למגבלה אחת

מבנה השאילתה הבא ב-PromQL מתאר התראה שמופעלת כשניצול ההקצאה היומית של שירות משאבים ספציפי חורג מ-80% ממגבלה ספציפית:

(
 max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/allocation/usage", monitored_resource="consumer_quota", service="sample.googleapis.com"})
 /
 min by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service="sample.googleapis.com", limit_name="Limit"})
) > 0.8

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

  • מחליפים את sample.googleapis.com בשירות שרוצים לעקוב אחריו.
  • מחליפים את Limit של limit_name במגבלה שרוצים לעקוב אחריה. למידע על איתור שמות של מגבלות, ראו זיהוי מדדי מכסות ושמות של מגבלות.

דוגמה: שימוש ב-75% מהמעבד (CPU) בכל אזור

השאילתה הבאה יוצרת מדיניות התראה שמופעלת כששימוש ב-CPU של מכונה וירטואלית ב-Compute Engine חורג מ-75% מהמגבלה בכל אזור:

(
 max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/allocation/usage", monitored_resource="consumer_quota", service="compute.googleapis.com"})
 /
 min by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service="compute.googleapis.com", limit_name="CPUS-per-project-region"})
) > 0.75

מדיניות המכסות הזו משתמשת בשם המגבלה CPUS-per-project-region במכסת המעבדים (CPUs) של Compute Engine API. למידע על איתור שמות של מגבלות, ראו זיהוי מדדי מכסות ושמות של מגבלות.

מדיניות התראה שעוקבת אחרי היחס של מכסת ההקצאה לכל שירות

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

השאילתה הבאה ב-PromQL מתארת התראה שעוקבת אחרי מצבים שבהם השימוש היומי בהקצאה של שירות משאבים כלשהו חורג מ-80% מכל אחת ממגבלות המכסות:

(
 max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/allocation/usage", monitored_resource="consumer_quota"})
 /
 min by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota"})
) > 0.8

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

דוגמה: שימוש במעבד (CPU) גבוה מ-50% באזורים ספציפיים

השאילתה הבאה יוצרת מדיניות התראה שמופעלת כששימוש ה-CPU של מכונות וירטואליות ב-Compute Engine עולה על 50% מהמגבלה בכל אחד מהאזורים של us-central1. השאילתה הזו מסננת את הנתונים של limit לפי שם המגבלה ומיקום המשאב:

(
max by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/allocation/usage", monitored_resource="consumer_quota", service="compute.googleapis.com"})
/
min by (project_id, quota_metric, location) ({"serviceruntime.googleapis.com/quota/limit", monitored_resource="consumer_quota", service="compute.googleapis.com", limit_name="CPUS-per-project-zone", location=~"us-central1-.*"})
)
> 0.5

מדיניות המכסות הזו משתמשת בשם המגבלה CPUS-per-project-zone במכסת המעבדים (CPUs) של Compute Engine API. למידע על איתור שמות של מגבלות, ראו זיהוי מדדי מכסות ושמות של מגבלות.

התראה על יחס באמצעות מכסה ספציפית למשאב

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

מבנה השאילתה הבא מתאר התראה שמופעלת כשניצול המכסה חורג מ-80% מהמגבלה:

(
 max by (resource_label_1, ..., resource_label_n, metric_label_1, ..., metric_label_n) ({"sample.googleapis.com/quota/samplemetric/usage", monitored_resource="sample.googleapis.com/SampleResource"})
 /
 min by (resource_label_1, ..., resource_label_n, metric_label_1, ..., metric_label_n) ({"sample.googleapis.com/quota/samplemetric/limit", monitored_resource="sample.googleapis.com/SampleResource"})
) > 0.8

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

  • מחליפים את sample.googleapis.com בשירות שרוצים לעקוב אחריו.
  • מחליפים את SampleResource במשאב במעקב שמשויך.
  • מחליפים את samplemetric במחרוזת של קבוצת סוגי מדדים.
  • בפעולות by (...), מפרטים את כל התוויות של המשאבים והמדדים.

דוגמה: שימוש ב-75% מהמעבד (CPU) בכל אזור

השאילתה הבאה ב-PromQL מגדירה מדיניות התראה שמנטרת מתי השימוש במכסת instances_per_vpc_network של Compute Engine חורג מ-80% בכל מזהה רשת:

(
 max by (resource_container, limit_name, location, network_id) ({"compute.googleapis.com/quota/instances_per_vpc_network/usage", monitored_resource="compute.googleapis.com/VpcNetwork"})
 /
 min by (resource_container, limit_name, location, network_id) ({"compute.googleapis.com/quota/instances_per_vpc_network/limit", monitored_resource="compute.googleapis.com/VpcNetwork"})
) > 0.8

שימו לב שהשאילתה הזו משתמשת בסוג המשאב compute.googleapis.com/VpcNetwork, ולא ב-consumer_quota, והיא לוקחת את היחס בין שני מדדי compute.googleapis.com/quota/instances_per_vpc_network, usage ו-limit.

דוגמה: שימוש במכסות של Dialogflow למודל ספציפי

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

לדוגמה, שאילתת PromQL הבאה מגדירה מדיניות התראה שעוקבת אחרי השימוש במכסה ConversationalAgentLLMTokensPerMinutePerBaseModelPerRegion של Dialogflow, כדי לבדוק אם הוא חורג מ-80% במודל ספציפי באזור ספציפי:

sum(
    rate(
        {"__name__"="dialogflow.googleapis.com/quota/ConversationalAgentLLMTokenConsumption/usage",
        "limit_name"="ConversationalAgentLLMTokensPerMinutePerBaseModelPerRegion",
        "monitored_resource"="dialogflow.googleapis.com/Location",
        "location"="us-central1",
        "base_model"="gemini-2.0-flash-lite-001"
      }[1m]
    ) * 60
  ) by (limit_name, location, base_model)

/

sum(
    max_over_time(
        {"__name__"="dialogflow.googleapis.com/quota/ConversationalAgentLLMTokenConsumption/limit",
        "limit_name"="ConversationalAgentLLMTokensPerMinutePerBaseModelPerRegion",
        "monitored_resource"="dialogflow.googleapis.com/Location",
        "location"="us-central1",
        "base_model"="gemini-2.0-flash-lite-001"
    }[1m]))
by (limit_name, location, base_model)

> .8

שימו לב שהשאילתה הזו משתמשת בסוג המשאב dialogflow.googleapis.com/Location, ולא ב-consumer_quota, והיא לוקחת את היחס בין שני מדדי dialogflow.googleapis.com/quota/ConversationalAgentLLMTokenConsumption, usage ו-limit.

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

בתרשימים מוצגים נתונים של סדרות זמנים. אתם יכולים להשתמש ב-Metrics Explorer כדי ליצור תרשים. ב-Metrics Explorer אתם יכולים למחוק את התרשים כשאתם לא צריכים אותו יותר, או לשמור אותו במרכז הבקרה. בתצוגת מרכז הבקרה, אתם יכולים להוסיף תרשים למרכז הבקרה.

אם אתם רוצים להגדיר רק תרשים שמציג נתוני מכסות, אתם יכולים להשתמש בהגדרות שבטבלה New condition. הסימון של תנאי ההתראה שונה מהסימון של כלי התרשימים. הכלים ליצירת תרשימים כוללים את Metrics Explorer והגדרת תרשימים במרכזי בקרה בהתאמה אישית:
תיבת הדו-שיח תנאי חדש
שם השדה
תרשימים
פונקציה של חלון זמן דינמי

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

כדי לציין את פונקציית היישור:

  1. ברכיב Aggregation, מרחיבים את התפריט הראשון ובוחרים באפשרות Configure aligner. הרכיבים Alignment function ו-Grouping נוספים.
  2. מרחיבים את הרכיב Alignment function ובוחרים אפשרות.

חלון זמן דינמי מרווח מינימלי
(כדי לגשת, לוחצים על הוספת רכיב שאילתה)
קיבוץ לפי סדרת זמנים
(בקטע Across time series)
התפריט השני של הרכיב Aggregation
צבירת סדרות זמנים
(בקטע Across time series)
התפריט הראשון של הרכיב Aggregation

סדרות זמנים של quota/rate/net_usage

כדי להציג את נתוני סדרת הזמנים של המדד serviceruntime quota/rate/net_usage, לכל השירותים בפרויקט Google Cloud , שבהם הנתונים מקובצים לפי שם המדד של המכסה ומוצג קצב השימוש, השתמשו בהגדרות הבאות:

תיבת הדו-שיח תנאי חדש
שדה

ערך
משאב ומדד בתפריט Resources בוחרים באפשרות Consumer Quota.
בתפריט Metric categories בוחרים באפשרות Quota.
בתפריט Metrics, בוחרים באפשרות שימוש במכסה לקצב הגשת בקשות.

(metric.type הוא serviceruntime.googleapis.com/quota/rate/net_usage,
ו-resource.type הוא consumer_quota).
סינון

מוסיפים מסנן כדי שהתרשים יציג רק נתונים של השירות שרוצים לעקוב אחריו. לדוגמה, כדי לעקוב אחרי השירות "ניהול זהויות והרשאות גישה", מוסיפים את המסנן הבא: service = iam.googleapis.com.

כשהשדה של המסנן ריק, כל נתוני המדדים הזמינים נכללים בתרשים.

חלון זמן דינמי בוחרים באפשרות 1 m

התקופה של דקה אחת תואמת למרווח הדגימה של המדד הזה.

פונקציה של חלון זמן דינמי בוחרים באפשרות rate

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

בסדרות זמנים
צבירה של סדרות זמנים

בוחרים באפשרות sum.

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

בסדרות זמנים
קיבוץ לפי סדרות זמנים

בוחרים באפשרות quota_metric.

האפשרות הזו מקבצת את הנתונים לפי סוג השם של quota_metric.

סדרות זמנים של quota/instances_per_vpc_network/limit

כדי להציג את נתוני סדרת הזמן של המדד compute.googleapis.com (quota/instances_per_vpc_network/limit) לכל הרשתות בפרויקט Google Cloud , משתמשים בהגדרות הבאות:

תיבת הדו-שיח תנאי חדש
שדה

ערך
משאב ומדד בתפריט סוג משאב, בוחרים באפשרות רשת VPC.
בתפריט Metric category, בוחרים באפשרות quota.
בתפריט Metric, בוחרים באפשרות Instances per רשת VPC quota limit.

(metric.type הוא compute.googleapis.com/quota/instances_per_vpc_network/limit,
ו-resource.type הוא compute.googleapis.com/VpcNetwork).
סינון להשאיר ריק
חלון זמן דינמי בוחרים באפשרות 1 m

התקופה תואמת למרווח הדגימה של המדד הזה.

פונקציה של חלון זמן דינמי בוחרים באפשרות mean
בסדרות זמנים
צבירה של סדרות זמנים
השארת הסטטוס none
בסדרות זמנים
קיבוץ לפי סדרות זמנים
להשאיר ריק

סדרות זמנים של quota/instances_per_vpc_network/usage

כדי לראות את נתוני סדרת הזמנים של המדד compute.googleapis.com quota/instances_per_vpc_network/usage, באחת מהרשתות בפרויקט Google Cloud , משתמשים בהגדרות הבאות:

תיבת הדו-שיח תנאי חדש
שדה

ערך
משאב ומדד בתפריט סוג משאב, בוחרים באפשרות רשת VPC.
בתפריט Metric category, בוחרים באפשרות quota.
בתפריט Metric, בוחרים באפשרות Instances per VPC Network quota usage.

(metric.type הוא compute.googleapis.com/quota/instances_per_vpc_network/usage,
ו-resource.type הוא compute.googleapis.com/VpcNetwork).
מדד בתפריט Metric, בוחרים באפשרות compute.googleapis.com/quota/instances_per_vpc_network/usage.
סינון

מוסיפים מסנן כדי שהתרשים יציג רק קבוצת משנה של כל הנתונים. לדוגמה, כדי לראות את השימוש ברשת ספציפית, מוסיפים את המסנן הבא: network_id = identifier.

כשהשדה של המסנן ריק, כל נתוני המדדים הזמינים נכללים בתרשים.

חלון זמן דינמי בוחרים באפשרות 1 m

התקופה תואמת למרווח הדגימה של המדד הזה.

פונקציה של חלון זמן דינמי בוחרים באפשרות mean
בסדרות זמנים
צבירה של סדרות זמנים
השארת הסטטוס none
בסדרות זמנים
קיבוץ לפי סדרות זמנים
להשאיר ריק

תרשימי PromQL

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

מידע נוסף מופיע במאמר שימוש בכלי לעריכת קוד ב-PromQL.