# TP 2 Supervision d'un programme en C Dans Visual Studio Code, assurez vous d'avoir l'extension suivante installée : - [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) Cloner le dépot contenant les [sources](https://sources.neotech.fr/medina474/c_pompes) C programme sur les pompes ```shell git clone https://sources.neotech.fr/medina474/c_pompes ``` ```shell cd c_pompes ``` Démarrer Docker en lançant Docker Desktop Créer un réseau qui permettra à vos machines de communiquer entre elles. ```shell 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 ```Cpp #include #include #include #include ``` Déclarer les variables ```Cpp using namespace prometheus; std::shared_ptr registry; Gauge* debit_entree = nullptr; Gauge* debit_sortie = nullptr; ``` Initialiser ```Cpp static Exposer exposer{"0.0.0.0:8099"}; // Le registre central registry = std::make_shared(); 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 ```Cpp 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