במאמר הזה מפורטות דוגמאות למדיניות התראות. הדוגמאות כתובות ב-JSON, והן משתמשות במסננים של Monitoring. אפשר ליצור מדיניות בפורמט JSON או YAML, בלי קשר לאופן שבו מגדירים את המדיניות – באמצעות מסנני מעקב או באמצעות שפת השאילתות של Prometheus (PromQL). Google Cloud CLI יכול לקרוא ולכתוב גם JSON וגם YAML, בעוד ש-REST API יכול לקרוא JSON.
כדי לקרוא על מדיניות התראות שמשתמשת ב-PromQL, אפשר לעיין במסמכים הבאים:
מידע על הגדרת השדות של מדיניות ההתראות מופיע במאמרים הבאים:
- יצירת מדיניות התראות מבוססת-מדדים באמצעות מסוף Google Cloud
- יצירת מדיניות התראות מבוססת-מדדים באמצעות API
יצירת קובץ 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 של מדיניות ההתראות הקיימת וערוצי ההתראות, אפשר לבצע את אחת מהפעולות הבאות:
מוסיפים את הדגל
--format=jsonלפקודות ה-CLIgcloudשמתוארות במאמר בנושא יצירת YAML למדיניות קיימת. לדוגמה, כדי להציג רשימת כללי מדיניות, מריצים את הפקודה הבאה:gcloud monitoring policies list --format=jsonמשתמשים בווידג'ט של APIs Explorer בדף ההפניה לכל שיטת API:
לגבי מדיניות התראות, אפשר לעיין בשיטות
alertPolicies.listו-alertPolicies.get.לגבי ערוצי התראות, אפשר לעיין בשיטות
notificationChannels.listו-notificationChannels.get.
מידע נוסף זמין במאמר APIs Explorer.
דוגמאות למדיניות
כפי שמוצג בדוגמה לגיבוי ושחזור, אפשר להשתמש במדיניות שמורה כדי ליצור עותקים חדשים של אותה מדיניות.
אפשר להשתמש במדיניות שנשמרה בפרויקט אחד כדי ליצור מדיניות חדשה או דומה בפרויקט אחר. עם זאת, קודם צריך לבצע את השינויים הבאים בעותק של המדיניות השמורה:
- מסירים את השדות הבאים מכל ערוצי ההתראות:
nameverificationStatus
- צריך ליצור ערוצי התראות לפני שמתייחסים לערוצים במדיניות בנושא התראות (נדרשים מזהי הערוצים החדשים).
- מסירים את השדות הבאים מכל מדיניות התראות שיוצרים מחדש:
namecondition.namecreationRecordmutationRecord
המונחים שבהם אנחנו משתמשים במסמך הזה זהים למונחים שמופיעים בקטע 'מעקב' במסוף 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
}
}
}
],
}
מדיניות מצטברת של קבוצות
מדיניות ההתראות הזו בודקת אם השימוש הממוצע במעבד באשכול 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 מספק פתרון גמיש ואמין יותר:
מידע על יצירת מדיניות התראות באמצעות PromQL זמין במאמר בנושא שימוש ב-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 שירותים או יותר מפרים את התנאי, אתם צריכים להשתמש בערך trigger של 3.
הגדרת יחס
מסנני המונה והמכנה זהים לחלוטין, מלבד העובדה שמסנן התנאי במונה תואם לקודי תגובה בטווח השגיאות, ומסנן התנאי במכנה תואם לכל קודי התגובה. הסעיפים הבאים מופיעים רק בתנאי המונה:
metric.label.response_code>=\"500\" AND
metric.label.response_code<\"600\"
אחרת, המסננים של המונה והמכנה זהים.
כדי שהחישוב של היחס יהיה תקף, צריך לצבור את סדרת הזמן שנבחרה בכל מסנן באותו אופן. כל מסנן יכול לאסוף כמה סדרות זמן, כי תהיה סדרת זמן שונה לכל שילוב של ערכי תוויות. המדיניות הזו מקבצת את סדרות הזמנים לפי תוויות משאבים שצוינו, ומחלקת את סדרות הזמנים לקבוצות. חלק מסדרות הזמן בכל קבוצה תואמות למסנן המונה, והשאר תואמות למסנן המכנה.
כדי לחשב יחס, צריך לצמצם את קבוצת סדרות הזמן שתואמת לכל מסנן לסדרת זמן אחת. בכל קבוצה נשארות שתי סדרות זמן, אחת בשביל המונה ואחת בשביל המכנה. לאחר מכן, אפשר לחשב את היחס בין הנקודות בסדרות העיתיות של המונה והמכנה בכל קבוצה.
במדיניות הזו, סדרות הזמן של שני המסננים מצטברות באופן הבא:
כל מסנן יוצר מספר סדרות זמן שמוצגות במרווחי זמן של 5 דקות, עם ערכים שמייצגים את תוצאת החישוב של
ALIGN_DELTAעל הערכים בתקופת ההתאמה של 5 דקות. הפונקציה הזו להשוואה מחזירה את מספר התשובות התואמות בתקופת ההשוואה כמספר שלם בן 64 ביט.בנוסף, סדרות הזמן בכל מסנן מקובצות לפי הערכים של תוויות המשאבים של המודול והגרסה, כך שכל קבוצה תכיל שני סטים של סדרות זמן מיושרות – אלה שתואמות למסנן המונה ואלה שתואמות למסנן המכנה.
סדרות הזמן בכל קבוצה שתואמות למסנן של המונה או המכנה מצטמצמות לנקודת זמן אחת על ידי סיכום הערכים בסדרות הזמן הבודדות באמצעות פונקציית הצמצום
REDUCER_SUM. התוצאה היא סדרת זמן אחת למונה וסדרת זמן אחת למכנה, ובכל אחת מהן מדווח מספר התשובות בכל סדרות הזמן התואמות בתקופת ההתאמה.
לאחר מכן, המדיניות מחשבת את היחס בין הערכים של סדרות הזמן של המונה והמכנה שמייצגות כל קבוצה. התנאי להפעלת מדיניות ההתראות מתקיים כשהיחס גדול מ-50%.