Files
observability/tp2.md

79 lines
1.8 KiB
Markdown
Raw Normal View History

2025-12-04 07:43:14 +01:00
# 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
2025-12-04 13:05:07 +01:00
Inclure les bibliothèques
```Cpp
#include <prometheus/counter.h>
#include <prometheus/gauge.h>
#include <prometheus/registry.h>
#include <prometheus/exposer.h>
```
Déclarer les variables
```Cpp
using namespace prometheus;
std::shared_ptr<Registry> 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<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
2025-12-04 07:43:14 +01:00
```Cpp
debit_entree->Set(_digital[IN_FLOW_OUT].dvalue);
debit_sortie->Set(_digital[IN_FLOW_IN].dvalue);
```
2025-12-04 13:05:07 +01:00
### Ajouter un conteneur pour Prometheus
### Ajouter un conteneur pour Grafanas
### Ajouter un conteneur pour Mailpits