[comment]: # attributes: notoc

[comment]: # ({11b7940f-7da5ea1c})
# 4 Fonctions d'historique

Toutes les fonctions listées ici sont prises en charge dans :

-   [Expressions de déclencheur](/manual/config/triggers/expression)
-   [Éléments calculés](/manual/config/items/itemtypes/calculated)
-   [Macros d'expression](/manual/config/macros/expression_macros)

Les fonctions sont listées sans information supplémentaire.
Cliquez sur la fonction pour voir les détails complets.

|Function|Description|
|--|--------|
|[change](#change)|La quantité de différence entre la valeur précédente et la dernière valeur.|
|[changecount](#changecount)|Le nombre de changements entre des valeurs adjacentes au cours de la période d'évaluation définie.|
|[count](#count)|Le nombre de valeurs au cours de la période d'évaluation définie.|
|[countunique](#countunique)|Le nombre de valeurs uniques au cours de la période d'évaluation définie.|
|[find](#find)|Recherche une correspondance de valeur au cours de la période d'évaluation définie.|
|[first](#first)|La première valeur (la plus ancienne) au cours de la période d'évaluation définie.|
|[firstclock](#firstclock)|L'horodatage de la première valeur (la plus ancienne) au cours de la période d'évaluation définie.|
|[fuzzytime](#fuzzytime)|Vérifie de combien le temps de l'agent passif diffère de l'heure du serveur/proxy Zabbix.|
|[last](#last)|La valeur la plus récente.|
|[lastclock](#lastclock)|L'horodatage de la N-ième valeur la plus récente au cours de la période d'évaluation définie.|
|[logeventid](#logeventid)|Vérifie si l'ID d'événement de la dernière entrée de journal correspond à une expression régulière.|
|[logseverity](#logseverity)|La gravité du journal de la dernière entrée de journal.|
|[logsource](#logsource)|Vérifie si la source du journal de la dernière entrée de journal correspond à une expression régulière.|
|[logtimestamp](#logtimestamp)|L'horodatage du message de journal de la N-ième valeur d'élément de journal la plus récente.|
|[monodec](#monodec)|Vérifie s'il y a eu une diminution monotone des valeurs.|
|[monoinc](#monoinc)|Vérifie s'il y a eu une augmentation monotone des valeurs.|
|[nodata](#nodata)|Vérifie l'absence de données reçues.|
|[percentile](#percentile)|Le percentile P d'une période, où P (pourcentage) est spécifié par le troisième paramètre.|
|[rate](#rate)|Le taux moyen par seconde d'augmentation d'un compteur croissant de manière monotone au cours de la période définie.|

[comment]: # ({/11b7940f-7da5ea1c})

[comment]: # ({2310631d-4d343eb8})
##### Paramètres communs

-   `/host/key` est un premier paramètre obligatoire commun pour les fonctions faisant référence à l'historique de l'élément de l'hôte
-   `(sec|#num)<:time shift>` est un deuxième paramètre commun pour les fonctions faisant référence à l'historique de l'élément de l'hôte, où :
    -   **sec** - période maximale d'[évaluation](/manual/config/triggers#evaluation-period) en secondes (des [suffixes](/manual/appendix/suffixes) de temps peuvent être utilisés), ou
    -   **\#num** - plage maximale d'[évaluation](/manual/config/triggers#evaluation-period) dans les dernières valeurs collectées (si précédé d'un dièse)
    -   **time shift** (facultatif) permet de déplacer le point d'évaluation dans le temps.
    Consultez [plus de détails](/manual/config/triggers/expression#time-shift) sur la spécification du time shift.

[comment]: # ({/2310631d-4d343eb8})

[comment]: # ({aa4e1bf6-8f3a0028})
### Détails des fonctions

Quelques remarques générales sur les paramètres des fonctions :

-   Les paramètres des fonctions sont séparés par une virgule
-   Les paramètres de fonction facultatifs (ou parties de paramètres) sont indiqués par `<` `>`
-   Les paramètres spécifiques à une fonction sont décrits avec chaque fonction
-   Les paramètres `/host/key` et `(sec|#num)<:time shift>` ne doivent jamais être placés entre guillemets

[comment]: # ({/aa4e1bf6-8f3a0028})

[comment]: # ({1f93c729-4afc9a02})
##### change(/host/key) {#change}

La quantité de différence entre la valeur précédente et la dernière valeur.<br>
Types de valeurs pris en charge: *Float*, *Integer*, *String*, *Text*, *Log*.<br>
Pour les chaînes, renvoie: 0 - les valeurs sont identiques; 1 - les valeurs diffèrent.

Paramètres: voir [paramètres communs](#common-parameters).

Commentaires:

-   La différence numérique sera calculée, comme le montrent les exemples de valeurs entrantes suivants (valeur 'previous' et 'latest' = différence):<br>'1' et '5' = `+4`<br>'3' et '1' = `-2`<br>'0' et '-2.5' = `-2.5`.<br>
-   Voir aussi: [abs](/manual/appendix/functions/math#abs) pour la comparaison.

Exemples:

```default
change(/host/system.uptime)<0 #la variation du temps de fonctionnement du système est négative depuis la dernière valeur (ce qui indique un redémarrage)
change(/host/system.cpu.load[all,avg1])>2 #la charge CPU (sur une minute) a augmenté de plus de 2 depuis la dernière valeur
change(/host/vfs.fs.size[/,free])<-1G #l'espace disque libre a diminué de plus de 1 Go entre les vérifications
```

[comment]: # ({/1f93c729-4afc9a02})

[comment]: # ({56cecc56-57458a90})
##### changecount(/host/key,(sec|#num)<:time shift>,<mode>) {#changecount}

Le nombre de changements entre des valeurs adjacentes au sein de la période d'évaluation définie.<br>
Types de valeurs pris en charge: *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres: 

-   Voir [paramètres communs](#common-parameters)<br>
-   **mode** (doit être entre guillemets doubles) - valeurs possibles: *all* - compte tous les changements (par défaut); *dec* - compte les diminutions; *inc* - compte les augmentations

Pour les types de valeurs non numériques, le paramètre *mode* est ignoré.

Exemples:

```default
changecount(/host/icmpping,10m)>5 #l'état du ping a changé plus de 5 fois en 10 minutes
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #l'état opérationnel de eth0 a changé plus de 5 fois en une heure
changecount(/host/proc.num[httpd],15m)>10 #le nombre de processus httpd a changé plus de 10 fois en 15 minutes
changecount(/host/key,#10,"inc") #le nombre d'augmentations de valeur (par rapport à la valeur adjacente) parmi les 10 dernières valeurs
changecount(/host/key,24h,"dec") #le nombre de diminutions de valeur (par rapport à la valeur adjacente) au cours des 24 dernières heures jusqu'à maintenant
```

[comment]: # ({/56cecc56-57458a90})

[comment]: # ({1f9dc9af-f9ce5dd9})
##### count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#count}

Le nombre de valeurs dans la période d'évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir les [paramètres communs](#common-parameters)<br>
-   **operator** (doit être entre guillemets doubles)
`operators` pris en charge :<br>*eq* - égal (par défaut pour integer, float)<br>*ne* - différent<br>*gt* - supérieur<br>*ge* - supérieur ou égal<br>*lt* - inférieur<br>*le* - inférieur ou égal<br>*like* (par défaut pour string, text, log) - correspond si contient le motif (sensible à la casse)<br>*bitand* - ET binaire<br>*regexp* - correspondance sensible à la casse de l'expression régulière donnée dans `pattern`<br>*iregexp* - correspondance insensible à la casse de l'expression régulière donnée dans `pattern`<br>
-   **pattern** - le motif requis (les arguments de type chaîne doivent être entre guillemets doubles)

Commentaires :

-   Les éléments de type float correspondent avec une précision de 2.22e-16.
-   *like* n'est pas pris en charge comme operator pour les valeurs entières.
-   *like* et *bitand* ne sont pas pris en charge comme operators pour les valeurs float.
-   Pour les valeurs string, text et log, seuls les operators *eq*, *ne*, *like*, *regexp* et *iregexp* sont pris en charge.
-   Avec *bitand* comme operator, le quatrième paramètre `pattern` peut être spécifié sous forme de deux nombres, séparés par '/': **number_to_compare_with/mask**.
count() calcule le « ET binaire » à partir de la valeur et du *mask* et compare le résultat à *number_to_compare_with*.
Si le résultat du « ET binaire » est égal à *number_to_compare_with*, la valeur est comptée.<br>Si *number_to_compare_with* et *mask* sont égaux, seul le *mask* doit être spécifié (sans '/').
-   Avec *regexp* ou *iregexp* comme operator, le quatrième paramètre `pattern` peut être une expression régulière ordinaire ou [globale](/manual/regular_expressions#global-regular-expressions) (commençant par '@').
Dans le cas des expressions régulières globales, la sensibilité à la casse est héritée des paramètres des expressions régulières globales.
Aux fins de la correspondance regexp, les valeurs float seront toujours représentées avec 4 chiffres décimaux après '.'.
Notez également que, pour les grands nombres, la différence entre la représentation décimale (stockée dans la base de données) et binaire (utilisée par le serveur Zabbix) peut affecter le 4e chiffre décimal.

Exemples :

```default
count(/host/icmpping,30m,,"0")>5 #ping a échoué plus de 5 fois en 30 minutes
count(/host/key,10m,"like","error") #le nombre de valeurs pour les 10 dernières minutes jusqu'à maintenant qui contiennent 'error'
count(/host/key,10m,,12) #le nombre de valeurs pour les 10 dernières minutes jusqu'à maintenant égales à '12'
count(/host/key,10m,"gt",12) #le nombre de valeurs pour les 10 dernières minutes jusqu'à maintenant supérieures à '12'
count(/host/key,#10,"gt",12) #le nombre de valeurs parmi les 10 dernières valeurs jusqu'à maintenant supérieures à '12'
count(/host/key,10m:now-1d,"gt",12) #le nombre de valeurs entre il y a 24 heures et il y a 24 heures moins 10 minutes qui étaient supérieures à '12'
count(/host/key,10m,"bitand","6/7") #le nombre de valeurs pour les 10 dernières minutes jusqu'à maintenant ayant '110' (en binaire) dans les 3 bits de poids faible
count(/host/key,10m:now-1d) #le nombre de valeurs entre il y a 24 heures et il y a 24 heures moins 10 minutes
```

[comment]: # ({/1f9dc9af-f9ce5dd9})

[comment]: # ({ab6b4d74-bf8dc20c})
##### countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#countunique}

Le nombre de valeurs uniques dans la période d'évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **operator** (doit être entre guillemets doubles).
`operators` pris en charge :<br>*eq* - égal (par défaut pour integer, float)<br>*ne* - différent<br>*gt* - supérieur<br>*ge* - supérieur ou égal<br>*lt* - inférieur<br>*le* - inférieur ou égal<br>*like* (par défaut pour string, text, log) - correspond si contient le motif (sensible à la casse)<br>*bitand* - ET binaire<br>*regexp* - correspondance sensible à la casse de l'expression régulière donnée dans `pattern`<br>*iregexp* - correspondance insensible à la casse de l'expression régulière donnée dans `pattern`<br>
-   **pattern** - le motif requis (les arguments de type chaîne doivent être entre guillemets doubles)

Commentaires :

-   Les éléments float correspondent avec une précision de 2.22e-16.
-   *like* n'est pas pris en charge comme operator pour les valeurs entières.
-   *like* et *bitand* ne sont pas pris en charge comme operators pour les valeurs float.
-   Pour les valeurs string, text et log, seuls les operators *eq*, *ne*, *like*, *regexp* et *iregexp* sont pris en charge.
-   Avec *bitand* comme operator, le quatrième paramètre `pattern` peut être spécifié sous forme de deux nombres séparés par '/': **number_to_compare_with/mask**. countunique() calcule le "ET binaire" à partir de la valeur et du *mask* et compare le résultat à *number_to_compare_with*.
Si le résultat du "ET binaire" est égal à *number_to_compare_with*, la valeur est comptée.<br>Si *number_to_compare_with* et *mask* sont égaux, seul le *mask* doit être spécifié (sans '/').
-   Avec *regexp* ou *iregexp* comme operator, le quatrième paramètre `pattern` peut être une expression régulière ordinaire ou [globale](/manual/regular_expressions#global-regular-expressions) (commençant par '@').
Dans le cas des expressions régulières globales, la sensibilité à la casse est héritée des paramètres des expressions régulières globales.
Aux fins de la correspondance regexp, les valeurs float seront toujours représentées avec 4 chiffres décimaux après '.'.
Notez également que, pour les grands nombres, la différence entre la représentation décimale (stockée dans la base de données) et binaire (utilisée par le serveur Zabbix) peut affecter le 4e chiffre décimal.

Exemples :

```default
countunique(/host/key,10m) #le nombre de valeurs uniques pour les 10 dernières minutes jusqu'à maintenant
countunique(/host/key,10m,"like","error") #le nombre de valeurs uniques pour les 10 dernières minutes jusqu'à maintenant qui contiennent 'error'
countunique(/host/key,10m,,12) #le nombre de valeurs uniques pour les 10 dernières minutes jusqu'à maintenant qui sont égales à '12'
countunique(/host/key,10m,"gt",12) #le nombre de valeurs uniques pour les 10 dernières minutes jusqu'à maintenant qui sont supérieures à '12'
countunique(/host/key,#10,"gt",12) #le nombre de valeurs uniques parmi les 10 dernières valeurs jusqu'à maintenant qui sont supérieures à '12'
countunique(/host/key,10m:now-1d,"gt",12) #le nombre de valeurs uniques entre il y a 24 heures et il y a 24 heures moins 10 minutes à partir de maintenant qui étaient supérieures à '12'
countunique(/host/key,10m,"bitand","6/7") #le nombre de valeurs uniques pour les 10 dernières minutes jusqu'à maintenant ayant '110' (en binaire) dans les 3 bits de poids faible
countunique(/host/key,10m:now-1d) #le nombre de valeurs uniques entre il y a 24 heures et il y a 24 heures moins 10 minutes à partir de maintenant
```

[comment]: # ({/ab6b4d74-bf8dc20c})

[comment]: # ({9bb9907e-148d7d16})
##### find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#find}

Trouver une correspondance de valeur dans la période d'évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.<br>
Renvoie : 1 - trouvé ; 0 - sinon.

Paramètres : 

-   Voir les [paramètres communs](#common-parameters)<br>
-   **sec** ou **#num** (facultatif) - utilise par défaut la dernière valeur si non spécifié
-   **operator** (doit être entre guillemets doubles)
`operators` pris en charge :<br>*eq* - égal (par défaut pour integer, float)<br>*ne* - différent<br>*gt* - supérieur<br>*ge* - supérieur ou égal<br>*lt* - inférieur<br>*le* - inférieur ou égal<br>*like* (par défaut pour string, text, log) - correspond si la chaîne fournie dans `pattern` est contenue (sensible à la casse)<br>*bitand* - ET binaire<br>*regexp* - correspondance sensible à la casse de l'expression régulière fournie dans `pattern`<br>*iregexp* - correspondance insensible à la casse de l'expression régulière fournie dans `pattern`<br>
-   **pattern** - le motif requis (les arguments de chaîne doivent être entre guillemets doubles) ; expression régulière [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) si `operator` est *regexp*, *iregexp*

Commentaires :

-   Si plus d'une valeur est traitée, '1' est renvoyé s'il existe au moins une valeur correspondante.
-   *like* n'est pas pris en charge comme opérateur pour les valeurs entières.
-   *like* et *bitand* ne sont pas pris en charge comme opérateurs pour les valeurs flottantes.
-   Pour les valeurs string, text et log, seuls les opérateurs *eq*, *ne*, *like*, *regexp* et *iregexp* sont pris en charge.
-   Avec *regexp* ou *iregexp* comme opérateur, le quatrième paramètre `pattern` peut être une expression régulière ordinaire ou [globale](/manual/regular_expressions#global-regular-expressions) (commençant par '@').
Dans le cas des expressions régulières globales, la sensibilité à la casse est héritée des paramètres de l'expression régulière globale.

Exemples :

```default
find(/host/key,10m,"like","error") #find a value that contains 'error' within the last 10 minutes until now
find(/host/agent.version,,"like","beta")=1 #Zabbix agent has beta version, must be upgraded
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #internal web server error has been found
```

[comment]: # ({/9bb9907e-148d7d16})

[comment]: # ({86057069-0ae5f587})
##### first(/host/key,sec<:time shift>) {#first}

La première valeur (la plus ancienne) dans la période d’évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)

Voir aussi [last()](#last).

Exemple :

```default
first(/host/key,1h) #récupère la valeur la plus ancienne de la dernière heure jusqu’à maintenant
```

[comment]: # ({/86057069-0ae5f587})

[comment]: # ({f7e55e49-77c121f4})
##### firstclock(/host/key,sec<:time shift>) {#firstclock}

L’horodatage de la valeur la plus ancienne dans la période d’évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters).

La fonction échoue avec une erreur si aucune donnée n’a été collectée pendant la période donnée.

Voir aussi [lastclock()](#lastclock).

Exemples :

```default
firstclock(/host/key,1h) #récupère l’horodatage de la valeur la plus ancienne au cours de la dernière heure
firstclock(/host/key,1h:now-24h) #récupère l’horodatage de la valeur la plus ancienne au cours de la dernière heure il y a un jour
```

[comment]: # ({/f7e55e49-77c121f4})

[comment]: # ({96c1f032-1c3609f8})
##### fuzzytime(/host/key,sec) {#fuzzytime}

Vérifie dans quelle mesure l'heure de l'agent passif diffère de l'heure du serveur/proxy Zabbix.<br>
Types de valeurs pris en charge : *Float*, *Integer*.<br>
Renvoie : 1 - la différence entre la valeur de l'élément passif (en tant qu'horodatage) et l'horodatage du serveur/proxy Zabbix (l'heure de collecte de la valeur) est inférieure ou égale à *sec* secondes ; 0 - sinon.

Paramètres : 

-   Voir [paramètres communs](#common-parameters).

Commentaires :

-   Généralement utilisé avec l'élément 'system.localtime' pour vérifier que l'heure locale est synchronisée avec l'heure locale du serveur Zabbix.
*Notez* que 'system.localtime' doit être configuré comme une [vérification passive](/manual/appendix/items/activepassive#passive-checks) pour Zabbix agent ; avec Zabbix agent 2, il peut être configuré comme une vérification active.
-   Peut également être utilisé avec la clé `vfs.file.time[/path/file,modify]` pour vérifier que le fichier n'a pas été mis à jour depuis longtemps.
-   Cette fonction n'est pas recommandée dans des expressions de déclencheur complexes (impliquant plusieurs éléments), car elle peut provoquer des résultats inattendus (la différence de temps sera mesurée à l'aide de la métrique la plus récente), par exemple dans `fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0`.

Exemples :

```default
fuzzytime(/host/system.localtime,5m)=0 #l'heure locale du client diffère de l'heure du serveur/proxy Zabbix de plus de 5 minutes
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #l'heure locale du client diffère de l'heure du serveur/proxy Zabbix de plus de 5 minutes (tout en s'assurant que l'élément n'a pas cessé de transmettre des données)
```

[comment]: # ({/96c1f032-1c3609f8})

[comment]: # ({a56ae5b5-8059d345})
##### last(/host/key,<#num<:time shift>>) {#last}

La valeur la plus récente.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **#num** (facultatif) - la Nième valeur la plus récente

Commentaires :

-   Notez qu'une période de temps avec dièse (#N) fonctionne ici différemment de nombreuses autres fonctions.
Par exemple : `last(/host/key)` est toujours égal à `last(/host/key,#1)` ; `last(/host/key,#3)` - la troisième valeur la plus récente (*et non* les trois dernières valeurs).
-   Zabbix ne garantit pas l'ordre exact des valeurs si plus de deux valeurs existent dans l'historique au cours d'une même seconde.
-   Voir aussi [first()](#first).

Exemples :

```default
last(/host/key) #retrieve the last value
last(/host/key,#2) #retrieve the previous value
last(/host/key,#1)<>last(/host/key,#2) #last two values differ
```

[comment]: # ({/a56ae5b5-8059d345})

[comment]: # ({37d8627c-e2c2d8a2})
##### lastclock(/host/key,<#num<:time shift>>) {#lastclock}

L'horodatage de la Nième valeur la plus récente dans la période d'évaluation définie.<br>
Types de valeurs pris en charge : *Float*, *Integer*, *String*, *Text*, *Log*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters);<br>
-   **#num** (facultatif) - la Nième valeur la plus récente.

La fonction échoue avec une erreur si aucune donnée n'a été collectée dans la période donnée ou si aucune Nième valeur n'a été collectée.

Voir aussi [firstclock()](#firstclock).

Exemples :

```default
lastclock(/host/key) #récupérer l'horodatage de la dernière valeur
lastclock(/host/key,#2) #récupérer l'horodatage de la 2e dernière valeur
now()-lastclock(/host/heartbeat.item)>300 #plus de 5 minutes se sont écoulées depuis la mise à jour de l'élément heartbeat
lastclock(/host/system.cpu.load[all,avg1])-lastclock(/host/system.cpu.load[all,avg1],#2)>300 #l'intervalle de mise à jour entre les deux dernières valeurs dépasse 5 minutes
((now()-lastclock(/host/system.cpu.load[all,avg1])<120 and last(/host/system.cpu.load[all,avg1])>5)) #la valeur CPU est élevée et la valeur est récente (moins de 2 minutes)
```

[comment]: # ({/37d8627c-e2c2d8a2})

[comment]: # ({5cecd78d-ff5dcd5e})
##### logeventid(/host/key,<#num<:time shift>>,<pattern>) {#logeventid}

Vérifie si l'ID d'événement de la dernière entrée de journal correspond à une expression régulière.<br>
Types de valeurs pris en charge: *Log*.<br>
Retourne: 0 - ne correspond pas; 1 - correspond.

Paramètres: 

-   Voir [paramètres communs](#common-parameters)<br>
-   **#num** (facultatif) - la Nième valeur la plus récente<br>
-   **pattern** (facultatif) - l'expression régulière décrivant le motif requis, au format [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (les arguments de chaîne doivent être entre guillemets doubles)

Exemples:

```default
logeventid(/host/eventlog[Security],,"^4625$")=1 #une entrée de journal avec l'ID correspondant à "4625" (échec d'authentification) trouvée
logeventid(/host/eventlog[System],,"^(6008|41)$")=1 #une entrée de journal avec l'ID correspondant à "6008" ou "41" trouvée
```

[comment]: # ({/5cecd78d-ff5dcd5e})

[comment]: # ({d3497d35-5053b990})
##### logseverity(/host/key,<#num<:time shift>>) {#logseverity}

Gravité du journal de la dernière entrée de journal.<br>
Types de valeurs pris en charge : *Log*.<br>
Renvoie : 0 - gravité par défaut ; N - gravité (integer, utile pour les journaux d’événements Windows : 1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose).

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **#num** (facultatif) - la Nième valeur la plus récente

Zabbix récupère la gravité du journal à partir du champ **Information** du journal d’événements Windows.

Exemples :

```default
logseverity(/host/log[/var/log/syslog],10m)>3 #a log entry with severity above "3" found
logseverity(/host/eventlog[System],10m)=4 #a log entry with severity equaling "Error" found
```

[comment]: # ({/d3497d35-5053b990})

[comment]: # ({b33d7f55-a9148f5c})
##### logsource(/host/key,<#num<:time shift>>,<pattern>) {#logsource}

Vérifie si la source du journal de la dernière entrée de journal correspond à une expression régulière.<br>
Types de valeurs pris en charge: *Log*.<br>
Retourne: 0 - ne correspond pas; 1 - correspond.

Paramètres: 

-   Voir [paramètres communs](#common-parameters)<br>
-   **#num** (facultatif) - la Nième valeur la plus récente<br>
-   **pattern** (facultatif) - l'expression régulière décrivant le motif requis, au format [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (les arguments de chaîne doivent être entre guillemets doubles)

Normalement utilisé pour les journaux d'événements Windows.

Exemples:

```default
logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #une entrée de journal avec une source correspondant à "MSSQLSERVER" trouvée
logsource(/host/eventlog[System],,"Service Control Manager")=1 #une entrée de journal avec une source correspondant à "Service Control Manager" trouvée
logsource(/host/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"^7031$")=1 #une entrée de journal avec une source correspondant à "Service Control Manager" et un ID d'événement correspondant à "7031" trouvée
```

[comment]: # ({/b33d7f55-a9148f5c})

[comment]: # ({64641457-49eac3d8})
##### logtimestamp(/host/key,<#num<:time shift>>) {#logtimestamp}

L'horodatage du message de journal de la Nième valeur la plus récente d'un élément de journal.<br>
Types de valeurs pris en charge : *Log*.

Paramètres : 

-   Voir les [paramètres communs](#common-parameters) ;<br>
-   **#num** (facultatif) - la Nième valeur la plus récente.

Commentaires :

-   Le calcul du décalage temporel est basé sur l'horloge de la valeur de l'élément, et non sur l'horodatage du message de journal ;
-   La fonction échoue avec une erreur si :
    -   un élément de type non-journal est reçu ;
    -   aucune donnée n'a été collectée pendant la période donnée ;
    -   aucune Nième valeur n'a été collectée ;
    -   le message de journal ne contient pas de valeur d'horodatage.

Exemples :

```default
logtimestamp(/host/key) #retrieve the timestamp of the latest log message
logtimestamp(/host/key,#2) #retrieve the timestamp of the 2nd latest log message
logtimestamp(/host/key,#3:now-1d) #retrieve the timestamp of the 3rd latest log message a day ago
```

[comment]: # ({/64641457-49eac3d8})

[comment]: # ({2b7441d8-6a63b5c8})
##### monodec(/host/key,(sec|#num)<:time shift>,<mode>) {#monodec}

Vérifie s'il y a eu une diminution monotone des valeurs.<br>
Types de valeurs pris en charge : *Integer*.<br>
Renvoie : 1 - si tous les éléments de la période diminuent continuellement ; 0 - sinon.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **mode** (doit être entre guillemets doubles) - *weak* (chaque valeur est inférieure ou égale à la précédente ; valeur par défaut) ou *strict* (chaque valeur a diminué)

Exemples :

```default
monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #calculer sur combien d'hôtes il y a eu une diminution de la taille de swap libre
monodec(/host/proc.num[nginx],10m,"strict")=1 #le nombre de processus nginx a diminué de façon monotone pendant 10 minutes
```

[comment]: # ({/2b7441d8-6a63b5c8})

[comment]: # ({09e06757-755c1821})
##### monoinc(/host/key,(sec|#num)<:time shift>,<mode>) {#monoinc}

Vérifie s'il y a eu une augmentation monotone des valeurs.<br>
Types de valeurs pris en charge : *Integer*.<br>
Renvoie : 1 - si tous les éléments de la période augmentent continuellement ; 0 - sinon.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **mode** (doit être entre guillemets doubles) - *weak* (chaque valeur est supérieure ou égale à la précédente ; valeur par défaut) ou *strict* (chaque valeur a augmenté)

Exemples :

```default
monoinc(/host/system.localtime,#3,"strict")=0 #l'heure locale du système n'a pas augmenté de manière cohérente
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #déclencher si le nombre de fichiers a stagné pendant 24 heures (croissance attendue)
```

[comment]: # ({/09e06757-755c1821})

[comment]: # ({ce0040c4-178e3950})
##### nodata(/host/key,sec,<mode>) {#nodata}

Vérifie qu'aucune donnée n'a été reçue.<br>
Types de valeurs pris en charge : *Integer*, *Float*, *Character*, *Text*, *Log*.<br>
Renvoie : 1 - si aucune donnée n'a été reçue pendant la période définie ; 0 - sinon.

Paramètres : 

-   Voir les [paramètres communs](#common-parameters)<br>
-   **sec** - la période ne doit pas être inférieure à 30 secondes, car le processus history syncer calcule cette fonction seulement toutes les 30 secondes ; `nodata(/host/key,0)` n'est pas autorisé
-   **mode** - si défini sur *strict* (entre guillemets doubles), cette fonction sera insensible à la disponibilité du proxy (voir les commentaires pour plus de détails)

Commentaires :

-   les déclencheurs 'nodata' surveillés par proxy sont, par défaut, sensibles à la disponibilité du proxy - si le proxy devient indisponible, les déclencheurs 'nodata' ne se déclencheront pas immédiatement après le rétablissement de la connexion, mais ignoreront les données pour la période retardée.
Notez que pour les proxies passifs, la suppression est activée si la connexion est rétablie plus de 15 secondes et au moins 2 secondes plus tard.
Pour les proxies actifs, la suppression est activée si la connexion est rétablie plus de 15 secondes plus tard.
Pour désactiver la sensibilité à la disponibilité du proxy, utilisez le troisième paramètre, par exemple : `nodata(/host/key,5m,"strict")` ; dans ce cas, la fonction se déclenchera dès que la période d'évaluation (cinq minutes) sans données sera écoulée.<br>
-   Cette fonction affichera une erreur si, pendant la période du 1er paramètre :<br>- il n'y a pas de données et le serveur Zabbix a été redémarré<br>- il n'y a pas de données et une maintenance s'est terminée<br>- il n'y a pas de données et l'élément a été ajouté ou réactivé.<br>
-   Les erreurs sont affichées dans la colonne *Info* de la [configuration](/manual/web_interface/frontend_sections/data_collection/hosts/triggers) des déclencheurs.<br>
-   Cette fonction peut ne pas fonctionner correctement s'il existe des différences de temps entre le serveur Zabbix, le proxy et l'agent.
Voir aussi : [Exigence de synchronisation de l'heure](/manual/installation/requirements#time-synchronization).

Exemple :

```default
nodata(/host/agent.ping,5m)=1 #déclencheur si aucune donnée n'a été reçue de l'agent Zabbix pendant 5 minutes
```

[comment]: # ({/ce0040c4-178e3950})

[comment]: # ({8fe0ae58-e8041c00})
##### percentile(/host/key,(sec|#num)<:time shift>,percentage) {#percentile}

Le percentile P d'une période, où P (pourcentage) est spécifié par le troisième paramètre.<br>
Types de valeurs pris en charge : *Float*, *Integer*.

Paramètres : 

-   Voir [paramètres communs](#common-parameters)<br>
-   **percentage** - un nombre à virgule flottante compris entre 0 et 100 (inclus), avec jusqu'à 4 chiffres après la virgule

Exemples :

```default
percentile(/host/net.if.in[eth0,bytes],1h,95)>1000000 #le 95e percentile du trafic réseau entrant (octets/s) sur 1 heure a dépassé un seuil (par exemple, 1 Mo/s)
percentile(/host/system.cpu.util,5m,95)>80 #le 95e percentile du pourcentage d'utilisation CPU en temps utilisateur a dépassé 80
percentile(/host/icmppingsec[192.168.0.2],15m,95)>0.15 #la plupart des mesures de latence sont inférieures à 150 ms, mais l'extrémité supérieure (les 5 % les plus élevés) indique une latence régulière
percentile(/host/net.if.in[eth0,bytes],1h,50) #calcule le 50e percentile (la valeur médiane) du trafic réseau entrant sur une heure ; cela donne un résultat différent de avg() (la moyenne), car percentile ne tient pas compte des valeurs aberrantes
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentile(/host/net.if.in[eth0,bytes],1h,51))/2 #calcule la valeur médiane précise avec un nombre pair de valeurs sur une heure
```

[comment]: # ({/8fe0ae58-e8041c00})

[comment]: # ({0e6c5369-3b1de601})
##### rate(/hôte/key,sec<:décalage temporel>) {#rate}

Le taux moyen par seconde d'augmentation d'un compteur monotone croissant sur la période de temps définie.<br>
Types de valeurs pris en charge: *Float*, *Integer*.

Paramètres:

-   Voir [paramètres communs](#common-parameters)

Correspond fonctionnellement à '[rate](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate)' de PromQL.

Exemples:

```default
rate(/hôte/key,30s) #si l'augmentation monotone sur 30 secondes est de 20, cette fonction renvoie 0.67.
rate(/hôte/net.if.in[eth0,bytes],5m)>500000 #le débit du trafic entrant de l'interface sur eth0 a dépassé 500 KB/s au cours des 5 dernières minutes
rate(/hôte/app.requests.count,1m)>100 #le compteur du nombre de requêtes a augmenté à >100 requêtes par seconde au cours de la dernière minute
```

[comment]: # ({/0e6c5369-3b1de601})

[comment]: # ({ba59dd3a-ce01d749})
Voir [toutes les fonctions prises en charge](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-ce01d749})
