Cloud

Obtiens tes logs d'apps mis en cache et tes métriques avec de hautes performances!

Log Cache est une fonction de l'agrégateur de logs qui te permet de filtrer et d'interroger les journaux d'apps et les métriques via un plugin CLI ou des points finaux API - avec une meilleure performance qu'auparavant. De plus, les journaux d'applications et les métriques mis en cache sont disponibles à la demande, tu n'as pas besoin de les diffuser en permanence. Pour comprendre cela, jetons un coup d'œil à l'histoire du streaming de logs dans Cloud Foundry.

Lors de la récupération des données de logging et de métriques, il y a plusieurs erreurs qui se produisent actuellement. Jetons un coup d'œil à l'architecture actuelle.

Chaque fois que tu exécutes "cf push", "cf app" ou "cf logs", une requête est envoyée au contrôleur de trafic qui doit parcourir chaque instance Doppler et rassembler les logs et les métriques qui t'intéressent. Bien sûr, cette architecture entraîne des problèmes de performance dans un environnement en pleine croissance. Et c'est pourquoi nous avons besoin du cache de logs!

Le Log Cache est un composant installé sur les serveurs Doppler qui duplique et stocke les informations provenant de l'agrégateur de logs. Contrairement au flux de données Firehose, qui est constamment vidé pour faire de la place aux nouveaux messages, le Log Cache stocke les données provenant de l'agrégateur de logs afin qu'elles puissent être consultées si nécessaire. L'accès au Log Cache se fait soit via le plugin CF CLI, soit via l'interface RESTful.

Les métriques suivantes sont disponibles dans le Log Cache:

  • cpu (pourcentage)
  • Disque (octets)
  • disk_quota (octets)
  • Mémoire (octets)
  • memory_quota (octets)

Interroger le cache du journal avec le cf-CLI

Si tu utilises le plugin Log Cache comme ici https://github.com/cloudfoundry/log-cache-cli(ouvre une nouvelle fenêtre) tu peux utiliser la commande CF CLI suivante pour accéder à tes logs et métriques:

$ cf tail

"my-app" peut être soit le guid de l'app soit le nom de l'app

Cette requête renverrait une série de métriques horodatées comme les suivantes:

Par défaut, cf tail renvoie les 10 messages les plus récents. Chaque message contient les informations suivantes :

  • Un horodateur
  • L'application ou le composant source
  • Le type d'événement ou d'enveloppe
  • Le contenu du message

Il existe plusieurs drapeaux que tu peux insérer dans cf tail pour cibler tes requêtes:

Interroger le cache du journal via l'interface RESTful

Pour interroger le cache de log de manière programmatique, tu peux faire des appels API à son point d'extrémité RESTful:

https://log-cache./api/v1/read/

Tu dois fournir un jeton d'autorisation UAA, que tu obtiendras via la CLI cf avec la commande "cf oauth-token" ou via l'API:

curl -v -XPOST -H "Application/json" -u "cf:" -data "username=&password=&client_id=cf&grant_type=password&response_type=token" https://login.lyra-836.appcloud.swisscom.com/oauth/token

Au sein de l'API, tu as également la possibilité de spécifier des paramètres:

curl -s -H “Authorization: Bearer xxxxx” ‘https://log-cache.lyra-836.appcloud.swisscom.com/api/v1/read/?envelope_types=GAUGE&limit=1’ | jq.

Sois malin et passe à Log Cache pour obtenir les métriques et les logs de ton application!

Andrea Aymon

Andrea Aymon

Cloud Engineer

Plus d’articles getIT

Prêts pour Swisscom

Trouve le Job ou l’univers professionnel qui te convient. Où tu veux co-créer et évoluer.

Ce qui nous définit, c’est toi.

Vers les univers professionnels

Vers les postes vacants cybersécurité