\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 ```