Files
observability/tp1.md

107 lines
2.8 KiB
Markdown
Raw Normal View History

2025-11-22 10:18:27 +01:00
# TP 1 Synthèse de l'activité bancaire
Créer un tableau de bord complet à partir de données issues dune application bancaire (comptes, transactions, titularisation…), en utilisant des fonctions dagrégation SQL et un outil de visualisation (Grafana).
2025-11-27 10:03:19 +01:00
## Installation de l'environnement de travail
Nous allons construire un environnement de travail pour étudier les interactions entre les différents élements.
Git est un outil qui permet de garder lhistorique complet dun projet (code, schémas, configs…). Il permet de travailler à plusieurs personnes de travailler en même temps ou en parallèle sur un même projet.
```shell
git clone https://sources.neotech.fr/Universite/tp.git
2025-11-28 14:17:39 +01:00
```
```shell
2025-11-27 10:03:19 +01:00
cd tp
```
Docker est une technologie pour emballer une application, ses dépendances et sa configuration dans un conteneur : un mini-système isolé, reproductible et portable.
```shell
docker build -t iut/pgsql:2025-13 -f postgresql.Dockerfile .
```
```shell
git clone https://sources.neotech.fr/Universite/sql_bank.git
2025-11-28 14:17:39 +01:00
```
```shell
2025-11-27 10:03:19 +01:00
cd sql_bank
```
```shell
docker network create pgsql_net
```
```shell
docker run --detach --name pgsql ^
--network pgsql_net ^
-p "5432:5432" ^
-e "POSTGRES_INITDB_ARGS=--locale-provider=icu --icu-locale=fr-FR" ^
-e "POSTGRES_PASSWORD=geii2025" ^
-e "POSTGRES_USER=iut" ^
-v pgsql_data:/var/lib/postgresql ^
-v "./:/docker-entrypoint-initdb.d" ^
iut/pgsql:2025-13
```
2025-11-28 14:17:39 +01:00
Vérifier avec DBeaver que la base de données est bien présente
### Grafana
2025-11-27 10:11:10 +01:00
```shell
docker pull grafana/grafana:12.1
```
```shell
docker run --detach --name grafana ^
2025-11-27 11:51:54 +01:00
--network pgsql_net ^
2025-11-27 10:11:10 +01:00
-p "3000:3000" ^
-e "GF_SECURITY_ADMIN_USER=admin" ^
-e "GF_SECURITY_ADMIN_PASSWORD=geii2025" ^
-e "GF_USERS_ALLOW_SIGN_UP=false" ^
-e "GF_USERS_DEFAULT_THEME=system" ^
--label "caddy=grafana.localhost" ^
--label "caddy.reverse_proxy={{upstreams 3000}}" ^
--label "caddy.tls=internal" ^
grafana/grafana:12.1
```
2025-11-27 10:03:19 +01:00
2025-11-22 10:18:27 +01:00
### Création dun tableau ou dun panneau
2025-11-28 13:45:03 +01:00
- Nombre total de comptes ouverts :
2025-11-22 10:18:27 +01:00
- Nombre total de titulaires
- Solde total dans la banque
2025-11-28 13:45:03 +01:00
- Cours des devises
- Volume total des transactions par tranche de 5 minutes
2025-11-22 10:18:27 +01:00
- Solde moyen par compte
- Montant moyen des transactions
2025-11-27 14:24:44 +01:00
### Tâches planifiée
Nous allons générer des données aléatoire dans le temps
2025-11-27 11:51:54 +01:00
```sql
SELECT cron.schedule('* * * * *', $$call add_depot(6, (floor(random() * 100) + 50)::decimal);$$);
SELECT cron.schedule('*/2 * * * *', $$call add_retrait(6, (floor(random() * 200) + 100)::decimal);$$);
```
2025-11-27 14:24:44 +01:00
### Afficher le cours des devises
Ajouter un graphie timeseries
2025-11-27 11:51:54 +01:00
- `$__timeFrom()`
- `$__timeTo()`
- `$__timeFilter(date)`
- (${currency:sqlstring})
2025-11-22 10:18:27 +01:00
### Construire un histogramme avec les soldes :
< 0 €
0 100 €
100 500 €
500 1 000 €
> 1 000 €