Aller au contenu

Configuration plugin Metrics

Présentation

Le plugin Metrics collecte, formate et publie des mesures système ou applicatives depuis l’agent Alemca vers la plateforme.
Il cumule deux exigences antagonistes : exhaustivité (ne rien perdre) et sobriété réseau (ne rien saturer).

Fonction Description Opinion
Collecte Exécution périodique de commandes, lectures de fichiers ou valeurs embarquées selon la liste DataList. 5 minutes de collect_time conviennent à 95 % des cas ; passer en dessous est rarement justifié.
Mise en cache Buffer sur disque (metrics.cache) avec limite volumique avant envoi. À moins d’un disque Flash minuscule, réservez 10 Mo – la perte de données coûte bien plus cher.
Publication Envoi groupé sur l’exchange data_metrics_ex via AMQP/TLS. N’essayez pas d’“optimiser” en TCP brut ; vous réinventeriez du rebut de qualité inférieure.
Jitter Décalage pseudo-aléatoire du send_time pour éviter les pics synchrones. 25 % du send_time est idéal ; assez pour casser la phase, pas assez pour perdre la main.
Auto-profil Sélection dynamique d’un Mode (Linux, OpenWRT, Windows, Legato…) qui insère des DataList par défaut. Retirez-les seulement si vous mesurez un réel gain de place – pas “par principe”.

Cas d’usage emblématiques

  1. Surveillance basique : RAM libre, charge CPU, espace disque et uptime.
  2. Télémétrie cellulaire : RSSI / RSRP / RSRQ d’un modem LTE.
  3. Inventaire statique : version agent + ICCID SIM envoyés une seule fois (champ once: true) puis nettoyés du cache.

Détails de configuration

/etc/alemca/config.yaml
metrics:
  enabled: true                   # Coupe/active complètement le plugin
  cache_path: "/tmp/alemca"       # Répertoire d’écriture du cache
  max_cache_size: 1              # Taille max du cache en Mo
  collect_time: "5m"              # Période de collecte
  send_time: "1h"                 # Période d’envoi
  jitter: "5m"                    # Décalage aléatoire
  mode: 0                         # Mode de fonctionnement (Linux, OpenWRT, etc.) (détecté automatiquement)
  data_list:                      # Liste déclarative des métriques
    - name: "ram"                 # Mémoire libre
      file_path: "/proc/meminfo"
      regex: "MemFree:\\s+(\\d+)"
      regex_group: 1
      unit: "kB"
      type: "int"
    - name: "uptime"              # Temps depuis le dernier boot
      command: "cat /proc/uptime"
      regex: "(\\d+)"
      unit: "s"
      type: "int"
    - name: "sim_iccid"          # ICCID de la SIM
      at_command: "AT+CCID"
      at_device: "/dev/ttyUSB0"
      once: true                   # Collecte unique, ensuite supprimée

Explication des sections

Principales

  • enabled : Active/désactive le plugin Metrics.
  • cache_path : Répertoire où sont créés metrics.cache & metrics.tmp, avant l'envoie.
  • max_cache_size : Taille totale autorisée du cache avant purge LRU.
  • collect_time : Période entre deux collectes.
  • send_time : Période entre deux envois vers AMQP.
  • jitter : Décalage pseudo-aléatoire ajouté à send_time.
  • queue_name : Queue AMQP où sont poussées les données.
  • headers : Paires clef/valeur injectées dans les propriétés AMQP.
  • tags : Clés JSON ajoutées à chaque envoi (niveau paquet)

mode

Le champ mode est interne ; il découle de l’OS détecté :

  • 0 : Linux générique, Fallback standard.
  • 1 : OpenWRT, Ajoute métriques modem via gsmctl.
  • 2 : Windows, Utilise PowerShell et wmic.
  • 3 : Legato, Extraction via commandes cm.
  • 999 : Inconnu, Aucune DataList pré-remplie.

data_list

Chaque entrée décrit comment obtenir une métrique :

  • name : Nom unique de la métrique.
  • file_path : Chemin d’un fichier à lire entièrement.
  • command : Commande shell à exécuter.
  • at_command / at_device : Envoi d’une commande AT sur at_device, attente de réponse.
  • value : Valeur littérale (pas d’I/O).
  • regex / regex_group : Extraction par expression régulière ; regex_group = groupe capturé à retourner.
  • unit : Unité (kB, %, s, dBm…).
  • type : int, float, string, etc.
  • math : Expression arithmétique à appliquer (ex. / 10).
  • once : true = collecte unique, ensuite l’entrée est supprimée.

Champs par défaut

OS / Mode version_agent version_device ram load disk_space data_interfaces_in / out uptime modem_temperature modem_cell_id modem_rssi / rsrp / rsrq / sinr modem_iccid
0 – Linux générique Oui Non Oui Oui Oui Oui Oui Non Non Non Non
1 – OpenWRT Oui Oui Oui Oui Oui Oui Oui Optionnel Optionnel Optionnel Optionnel
2 – Windows Oui Non Oui Non Oui Oui Oui Non Non Non Non
3 – Legato Oui Oui Oui Oui Oui Oui Oui Oui Non Non Oui

Optionnel : Les métriques « modem_ » sous OpenWRT ne sont chargées que si* le binaire gsmctl est présent sur l’équipement.

Information sur les métriques remontées

Définitions des métriques

  • Cell ID : Identifiant numérique unique d'une cellule dans un réseau mobile.
  • RSRP (Référence Signal Received Power) : Puissance du signal de référence reçu. Il mesure la force du signal LTE reçu par l’antenne d’un appareil. Plus la valeur est élevée (moins négative), meilleure est la réception.
  • RSRQ (Référence Signal Received Quality) : Qualité du signal de référence reçu. Il indique la qualité du signal LTE en tenant compte du bruit et des interférences. Une valeur plus élevée indique une meilleure qualité.
  • RSSI (Received Signal Strength Indicator) : Indicateur de la force du signal reçu. Il mesure la puissance totale du signal reçu, incluant à la fois le signal utile et le bruit.
  • SINR (Signal to Interference plus Noise Ratio) : Rapport signal sur interférence et bruit. Une valeur plus élevée indique un meilleur rapport signal/bruit et une meilleure qualité de connexion.
Niveau RSRP (dBm) RSRQ (dB) RSSI (dBm) SINR (dB)
Excellent ≥ -80 ≥ -9 ≥ -65 ≥ 20
Bon -80 à -90 -9 à -12 -65 à -75 13 à 20
Moyen -90 à -100 -12 à -15 -75 à -85 0 à 13
Mauvais -100 à -110 -15 à -18 -85 à -95 -5 à 0
Critique ≤ -110 ≤ -18 ≤ -95 ≤ -5
  • Température : La température (en celsius) du dispositif ou du système. Des températures élevées peuvent nuire aux performances du matériel et entraîner des défaillances.
  • Data Interfaces Default Route In : Mesure de la quantité de données (en bytes) entrant dans l'interface réseau configurée pour la route par défaut.
  • Data Interfaces Default Route Out : Mesure de la quantité de données (en bytes) sortant de l'interface réseau configurée pour la route par défaut.
  • Load : La charge système représente le pourcentage de l’utilisation des ressources du système (CPU, RAM, etc.). Une valeur plus élevée indique que le système est plus sollicité et pourrait ne pas répondre de manière optimale.
  • Ping : Le ping indique si le dispositif est "pingable" ou non. Si la valeur est 1 (ou true), cela signifie que le dispositif est accessible via le réseau. Si la valeur est 0 (ou false), cela signifie que le dispositif n'est pas accessible (ping échoué).
  • RAM : La mémoire vive représente l'espace utilisé (en bytes) par le système pour exécuter des programmes.
  • Uptime : Durée (en secondes) pendant laquelle un dispositif ou un système est en fonctionnement sans interruption.
  • Disk Space : L'espace disque représente la capacité de stockage utilisée (en pourcentage) sur un dispositif.
  • Version Agent : La version de l'agent Alemca utilisé pour gérer le dispositif. Elle permet de déterminer si des mises à jour sont nécessaires.
  • Version Device : La version du firmware du dispositif. Une version plus ancienne peut indiquer que des mises à jour de firmware sont disponibles pour améliorer les performances ou la sécurité.
  • Alert Timeout : Indicateur booléen signalant une perte de connexion avec le dispositif.
  • Si la valeur est true, cela signifie que le dispositif n’a pas répondu dans le délai imparti et est considéré comme inactif ou hors ligne.
  • Si la valeur est false, le dispositif est accessible et répond normalement.
  • Alert Uptime : Indicateur booléen signalant un problème lié au temps de fonctionnement du dispositif.
  • Si la valeur est true, cela signifie que le dispositif est soit hors ligne, soit qu’il n’a pas atteint un seuil minimal d’uptime défini (en secondes).
  • Si la valeur est false, cela signifie que le dispositif fonctionne normalement et que son uptime est conforme aux attentes.
  • Alert Signals (RSRP, RSRQ, RSSI, SINR) : Catégorie d’alerte basée sur la qualité du signal mesuré. La valeur indique le niveau de classification des signaux :
  • 4 : 'Excellent'
  • 3 : 'Bon'
  • 2 : 'Moyen'
  • 1 : 'Mauvais'
  • 0 : 'Critique'
  • -1 : Métrique non trouvée (signal non disponible ou non mesuré)
  • Alert Version Agent : Indicateur booléen signalant un problème avec la version de l’agent.
  • Si la valeur est true, cela signifie que la version de l’agent est inférieure au seuil défini ou que la métrique de la version de l’agent n’est pas disponible.
  • Si la valeur est false, cela signifie que la version de l’agent est conforme aux attentes et qu’aucun problème n’a été détecté.