Lorsque vous déployez une application chez Clever Cloud, elle n’est pas simplement mise en ligne et maintenue en conditions opérationnelles. Nous la livrons également avec de nombreux services et des fonctionnalités dédiées vous aidant à l’opérer tout au long de son cycle de vie.
Parmi elles, notre stack de logs que nous avons fait évoluer l’année dernière. Elle se repose désormais sur Vector pour son émission, Apache Pulsar pour son ingestion et sa consommation, tout en assurant une isolation entre chaque utilisateur (multi-tenant) et chaque application. Nous avions fait ces choix car la solution précédente avait montré ses limites et nous empêchait de livrer certaines améliorations. Notre objectif était d’améliorer l’expérience de nos utilisateurs à de nombreux niveaux.
Une nouvelle expérience de logs chez Clever Cloud
Dès sa mise en place depuis quelques mois, nous l’utilisons avec succès au sein de notre interface en ligne de commande (CLI), Clever Tools. Vous pouvez y retrouver vos logs en direct, mais aussi télécharger ceux d’une fenêtre de temps précise ou même effectuer un filtrage, avec un résultat pouvant être obtenu dans différents formats. La documentation est ici. Bien entendu, cette fonctionnalité repose sur notre APIv4, elle aussi documentée, par là.
L’étape suivante était l’intégration de cette nouvelle brique technique à la Console. C’était pour nous l’occasion de repenser la section dédiée aux logs afin qu’elle exploite nos Web Components et réponde à nos critères en termes de praticité, de fonctionnalités et d’accessibilité. Notre équipe a donc passé plusieurs mois à la repenser de fond en comble.
Après une phase de tests internes, elle est désormais accessible en bêta à l’ensemble de nos clients. Ils peuvent ainsi la choisir en cliquant sur un simple lien dans l’interface et revenir à l’ancienne quand ils le souhaitent. Notre objectif est d’améliorer de manière continue cette section, puis de l’étendre progressivement à l’ensemble de nos services. Pour partager votre avis, nous avons créé un espace communautaire sur GitHub pour l’occasion:
Une multitude de détails…
L’interface précédente vous permettait de naviguer dans vos derniers déploiements et leurs différentes instances une à une. La nouvelle va plus loin puisqu’elle liste par défaut l’ensemble des déploiements et instances d’une application sur les 7 derniers jours. Les logs du dernier déploiement en date seront chargés, mais vous pourrez également ajouter ou retirer ceux de l’instance de votre choix. Chaque déploiement est identifié par le hash du commit du code qui lui est lié, les instances sont numérotées (en cas de scalabilité horizontale).
Vous pouvez réduire la fenêtre de temps à quelques jours ou quelques heures, ou même indiquer manuellement les heures de début et de fin, ce qui est pratique lorsque vous souhaitez une information précise, pour la recherche d’un bug par exemple. Sur cette nouvelle interface de logs, vous disposez également d’un filtre textuel au-dessus de la zone principale. Il évoluera avec la mise en place d’un système d’indexation qui nous ouvrira de nouvelles possibilités en la matière.
Bien entendu, vous pouvez également suivre la publication de vos logs en direct. Ce sera d’ailleurs la section affichée par défaut lorsqu’un déploiement est en cours.
… et de fonctionnalités
La zone principale vous permet une sélection d’une ou plusieurs lignes au clavier et à la souris via la gouttière située à sa gauche, avec la possibilité de copier le résultat dans le presse-papiers tout aussi simplement d’un simple CTRL+C/Cmd+C. En haut à droite vous trouverez un bouton pour mettre la zone en plein écran, un autre pour retourner en bas de vos logs et une zone de paramètres.
Ce panneau n’en est qu’à ses début, mais se veut déjà assez complet et utilise notre nouvelle API de gestion des réglages utilisateur. Elle vous permet de choisir entre différents thèmes clairs/sombres, de retirer les couleurs et codes ANSI, de passer ou non à la ligne, de définir un format pour la date et l’heure, de choisir s’il faut l’afficher sur votre fuseau horaire ou en UTC, distinguer les instances par leur nom, etc. Cela peut bien entendu évoluer, n’hésitez pas à faire des propositions.
Nous évoquerons les futures améliorations au sein de notre Changelog (via son flux RSS), ou sur ce blog pour les prochaines grandes étapes d’ici la disponibilité générale. Pensez également à nous suivre sur LinkedIn ou X/Twitter pour vous tenir informés.