Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

Compteurs, statistiques et watchdogs

Référence des blocs qui mémorisent – Compteur, Delta, Statistics, Watchdog et Début / fin – et fonctionnement de la mémoire des blocs sur Hermetry.

Certains blocs mémorisent des messages précédents : un compteur, la valeur précédente, une fenêtre de valeurs, l’heure du dernier message. Cette page énumère ces blocs et explique le fonctionnement de leur mémoire, ce qui compte lors du déploiement de modifications.

Fonctionnement de la mémoire des blocs

RègleDétail
Une mémoire par appareilSauf si vous définissez key, ces blocs conservent une mémoire distincte par émetteur de message : chaque appareil a son propre compteur, sa propre valeur précédente ou sa propre surveillance. Définissez key sur msg.topic ou sur un autre chemin pour regrouper différemment.
Conservée après redémarrageLa mémoire et les messages en attente sont conservés par la plateforme ; un redémarrage ou un transfert vers un autre worker ne les perd pas. Les attentes sont réarmées à leur échéance initiale.
Réinitialisation lors d’une modification des paramètresUn bloc conserve sa mémoire lors d’un déploiement si ses paramètres n’ont pas changé. Un bloc dont les paramètres ont changé démarre avec une mémoire vide (les messages qu’il retenait sont conservés). Un bloc supprimé, ou dont le type a changé, perd tout.
Conservée pendant la pauseUn flux désactivé ou mis en pause conserve la mémoire de ses blocs ; un flux supprimé la perd.
Taille10 000 clés au maximum par bloc ; au-delà, la clé la plus ancienne est oubliée. Les messages retenus comptent dans la limite de 16 MiB par bloc.
TestsUn test démarre avec une mémoire vide, ou à partir d’une copie en lecture seule de la mémoire active lorsque vous cochez Démarrer à partir de l’état et du contexte actifs. Un test ne modifie jamais la mémoire active.

Donc : si vous modifiez la fenêtre d’un bloc Statistics, ses moyennes repartent de zéro ; si vous ne faites que modifier le câblage autour, elles se poursuivent.

Compteur

Compte les messages par clé, sur toute la durée ou dans une fenêtre glissante, et ajoute le total au message.

ParamètreSignificationValeur par défautValeurs
nLe nombre qui envoie une copie vers reached ; vide ou 0 = jamaisvide0 ou plus
window_msNe compter que sur cette durée écoulée ; 0 = tout00 à 7 jours
reset_at_nRepartir de 0 lorsque n est atteintoffon, off
keyChaque clé a son propre compteurmsg.originatorun chemin
storememory, ou persist (conservé dans le contexte persistant du flux)memorymemory, persist

Sorties : out (chaque message, avec msg.count), reached (une copie lorsque le compteur atteint n ou plus). msg.reset = true remet à 0 le compteur de la clé. Sans reset_at_n, chaque message à partir du n-ième est également envoyé vers reached.

Exemple : « 3 ouvertures de porte en 10 minutes » : n 3, window_ms 10 min, reset_at_n on, reached → Déclencher une alarme.

Delta

La différence entre un nombre et le nombre précédent de la même clé : consommation d’un compteur, impulsions depuis le dernier relevé.

ParamètreSignificationValeur par défautValeurs
inputLe nombremsg.payloadun chemin
outputEmplacement où la différence est écritemsg.payload.deltaun chemin
periodEmplacement où écrire les millisecondes écoulées depuis la valeur précédentenoneun chemin
roundDécimales, appliquées en premiernone0 à 15
on_negativeUne baisse (redémarrage du compteur)errorerror (negative_delta), pass (écrit avec son signe), zero
skip_zeroTransmettre un delta nul inchangé, sans l’écrireoffon, off
keyChaque clé a sa propre valeur précédentemsg.originatorun chemin
seedLa valeur précédente du premier messagenone (delta 0)none, latest (la dernière valeur enregistrée de l’appareil)
seed_keyLa clé enregistrée à partir de laquelle initialiser (seed = latest)jusqu’à 128 caractères
ts_pathEmplacement de l’heure de la mesurel’heure d’enregistrementun chemin

Sorties : out, other (aucune valeur au chemin d’entrée), error (not_a_number, negative_delta). Après une baisse, la nouvelle valeur devient la référence dans tous les modes. Delta ne lit aucune base de données à chaque message : c’est donc la manière efficace de calculer une consommation.

Statistics

Nombre, somme, moyenne, minimum, maximum, écart type, dernière valeur et taux sur les dernières valeurs ou la dernière période, par clé.

ParamètreSignificationValeur par défautValeurs
propertyLe nombremsg.payloadun chemin
windowcount (les dernières size valeurs) ou time (les dernières size ms)countcount, time
sizeNombre de valeurs, ou la fenêtre en ms10count : 1 à 10 000 ; time : 1 ms à 7 jours
outputsQuels indicateurscount, avg, min, maxn’importe lesquels de count, sum, avg, min, max, stddev, last, rate
emiteach pour chaque message, ou une fois par fenêtre complète (end_of_window)eacheach, end_of_window
keyChaque clé a sa propre fenêtremsg.originatorun chemin

msg.payload est remplacé par l’indicateur (une sortie choisie) ou par un objet d’indicateurs. rate est exprimé en valeurs par seconde. Une fenêtre temporelle contient au maximum 10 000 valeurs. Après avoir passé window à time, réglez size en millisecondes : la valeur par défaut 10 représenterait 10 ms. Erreur invalid_value « not a number ».

Exemple : moyenne horaire envoyée une fois par heure : window time, size 3600000, outputs avg, emit end_of_window.

Watchdog

Signale l’arrêt des messages : si aucun message d’une clé n’arrive dans le délai, il envoie un message de dépassement de délai ; lorsque les messages reprennent, il le signale également.

ParamètreSignificationValeur par défautValeurs
msDurée pendant laquelle une clé peut rester silencieuse1 min100 ms à 7 jours
keyChaque clé est surveillée séparémentmsg.originatorun chemin
repeatEnvoyer à nouveau timeout toutes les ms tant que le silence persisteoffon, off

Sorties :

  • timeout : un nouveau message (une nouvelle exécution) avec msg.payload = la clé, msg.topic du dernier message, msg.timeout_ms, et l’émetteur du dernier message, afin que Déclencher une alarme puisse l’exploiter.
  • ok : le premier message d’une clé après un dépassement de délai, inchangé.

Les autres messages ne sont pas transmis. La surveillance d’une clé commence avec son premier message : un appareil qui n’envoie jamais n’est pas détecté (utilisez pour cela une règle d’alarme hors ligne ; voir Alarmes hors ligne). Un message tardif (après une panne) n’alimente ni ne déclenche le watchdog, afin qu’une alarme de silence ne soit pas effacée par d’anciennes mesures. Pour surveiller par appareil, key doit être défini sur l’appareil : msg.originator (la valeur par défaut) ou msg.metadata.deviceId.

Début / fin

Marque le début et la fin d’une période d’activité.

ParamètreSignificationValeur par défautValeurs
msDélai de silence après le dernier message qui termine la période1 min0 à 7 jours
keyChaque clé a sa propre périodemsg.originatorun chemin

Sorties : start (une copie du premier message d’une période, immédiatement), end (le dernier message, ms après son arrivée). Les messages intermédiaires ne sont pas envoyés.

Variables utilisées comme mémoire

Pour les valeurs partagées par plusieurs blocs ou flux, écrivez des variables avec Définir une variable ou Modifier, et lisez-les avec des chemins :

StockagePortéeLimite
flow.xCe flux1 MiB par flux
global.xChaque flux de l’organisation4 MiB par organisation
flow.persist:x, global.persist:xLe stockage persistant de la même portéedans les mêmes limites

Une écriture au-delà d’une limite échoue avec limit et conserve l’ancienne valeur. L’onglet Données de Activité > de l’éditeur affiche les valeurs et le taux de remplissage des stockages. Voir Blocs d’action.

Minuteries

Pour « si rien ne l’annule dans les 10 minutes, faites ceci » entre plusieurs flux, utilisez le bloc d’action Minuterie avec un déclencheur Minuterie nommée. Voir Blocs d’action et Blocs déclencheurs.