Cloud

Erhalte deine gecachten App-Logs und Metriken mit hoher Leistung!

Log Cache ist eine Loggregator-Funktion, mit der du App-Protokolle und Metriken über ein CLI-Plugin oder API-Endpunkte filtern und abfragen kannst - mit einer besseren Leistung als bisher. Außerdem sind zwischengespeicherte App-Protokolle und Metriken bei Bedarf verfügbar; du musst sie nicht ständig streamen. Um dies zu verstehen, werfen wir einen Blick auf die Geschichte des Log-Streamings in Cloud Foundry.

Beim Abruf von Logging- und Metrikdaten gibt es mehrere Fehler, die derzeit auftreten. Schauen wir uns mal an, wie die aktuelle Architektur aussieht.

Jedes Mal, wenn du "cf push", "cf app" oder "cf logs" ausführst, wird eine Anfrage an den Traffic Controller gesendet, der jede einzelne Doppler-Instanz durchsuchen und die Logs und Metriken, an denen du interessiert bist, zusammenstellen muss. Natürlich führt diese Architektur in einer wachsenden Umgebung zu Leistungsproblemen. Und deshalb brauchen wir den Log Cache!

Der Log Cache ist eine Komponente, die auf den Doppler-Servern installiert ist und die vom Loggregator kommenden Informationen dupliziert und speichert. Im Gegensatz zum Firehose-Datenstrom, der ständig geleert wird, um Platz für neue Nachrichten zu schaffen, speichert der Log Cache die Daten aus dem Loggregator, so dass sie bei Bedarf abgefragt werden können. Der Zugriff auf den Log Cache erfolgt entweder über das CF CLI Plugin oder über die RESTful-Schnittstelle.

Die folgenden Metriken sind im Log Cache verfügbar:

  • cpu (Prozent)
  • Scheibe (Bytes)
  • disk_quota (Bytes)
  • Speicher (Bytes)
  • memory_quota (Bytes)

Abfrage des Log-Cache mit der cf-CLI

Wenn du das Log Cache Plugin wie hier https://github.com/cloudfoundry/log-cache-cli(öffnet ein neues Fenster) beschrieben installiert hast, kannst du den folgenden CF CLI-Befehl verwenden, um auf deine Logs und Metriken zuzugreifen:

$ cf tail

"my-app" kann entweder die app-guid oder der app-name sein

Diese Abfrage würde eine Reihe von Metriken mit Zeitstempel wie die folgenden zurückgeben:

Standardmäßig gibt cf tail die 10 neuesten Nachrichten zurück. Jede Nachricht enthält die folgenden Angaben:

  • Ein Zeitstempel
  • Die Quellanwendung oder -komponente
  • Der Ereignis- oder Umschlagtyp
  • Der Inhalt der Nachricht

Es gibt mehrere Flags, die du in cf tail einfügen kannst, um deine Abfragen zu fokussieren:

Abfrage des Log-Caches über die RESTful-Schnittstelle

Um den Log Cache programmatisch abzufragen, kannst du API-Aufrufe an seinen RESTful-Endpunkt tätigen:

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

Du musst ein UAA-Autorisierungs-Token angeben, das du über die cf CLI mit dem Befehl "cf oauth-token" oder über die API erhältst:

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

Innerhalb der API hast du auch die Möglichkeit, Parameter anzugeben:

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

Sei schlau und wechsle zu Log Cache, um deine App-Metriken und Logs zu erhalten!

Andrea Aymon

Andrea Aymon

Cloud Engineer

Mehr getIT-Beiträge

Bereit für Swisscom

Finde deinen Job oder die Karrierewelt, die zu dir passt. In der du mitgestalten und dich weiterentwickeln willst.

Was du draus machst, ist was uns ausmacht.

Zu den Karrierewelten

Zu den offenen Security Stellen