דוגמאות למדיניות ב-JSON

במסמך הזה מופיעות דוגמאות למדיניות התראות. הדוגמאות כתובות ב-JSON, והן משתמשות במסנני Monitoring. אתם יכולים ליצור מדיניות בפורמט JSON או YAML, בלי קשר לאופן שבו אתם מגדירים את המדיניות – באמצעות מסנני מעקב או באמצעות שפת השאילתות של Prometheus‏ (PromQL). ‫Google Cloud CLI יכול לקרוא ולכתוב גם JSON וגם YAML, בעוד ש-REST API יכול לקרוא JSON.

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

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

יצירת קובץ YAML למדיניות קיימת

כדי ליצור ייצוגים ב-YAML של מדיניות ההתראות הקיימת, משתמשים בפקודה gcloud monitoring policies list כדי להציג את המדיניות ובפקודה gcloud monitoring policies describe כדי להדפיס את המדיניות.

כדי ליצור ייצוגים ב-YAML של ערוצי ההתראות הקיימים, משתמשים בפקודה gcloud monitoring channels list כדי להציג את הערוצים, ובפקודה gcloud monitoring channels describe כדי להדפיס את הגדרות הערוץ.

אם לא כוללים את הדגל --format בפקודות של Google Cloud CLI, הפורמט שמוגדר כברירת מחדל הוא YAML בשתי הפקודות gcloud ... describe.

לדוגמה, הפקודה gcloud monitoring policies describe הבאה מאחזרת מדיניות אחת בשם projects/a-gcp-project/alertPolicies/12669073143329903307, וההפניה האוטומטית (>) מעתיקה את הפלט לקובץ test-policy.yaml:

gcloud monitoring policies describe projects/a-gcp-project/alertPolicies/12669073143329903307 > test-policy.yaml

יצירת קובץ JSON למדיניות קיימת

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

דוגמאות למדיניות

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

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

  • מסירים את השדות הבאים מכל ערוצי ההתראות:
    • name
    • verificationStatus
  • צריך ליצור ערוצי התראות לפני שמתייחסים לערוצים במדיניות בנושא התראות (נדרשים מזהי הערוצים החדשים).
  • מסירים את השדות הבאים מכל מדיניות התראות שיוצרים מחדש:
    • name
    • condition.name
    • creationRecord
    • mutationRecord

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

  • תנאי סף; כמעט כל סוגי המדיניות שמוזכרים בממשק המשתמש הם וריאציות של תנאי סף
  • תנאי היעדרות

בדוגמאות הבאות, התנאים האלה תואמים ל-conditionThreshold ול-conditionAbsent. מידע נוסף זמין בדף העזרה בנושא Condition.

אפשר ליצור הרבה מכללי המדיניות האלה באופן ידני באמצעות מסוף Google Cloud , אבל חלק מהם אפשר ליצור רק באמצעות Monitoring API. מידע נוסף זמין במאמר [יצירת מדיניות התראות (ממשק משתמש)][alert-ui] או במאמר יצירת מדיניות התראות באמצעות ה-API.

מדיניות בנושא ערכי סף של מדדים

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

מדיניות ההתראות הבאה משתמשת בממוצע השימוש במעבד כאינדיקטור למצב התקינות של קבוצת מכונות וירטואליות. התנאי של המדיניות מתקיים כשהשימוש הממוצע במעבד של המכונות הווירטואליות בפרויקט, שנמדד במרווחים של 60 שניות, חורג מסף של 90% שימוש למשך 15 דקות (900 שניות):

{
    "displayName": "Very high CPU usage",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "CPU usage is extremely high",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                            "project"
                        ],
                        "perSeriesAligner": "ALIGN_MAX"
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "900s",
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
                          AND resource.type=\"gce_instance\"",
                "thresholdValue": 0.9,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

מדיניות בנושא היעדר מדדים

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

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

זו דוגמה לתיאור של מדד מותאם אישית. אפשר ליצור את המדד באמצעות APIs Explorer.

{
  "description": "Number of times the pipeline has run",
  "displayName": "Pipeline runs",
  "metricKind": "GAUGE",
  "type": "custom.googleapis.com/pipeline_runs",
  "labels": [
    {
      "description": "The name of the pipeline",
      "key": "pipeline_name",
      "valueType": "STRING"
    },
  ],
  "unit": "1",
  "valueType": "INT64"
}

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

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

{
    "displayName": "Data ingestion functioning",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Hourly pipeline is up",
            "conditionAbsent": {
                "duration": "3900s",
                "filter": "resource.type=\"global\"
                          AND metric.type=\"custom.googleapis.com/pipeline_runs\"
                          AND metric.label.pipeline_name=\"hourly\"",
            }
        }
    ],
}

מדיניות בנושא תחזיות

תנאי תחזית מתקיים כשהמקרים הבאים מתרחשים:

  • כל התחזיות לסדרה עתית זהות בטווח הזמן שמוגדר בשדה duration.
  • תחזיות של Cloud Monitoring מראות שסדרת הזמנים תחרוג מהסף במסגרת אופק התחזית.

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

{
    "displayName": "NFS free bytes alert",
    "combiner": "OR",
    "conditions": [
      {
        "displayName": "Filestore Instance - Free disk space percent",
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "300s",
              "perSeriesAligner": "ALIGN_MEAN"
            }
          ],
          "comparison": "COMPARISON_LT",
          "duration": "900s",
          "filter": "resource.type = \"filestore_instance\" AND metric.type = \"file.googleapis.com/nfs/server/free_bytes_percent\"",
          "forecastOptions": {
            "forecastHorizon": "3600s"
          },
          "thresholdValue": 20,
          "trigger": {
            "count": 1
          }
        }
      }
    ],
}

מדיניות בנושא שיעור השינוי

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

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

מדיניות ההתראות הזו בודקת אם השימוש במעבד עולה במהירות:

{
  "displayName": "High CPU rate of change",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "CPU usage is increasing at a high rate",
      "conditionThreshold": {
         "aggregations": [
           {
             "alignmentPeriod": "900s",
             "perSeriesAligner": "ALIGN_PERCENT_CHANGE",
           }],
        "comparison": "COMPARISON_GT",
        "duration": "180s",
        "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
        "thresholdValue": 0.5,
        "trigger": {
          "count": 1
         }
      }
    }
  ],
}

מדיניות מצטברת של קבוצות

מדיניות ההתראות הזו בודקת אם השימוש הממוצע ביחידת העיבוד המרכזית (CPU) באשכול Google Kubernetes Engine חורג מסף מסוים:

{
    "displayName": "CPU utilization across GKE cluster exceeds 10 percent",
    "combiner": "OR",
    "conditions": [
         {
            "displayName": "Group Aggregate Threshold across All Instances in Group GKE cluster",
            "conditionThreshold": {
                "filter": "group.id=\"3691870619975147604\" AND metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.1,
                "duration": "300s",
                "trigger": {
                    "count": 1
                },
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_MEAN",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                              "project"
                        ]
                    },
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_SUM",
                        "crossSeriesReducer": "REDUCE_MEAN"
                    }
                ]
            },
        }
    ],
}

המדיניות הזו מניחה שהקבוצה הבאה קיימת:

    {
        "name": "projects/a-gcp-project/groups/3691870619975147604",
        "displayName": "GKE cluster",
        "filter": "resource.metadata.name=starts_with(\"gke-kuber-cluster-default-pool-6fe301a0-\")"
    }

כדי לזהות את השדות המקבילים לקבוצות שלכם, מפרטים את פרטי הקבוצה באמצעות APIs Explorer בדף ההפניה project.groups.list.

מדיניות בנושא בדיקת זמני פעילות

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

לדוגמה, קטע ה-JSON הבא מתאר בדיקת זמינות של HTTPS באתר Google Cloud . מדיניות ההתראות בודקת את הזמינות כל 5 דקות.

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

{
    "name": "projects/a-gcp-project/uptimeCheckConfigs/uptime-check-for-google-cloud-site",
    "displayName": "Uptime check for Google Cloud site",
    "monitoredResource": {
        "type": "uptime_url",
        "labels": {
            "host": "cloud.google.com"
      }
    },
    "httpCheck": {
        "path": "/index.html",
        "useSsl": true,
        "port": 443,
        "authInfo": {}
    },
    "period": "300s",
    "timeout": "10s",
    "contentMatchers": [
        {}
    ]
}

כדי ליצור מדיניות התראות לבדיקת זמני פעילות, צריך להפנות לבדיקת זמני הפעילות לפי UPTIME_CHECK_ID. המזהה הזה מוגדר כשיוצרים את הבדיקה. הוא מופיע כרכיב האחרון בשדה name ומוצג בממשק המשתמש כ-Check ID בסיכום ההגדרה. אם אתם משתמשים ב-Monitoring API, ה-method‏ uptimeCheckConfigs.create מחזירה את המזהה.

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

המזהה של בדיקת הזמינות שתואר קודם הוא uptime-check-for-google-cloud-site.

התנאי של מדיניות ההתראות הבאה מתקיים אם בדיקת הזמינות נכשלת או אם תוקף אישור ה-SSL באתר Google Cloud עומד לפוג תוך פחות מ-15 ימים. אם אחד מהתנאים מתקיים, ‏ Monitoring שולח התראה לערוץ ההתראות שצוין:

{
    "displayName": "Google Cloud site uptime failure",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Failure of uptime check_id uptime-check-for-google-cloud-site",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_COUNT_FALSE",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 1,
                "trigger": {
                    "count": 1
                }
            }
        },
        {
            "displayName": "SSL Certificate for google-cloud-site expiring soon",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_LT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 15,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

המסנן בתנאי מציין את המדד שנבדק לפי הסוג והתווית שלו. סוגי המדדים הם monitoring.googleapis.com/uptime_check/check_passed ו-monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires. תווית המדד מזהה את בדיקת זמני הפעילות הספציפית שנמצאת במעקב. בדוגמה הזו, שדה התווית check_id מכיל את מזהה בדיקת הזמינות.

AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"

מידע נוסף זמין במאמר בנושא מסנני מעקב.

מדיניות בריאות התהליך

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

מדיניות ההתראות הזו גורמת ל-Monitoring לשלוח התראה לערוץ ההתראות שצוין אם לא נמצא תהליך שתואם למחרוזת nginx, שפועל כמשתמש www, במשך יותר מ-5 דקות:

{
    "displayName": "Server health",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Process 'nginx' is not running",
            "conditionThreshold": {
                "filter": "select_process_count(\"has_substring(\\\"nginx\\\")\", \"www\") AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_LT",
                "thresholdValue": 1,
                "duration": "300s"
            }
        }
    ],
}

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

יחס המדד

מומלץ להשתמש ב-PromQL כדי ליצור מדיניות התראות שמבוססת על יחסים. למרות שממשק Cloud Monitoring API תומך ביצירה של יחסים מסוימים שמבוססים על מסננים, PromQL מספק פתרון גמיש ואמין יותר:

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

תנאי יחס הוא וריאציה של תנאי סף של מדד, שבו התנאי במדיניות יחס משתמש בשני מסננים: המסנן הרגיל filter, שמשמש כמונה של היחס, והמסנן denominatorFilter, שמשמש כמכנה של היחס.

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

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

יחס שגיאות HTTP

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

{
    "displayName": "HTTP error count exceeds 50 percent for App Engine apps",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Ratio: HTTP 500s error-response counts / All HTTP response counts",
            "conditionThreshold": {
                 "filter": "metric.label.response_code>=\"500\" AND
                            metric.label.response_code<\"600\" AND
                            metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                            project=\"a-gcp-project\" AND
                            resource.type=\"gae_app\"",
                 "aggregations": [
                    {
                        "alignmentPeriod": "300s",
                        "crossSeriesReducer": "REDUCE_SUM",
                        "groupByFields": [
                          "project",
                          "resource.label.module_id",
                          "resource.label.version_id"
                        ],
                        "perSeriesAligner": "ALIGN_DELTA"
                    }
                ],
                "denominatorFilter": "metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                                      project=\"a-gcp-project\" AND
                                      resource.type=\"gae_app\"",
                "denominatorAggregations": [
                   {
                      "alignmentPeriod": "300s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "project",
                        "resource.label.module_id",
                        "resource.label.version_id"
                       ],
                      "perSeriesAligner": "ALIGN_DELTA",
                    }
                ],
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.5,
                "duration": "0s",
                "trigger": {
                    "count": 1
                }
            }
        }
    ]
}

סוגי המדדים והמשאבים

סוג המדד של המדיניות הזו הוא appengine.googleapis.com/http/server/response_count, ויש לו שתי תוויות:

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

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

  • project_id: המזהה של Google Cloud הפרויקט.
  • module_id, השם של השירות או המודול באפליקציה.
  • version_id, גרסת האפליקציה.

למידע נוסף על סוגי המדדים והמשאבים במעקב האלה, אפשר לעיין במאמר מדדים של App Engine ברשימת המדדים ובמאמר gae_app ברשימת המשאבים במעקב.

מה המשמעות של המדיניות הזו

התנאי הזה מחשב את היחס בין תגובות שגיאה לבין סך התגובות. התנאי מתקיים אם היחס גבוה מ-50% (כלומר, היחס גבוה מ-0.5) במהלך תקופת ההתאמה של 5 דקות.

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

  • המסנן בתנאי בודק תגובות HTTP מאפליקציית App Engine ובוחר את התגובות שנמצאות בטווח השגיאות, 5xx. זה המונה ביחס.
  • המסנן של המכנה בתנאי בודק את כל תגובות ה-HTTP מאפליקציית App Engine.

התנאי מתקיים ומערכת Monitoring שולחת התראה על האירוע החדש באופן מיידי. טווח הזמן המותר בשדה duration בתנאי הוא אפס שניות. התנאי הזה משתמש בtrigger ספירה של אחד, שזה מספר סדרות הזמן שצריכות להפר את התנאי כדי לגרום לאירוע. באפליקציית App Engine עם שירות יחיד, אפשר להשתמש בספירה trigger של אחד. אם יש לכם אפליקציה עם 20 שירותים ואתם רוצים לגרום לאירוע אם 3 שירותים או יותר מפרים את התנאי, אתם צריכים להשתמש בספירה של 3 ב-trigger.

הגדרת יחס

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

      metric.label.response_code>=\"500\" AND
      metric.label.response_code<\"600\"

אחרת, המסננים של המונה והמכנה זהים.

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

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

במדיניות הזו, סדרת הזמן של שני המסננים מצטברת באופן הבא:

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

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

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

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