virli/tutorial/dockerfiles/split.md

2.0 KiB

\newpage

Une application par conteneur

Avec notre conteneur utilisant supervisor, nous ne respectons pas cette dernière bonne pratique d'un seul processus par conteneur :-(

L'intérêt est de permettre à chaque conteneur d'effectuer une tâche simple et générique, de manière à pouvoir être réutilisé pour d'autres projets dans le futur. Par exemple, notre conteneur InfluxDB pourra être utilisé pour stocker des relevés de métriques d'autres systèmes ou des logs. Chronograf peut être connecté à d'autres serveurs afin de corréler les métriques, ...

Séparer le Dockerfile

Commençons par séparer notre Dockerfile en deux : dans une partie nous allons garder la partie InfluxDB, de l'autre la partie Chronograf.

Il va vous falloir créer deux dossiers distincts, il en faut un par Dockerfile : réutilisez l'image influxdb créée précédemment et créez le dossier pour l'image chronograf.

\vspace{1em}

Pour tester la bonne marche de vos conteneurs, vous pouvez le lancer votre conteneur chronograf avec la commande suivante (en considérant que votre conteneur influxdb de la première partie est toujours lancé).

```shell docker run --rm --link YOUR_INFLUX_CNTR_NAME:influxdb chronograf ```

Remplacez YOUR_INFLUX_CNTR_NAME par le nom du conteneur qui fait tourner votre influxdb. En créant ce lien, chronograf sera capable de contacter une machine nommée influxdb (indiqué par la partie du lien après les :).

Visualiser les données dans chronograf

Avant d'arrêter telegraf et nos conteneurs pour passer à une nouvelle étape, prenez le temps d'afficher les données que vous avez collecté depuis le début du TP.

Après avoir ajouté le serveur (en remplaçant localhost proposé par défaut par influxdb issue du link), ajouter deux visualisations avec les requêtes suivantes :

```sql SELECT used, available, cached FROM mem WHERE tmpltime() SELECT mean(usage_idle) FROM cpu WHERE tmpltime() GROUP BY time(20s), cpu ```