Les journaux peuvent être notre bouée de sauvetage lorsque les choses tournent mal. Pour résoudre un problème, nous devons reproduire le problème, et la journalisation du débogage peut être inestimable. Mais il y a un problème : les coûts. À mesure que les applications évoluent, les coûts d'ingestion et de stockage de nos journaux augmentent également, ce qui nous oblige à un compromis entre une journalisation trop limitée pour être utile ou le paiement pour des journaux que nous n'utilisons pas.
Thom Shutt a un jour plaidé en faveur de la journalisation uniquement des erreurs , suggérant que les niveaux d'avertissement, d'information et de débogage soient ignorés. Sa justification ? La difficulté de modifier les niveaux de logs en production :
Niveaux à jeter - À quand remonte la dernière fois que vous avez exécuté la production sur autre chose qu'Info ? Est-ce que changer de niveau est un processus rapide que tous les membres de l’équipe savent comment faire ?
Et en effet, la plupart d'entre nous ne modifient pas souvent les niveaux de journalisation car cela nécessite une validation, une construction et un déploiement. Si changer le niveau de log est un processus fastidieux, ces lignes supplémentaires ne deviennent en effet que du bruit.
Entrez dans la configuration dynamique. Même si beaucoup ne le connaissent pas, ceux qui l’ont adopté ne peuvent pas imaginer la vie sans lui. Contrairement à la configuration statique, dans laquelle les applications lisent un fichier de propriétés ou une variable d'environnement, la configuration dynamique est, comme son nom l'indique, dynamique.
Il offre la possibilité de définir de nouvelles valeurs via une interface utilisateur, garantissant que chaque évaluation récupère la dernière version.
Cette technologie constitue l’épine dorsale de la journalisation dynamique. En stockant le mappage Logger -> LogLevel dans notre système de configuration et en mettant à jour l'enregistreur en cas de modifications, nous pouvons passer de l'avertissement au débogage en millisecondes, et non en heures.
Prefab révolutionne la façon dont nous abordons la journalisation. Avec Prefab, vous pouvez :
Les coûts de l’exploitation forestière deviennent importants à grande échelle et sont tous liés au volume. Les agrégateurs proposent de nouveaux moyens pour tenter de réduire ces dépenses, comme Log Without Limits de Datadog, et Cribl est fondamentalement une entreprise entière consacrée à ce problème.
Mais toutes ces solutions vous facturent en fonction de votre utilisation. En fin de compte, vous payez toujours pour les journaux que vous envoyez.
Étant donné que vos journaux ne transitent pas par Prefab, celui-ci ne facture pas en fonction du volume de journaux mais simplement en fonction de la configuration dynamique de vos serveurs. Prefab contrôle simplement les valeurs d'un filtre, garantissant que vous n'enregistrez que ce qui est nécessaire. Cette approche peut conduire à des économies significatives, en particulier pour les applications à grande échelle.
Adopter la journalisation dynamique ne consiste pas seulement à utiliser un nouvel outil ; c'est un changement culturel. Au début, cela peut paraître intimidant. Mais à mesure que les équipes s’habituent à la puissance de la journalisation ciblée, celle-ci favorise un état d’esprit opérationnel plus fort. Les développeurs peuvent désormais se demander : « Si cela tourne mal, quelles informations aurais-je besoin ? » et préparez-vous en conséquence.
Par exemple, considérons cet extrait de code :
def charge(user, amount) balance = get_balance(user) min_balance = get_min_balance(user) do_charge = balance > min_balance logger.debug("charge decision", charge: do_charge, amount: amount, balance: balance, user_id: user.id, min_balance: min_balance) if do_charge charge_user(user, amount) else end
Auparavant, beaucoup auraient vu la ligne logger.debug
comme un simple bruit de développement. Mais avec la journalisation dynamique, ces lignes deviennent des outils inestimables, prêts à être activés en cas de besoin.
Le paysage de l’exploitation forestière subit un changement sismique. Avec des outils comme Prefab , les développeurs n'ont plus à choisir entre des journaux détaillés et la rentabilité. La journalisation dynamique offre le meilleur des deux mondes, fournissant des informations en cas de besoin sans le prix élevé qui y est associé.
Bon débogage ! 🚀