Files
observability/tp2.md
2025-12-04 13:05:07 +01:00

1.8 KiB

TP 2 Supervision d'un programme en C

Dans Visual Studio Code, assurez vous d'avoir l'extension suivante installée :

Cloner le dépot contenant les sources C programme sur les pompes

git clone https://sources.neotech.fr/medina474/c_pompes
cd c_pompes

Démarrer Docker en lançant Docker Desktop

Créer un réseau qui permettra à vos machines de communiquer entre elles.

docker network create tp_net

Dans Visual Studio Code, chercher la commande Open Folder in Dev Container.... (Menu View - Command Palette ...)

L'extension va créer un conteneur Docker configuré avec les extensions nécessaires au développment de l'application

Inclure les bibliothèques

#include <prometheus/counter.h>
#include <prometheus/gauge.h>
#include <prometheus/registry.h>
#include <prometheus/exposer.h>

Déclarer les variables

using namespace prometheus;

std::shared_ptr<Registry> registry;
Gauge* debit_entree = nullptr;
Gauge* debit_sortie = nullptr;

Initialiser

static Exposer exposer{"0.0.0.0:8099"};

// Le registre central
registry = std::make_shared<Registry>();

exposer.RegisterCollectable(registry);

auto& gauge_family = BuildGauge()
      .Name("geii_debit")
      .Help("Débit en l/s")
      .Register(*registry);

debit_entree = &gauge_family.Add({{"numero", "entree"}});
debit_sortie = &gauge_family.Add({{"numero", "sortie"}});

Affecter les valeurs

debit_entree->Set(_digital[IN_FLOW_OUT].dvalue);
debit_sortie->Set(_digital[IN_FLOW_IN].dvalue);

Ajouter un conteneur pour Prometheus

Ajouter un conteneur pour Grafanas

Ajouter un conteneur pour Mailpits