פונקציות Foreach משמשות בחישובים מצטברים כדי להחזיר ערך מצטבר אחד עבור כל פריט שנבחר על ידי מסנן פריטים משומש.
לדוגמה, הפונקציה avg_foreach תחזיר את הערך ממוצע מההיסטוריה של כל פריט שנבחר, במהלך מרווח הזמן שצוין.
מסנן פריט הוא חלק מהתחביר המשמש את פונקציות Foreach. השימוש בתווים כלליים נתמך במסנן הפריטים, ולכן ניתן לבחור את הפריטים הנדרשים בצורה גמישה למדי.
פונקציה | תיאור |
---|---|
avg_foreach | מחזיר את הערך הממוצע עבור כל פריט. |
bucket_rate_foreach | מחזיר צמדים (גבול עליון של דלי, ערך שיעור) המתאימים לשימוש בפונקציה היסטוגרמה_quantile(), כאשר "גבול דלי עליון" הוא הערך של פרמטר מפתח פריט המוגדר על ידי <parameter number> פרמטר. |
count_foreach | מחזיר את מספר הערכים עבור כל פריט. |
exists_foreach | מחזיר את מספר הפריטים המופעלים כעת. |
last_foreach | מחזיר את הערך האחרון עבור כל פריט. |
max_foreach | מחזיר את הערך המקסימלי עבור כל פריט. |
min_foreach | מחזיר את הערך המינימלי עבור כל פריט. |
sum_foreach | מחזיר את סכום הערכים עבור כל פריט. |
פונקציות Foreach תומכות בשני פרמטרים נפוצים: 'מסנן פריט' (ראה פרטים למטה) ו'תקופת זמן':
לדוגמה:
avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)
יחזיר את הממוצע של חמש הדקות של כל פריט 'mysql.qps' בקבוצת שרתי MySQL.
שים לב שחלק מהפונקציות תומכות ב[פרמטרים] נוספים (#additional_parameters).
מסנן הפריטים:
מורכב מארבעה חלקים, כאשר:
רווחים מותרים רק בתוך ביטוי התנאים.
שימוש בתווים כלליים
/host/*
ו-/*/key
הם מסננים חוקיים, אבל /*/*
אינו חוקי.key[abc,*,*]
).ביטוי תנאים
ביטוי התנאים תומך:
אופרנדים: קבוצה - קבוצה מארחת * תג - תג פריט * "<text>"
- קבוע מחרוזת, עם תו ה-` escape ל-escape "
ו-\
* אופרטורים להשוואת מחרוזות תלויי-רישיות: =
, <>
* אופרטורים לוגיים: ו
, או
, לא
* קיבוץ עם סוגריים: (
)
ציטוט של קבועי מחרוזת הוא חובה. רק השוואה של מחרוזת מלאה תלוית רישיות נתמכת.
דוגמאות
ניתן להשתמש במסנן מורכב, המתייחס למפתח הפריט, לקבוצת המארח ו תגיות, כפי שמוצג בדוגמאות:
דוגמה תחביר | תיאור |
---|---|
/host/key[abc,*] |
תואם פריטים דומים במארח זה. |
/*/key |
תואם לאותו פריט של כל מארח. |
/*/key?[group="ABC" and tag="tagname:value"] |
תואם לאותו פריט של כל מארח מקבוצת ABC שיש לו תגי 'tagname:value'. |
/*/key[a,*,c]?[(group="ABC" and tag="Tag1") או (group="DEF" ו-(tag="Tag2" or tag="Tag3:value" ))] |
מתאים פריטים דומים של כל מארח מקבוצת ABC או DEF עם התגים המתאימים. |
כל הפריטים המוזכרים חייבים להתקיים ולאסוף נתונים. רק פריטים מופעלים פועלים מארחים מופעלים כלולים בחישובים.
::: שימו לב חשוב אם מפתח הפריט של פריט שהפניה אליו משתנה, יש לעדכן את המסנן באופן ידני. :::
ציון קבוצת מארחת אב כוללת את קבוצת האב ואת כל המקוננות מארח קבוצות עם הפריטים שלהם.
הפרמטר שני מאפשר לציין את פרק הזמן עבור צבירה. ניתן לבטא את פרק הזמן רק כזמן, הכמות של ערכים (עם קידומת #) אינו נתמך.
סמלי יחידות נתמכות ניתן להשתמש במסמך זה פרמטר מטעמי נוחות, למשל '5m' (חמש דקות) במקום '300s' (300 שניות) או '1d' (יום אחד) במקום '86400' (86400 שניות).
השרת מתעלם מתקופת הזמן אם היא עוברת עם ה-last_foreach פונקציה ובכך ניתן להשמיט:
פרק הזמן אינו נתמך עם הפונקציה exists_foreach.
פרמטר אופציונלי שלישי נתמך על ידי bucket_rate_foreach פוּנקצִיָה:
כאשר <parameter number> הוא המיקום של הערך "דלי" ב מפתח הפריט. לדוגמה, אם הערך "דלי" ב-myItem[aaa,0.2] הוא '0.2', אז המיקום שלו הוא 2.
ערך ברירת המחדל של <מספר פרמטר> הוא '1'.
ראה חישובים מצטברים עבור פרטים נוספים ודוגמאות לשימוש בכל פונקציה.
The following table illustrates how each function behaves in cases of limited availability of host/item and history data.
Function | Disabled host | Unavailable host with data | Unavailable host without data | Disabled item | Unsupported item | Data retrieval error (SQL) |
---|---|---|---|---|---|---|
avg_foreach | ignore | return avg | ignore | ignore | ignore | ignore |
bucket_rate_foreach | ignore | return bucket rate | ignore | ignore | ignore | ignore |
count_foreach | ignore | return count | 0 | ignore | ignore | ignore |
exists_foreach | ignore | 1 | 1 | ignore | 1 | n/a |
last_foreach | ignore | return last | ignore | ignore | ignore | ignore |
max_foreach | ignore | return max | ignore | ignore | ignore | ignore |
min_foreach | ignore | return min | ignore | ignore | ignore | ignore |
sum_foreach | ignore | return sum | ignore | ignore | ignore | ignore |
If the item is ignored, nothing is added to the aggregation.