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

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

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

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

  • מידע על עבודה עם נתונים של סדרות זמן מפורט במאמר בנושא סינון וצבירה.
  • ההגדרות של המונחים מדד, דלתא ומצטבר מפורטות במאמר בנושא סוגי מדדים.
  • מידע נוסף על הפונקציות שמשמשות לשילוב סדרות זמנים מופיע במאמרים 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. מאתרים את המכסה הרלוונטית.

    כששירות מספק מכסת צרכנים, הרשומה בטבלה לא כוללת משאב במעקב. לדוגמה, במכסה של רשתות משנה ב-API של Compute Engine, המדד מופיע בתור compute.googleapis.com/subnetworks ושם המגבלה מופיע בתור 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. מרחיבים את התפריט סוג הווידג'ט ובוחרים באפשרות תרשים עמודות אופקי מוערם.

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

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

    בוחרים באפשרות 'מכסת צרכן'.

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

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

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

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

  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

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

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

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

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

  • שימוש במסנני מעקב כדי לבחור ולתפעל נתונים. לדוגמה, כשמשתמשים בממשק הגרפי כדי ליצור תנאים למדיניות התראות, יוצרים מסננים. בדוגמה שמוצגת במאמר בנושא עבודה עם מדדי מכסות נעשה שימוש במסננים כדי לבחור נתונים לתרשים. אפשר גם להשתמש במסננים בבקשות ל-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 של ה-API‏ alertPolicies.create. אפשר להפעיל את 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

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

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

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

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

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

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

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

חלון מתגלגל בוחרים באפשרות 1440 m

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

פונקציה אנליטית (חלון נע) בוחרים באפשרות next older

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

בסדרות עיתיות
צבירה של סדרות עיתיות

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

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

בסדרות עיתיות
קיבוץ לפי סדרות עיתיות

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

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

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

תיבת הדו-שיח Configure trigger (הגדרת הטריגר)
שדה

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

שימוש ב-Cloud Monitoring API

אפשר ליצור את מדיניות ההתראות הזו באמצעות ה-method של ה-API‏ alertPolicies.create. אפשר להפעיל את 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 for 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 אפשר לדרוש רק 23 שעות ו-30 דקות של נתונים, ולצורך חישוב, הכלי ליישור מוסיף שעה אחת לתקופת היישור. אם אתם משתמשים ב-[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 במגבלה שרוצים לעקוב אחריה. מידע על איתור שמות של מגבלות זמין במאמר זיהוי מדדי מכסות ושמות של מגבלות

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

השאילתה הבאה יוצרת מדיניות התראות שמופעלת כשהשימוש במעבד של מכונת VM ב-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שם המכסה בממשק 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% באזורים ספציפיים

השאילתה הבאה יוצרת מדיניות התראות שמופעלת כששימוש המעבד במכונות וירטואליות של 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שם המכסה בממשק 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 (...), מפרטים את כל התוויות של המשאבים והמדדים.

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

השאילתה הבאה ב-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 ואת האפשרות להגדיר תרשימים בלוחות בקרה בהתאמה אישית:
שם השדה בתיבת הדו-שיח New condition (תנאי חדש)
תרשימים
פונקציה אנליטית (חלון נע)

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

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

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

חלון מתגלגל מרווח מינימלי
(כדי לגשת, לוחצים על הוספת אלמנט שאילתה)
קיבוץ לפי סדרת זמן
(בקטע בסדרות זמן)
התפריט השני של רכיב Aggregation
צבירה של סדרות עיתיות
(בקטע צבירה של סדרות עיתיות)
התפריט הראשון של רכיב 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

אם מגדירים את האפשרות aligner לערך 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 , משתמשים בהגדרות הבאות:

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

ערך
משאב ומדד בתפריט Resource type בוחרים באפשרות VPC Network.
בתפריט Metric category, בוחרים באפשרות quota.
בתפריט Metric, בוחרים באפשרות Instances per VPC Network 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 , משתמשים בהגדרות הבאות:

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

ערך
משאב ומדד בתפריט Resource type בוחרים באפשרות VPC Network.
בתפריט 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.