[comment]: # translation:outdated

[comment]: # ({19cf85e8-bfe1a94d})
# 1 Збирни прорачуни

[comment]: # ({/19cf85e8-bfe1a94d})

[comment]: # ({96203d1d-f8e62abe})
#### Преглед

Збирни прорачуни су тип [израчуната ставка](/manual/config/items/itemtypes/calculated) који омогућава прикупљање информација из неколико ставки од стране Zabbix сервера и затим израчунавање агрегата, у зависности од коришћене агрегатне функције.

Агрегатни прорачуни не захтевају никакве агент који ради на домаћину који се надгледа.

[comment]: # ({/96203d1d-f8e62abe})

[comment]: # ({2b04188c-63d83a0c})
#### Синтакса

Да бисте преузели агрегате, користите једну од подржаних [агрегираних функција](/manual/appendix/functions/aggregate#aggregate-functions-1): `avg`, `max`, `min`, `sum`, итд.
Затим додајте функцију **foreach** као једини параметар и њен филтер ставки да бисте изабрали потребне ставке:

   aggregate_function(function_foreach(/host/key?[group="host group"],timeperiod))

Функција **foreach** (нпр. *avg_foreach*, *count_foreach*, итд.) враћа једну агрегатну вредност за сваку изабрану ставку.
Ставке се бирају помоћу филтера ставки (`/host/key?[group="host group"]`), из историје ставки. За више детаља, погледајте 
[foreach functions](/manual/appendix/functions/aggregate/foreach).

Ако неке од ставки немају податке за тражени период, оне се игноришу у прорачуну. Ако ниједна ставка нема 
податке, функција ће вратити грешку.

Алтернативно, можете навести неколико ставки као параметре за агрегацију:

   aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

Имајте на уму да `function` овде мора бити функција историје/тренда.

::: noteclassic
Ако агрегат резултира вредношћу са покретним бројем, биће скраћен
на цео број ако је тип информација агрегиране ставке *Нумерички
(без знака)*.
:::

Кориснички макрои и макрои за откривање ниског нивоа су подржани у:

-   параметрима кључа ставке
-   параметрима функције
-   условима филтера (назив групе хоста и назив ознаке)
-   константама израза

Агрегирани прорачун може постати неподржан ако:

-   ниједна од референцираних ставки није пронађена (што се може десити ако је кључ ставке нетачан, ниједна од ставки не постоји или све укључене групе су нетачне)
-   нема података за израчунавање функције

[comment]: # ({/2b04188c-63d83a0c})

[comment]: # ({3bbe172c-3bbe172c})
#### Примери употребе

Примери кључева за агрегатне прорачуне.

[comment]: # ({/3bbe172c-3bbe172c})

[comment]: # ({874bcf94-874bcf94})
##### Пример 1

Укупан простор на диску групе хостова 'MySQL Servers'.

    sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))

[comment]: # ({/874bcf94-874bcf94})

[comment]: # ({3182672a-3182672a})
##### Пример 2

Збир последњих вредности свих ставки које одговарају net.if.in\[\*\] на домаћину.

   sum(last_foreach(/host/net.if.in[*]))

[comment]: # ({/3182672a-3182672a})

[comment]: # ({cdf2da8b-cdf2da8b})
##### Пример 3

Просечно оптерећење процесора групе хостова 'MySQL Servers'.

   avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))

[comment]: # ({/cdf2da8b-cdf2da8b})

[comment]: # ({db9c8fce-db9c8fce})
##### Пример 4

5-минутни просек броја упита у секунди за групу домаћина 'MySQL Servers'.

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

[comment]: # ({/db9c8fce-db9c8fce})

[comment]: # ({0233edd3-0233edd3})
##### Пример 5

Просечно оптерећење процесора на свим хостовима у више група хостова које имају
одређене ознаке.

   avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))

[comment]: # ({/0233edd3-0233edd3})

[comment]: # ({30448f5d-30448f5d})
##### Пример 6

Израчунавање се користи за збир вредности последње ставке целе групе домаћина.

   sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 

[comment]: # ({/30448f5d-30448f5d})

[comment]: # ({3e9404a6-3e9404a6})
##### Пример 7

Укупан број неподржаних ставки у групи домаћина 'Zabbix сервери'.

   sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))

[comment]: # ({/3e9404a6-3e9404a6})

[comment]: # ({50b7adbb-f094da29})
##### Примери исправне/нетачне синтаксе

Изрази (укључујући позиве функција) не могу се користити као параметри историје, тренда или foreach [function](/manual/appendix/functions). Међутим, саме те функције могу се користити у другим (неисторијским) параметрима функција.

|Expression|Example|
|-|---------|
| Valid |`avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)`<br>`max(avg(avg_foreach
(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))`|
| Invalid |`sum(/host/key,10+2)`<br>`sum(/host/key, avg(10,2))`<br>`sum(/host/key,last(/host/key2))`|

Имајте на уму да у изразу као што је:

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

не може се гарантовати да ће оба дела једначине увек имати исти скуп вредности.
Док се један део израза израчунава, може стићи нова вредност за тражени период, а
тада ће други део израза имати другачији скуп вредности.

[comment]: # ({/50b7adbb-f094da29})
