This is a translation of the original English documentation page. Help us make it better.

חישובים מצטברים

Overview

Aggregate calculations are a calculated item type allowing to collect information from several items by Zabbix server and then calculate an aggregate, depending on the aggregate function used.

Only unsigned integer and float values (type of information) are supported for aggregate calculation items.

Aggregate calculations do not require any agent running on the host being monitored.

תחביר

כדי לאחזר אגרגטים, תוכל:

  • רשום מספר פריטים לצבירה:
aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

שימו לב ש'פונקציה' כאן חייבת להיות פונקציית היסטוריה/מגמה.

  • השתמש בפונקציה foreach, כפרמטר היחיד, ובמסנן הפריטים שלה כדי לבחור את הפריטים הדרושים:
aggregate_function(foreach_function(/host/key?[group="host group"],timeperiod))

הפונקציה המצטברת היא אחת מהפונקציות המצטברות הנתמכות): avg, max, min, sum וכו'.

פונקציית foreach (למשל avg_foreach, count_foreach וכו') מחזירה ערך מצטבר אחד עבור כל פריט שנבחר. פריטים נבחרים באמצעות מסנן הפריטים (/host/key?[group="host group"]), מהיסטוריית הפריטים.

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

לפרטים נוספים, ראה foreach functions.

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

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

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

דוגמאות שימוש

דוגמאות של מפתחות לחישובים מרוכזים.

דוגמה 1

שטח הדיסק הכולל של קבוצת המארחים 'שרתי MySQL'.

 sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
דוגמה 2

סכום הערכים העדכניים ביותר של כל הפריטים התואמים net.if.in[*] במארח.

 sum(last_foreach(/host/net.if.in[*]))
דוגמה 3

עומס מעבד ממוצע של קבוצת המארחים 'שרתי MySQL'.

 avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers")))
דוגמה 4

ממוצע של 5 דקות של מספר השאילתות בשנייה עבור הקבוצה המארחת 'שרתי MySQL'.

 avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
דוגמה 5

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

 avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="importance: גָבוֹהַ")]))
דוגמה 6

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

 sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"]) )
דוגמה 7

המספר הכולל של פריטים שאינם נתמכים בקבוצה המארחת 'שרתי Zabbix'.

 sum(last_foreach(/*/zabbix[מארח,,items_unsupported]?[group="שרתי Zabbix"]))
דוגמאות לתחביר נכון/שגוי

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

ביטוי דוגמה
Valid avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)
max(avg(avg_foreach(/*/system. cpu.load?[group="שרתים A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="שרתים B")],5m)),avg(avg_foreach(/*/ system.cpu.load?[group="שרתים C")],5m)))
לא חוקי sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host /key2))

שימו לב שבביטוי כמו:

 sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))

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