Zum Hauptinhalt springen

Deine App überwachen

Ob deine App wie erwartet funktioniert oder nicht, es gibt verschiedene Möglichkeiten herauszufinden, was falsch ist.

Logs​

Um Logs anzuzeigen, kannst du entweder Cockpit oder nctl verwenden. Verschiedene Komponenten von Deploio können Logs ausgeben:

  • Build: Dies sind Logs, die vom Build-Prozess erzeugt werden. Nützlich, wenn es ein Problem beim Erstellen deiner App gibt.
  • App: Diese Logs enthalten die Ausgabe der App-Replikas an stdout/stderr während der Laufzeit.
  • Worker Job: Diese Logs enthalten die Ausgabe des Worker-Jobs an stdout/stderr während der Laufzeit.
  • Deploy Job: Diese Logs enthalten die Ausgabe des Deploy-Jobs an stdout/stderr während der Laufzeit.
  • Scheduled Job: Diese Logs enthalten die Ausgabe des Scheduled-Jobs an stdout/stderr während der Laufzeit.

Die Logs werden für 30 Tage aufbewahrt.

Beispiele​

Zeige alle Logs einer App an. Diese Beispiele verwenden alle eine App namens go:

$ nctl logs app go
2024-10-22T16:07:55+02:00 {build="go-build-1", replica="go-build-1-build-pod"} Build successful
2024-10-22T16:07:59+02:00 {replica="go-59dcf7656f-9wr52"} 2024/10/22 14:07:59 starting HTTP server on :5678

Die Bezeichnungen zwischen den geschweiften Klammern geben an, zu welcher Komponente jede Protokollzeile gehört. Die Bezeichnungen können mit der Option --no-labels deaktiviert werden.

Nur die Haupt-App-Logs anzeigen.

nctl logs app go --type app

Worker-Job-Logs einer App anzeigen.

nctl logs app go --type worker_job

Deploy-Job-Logs einer App anzeigen.

nctl logs app go --type deploy_job

Scheduled-Job-Logs einer App anzeigen.

nctl logs app go --type scheduled_job

Alle Build-Logs einer App anzeigen.

nctl logs app go --type build

Alternativ kannst du auch die Logs eines bestimmten Builds mit dem Befehl logs build anzeigen.

nctl logs build go-build-1

Du kannst das Flag -f hinzufügen, um den Logs zu folgen, während sie ausgegeben werden.

nctl logs app go -f

Um mehr Zeilen zu erhalten, verwende das Flag -l/--lines.

nctl logs app go-example -l 1000

Um weiter zurück in der Zeit zu gehen, verwende das Flag -s/--since. Zeitspannen können mit 1s (1 Sekunde), 1m (1 Minute) und 1h (1 Stunde) angegeben werden.

nctl logs app go-example -s 48h

Statistiken​

Um eine Übersicht über die App-Replikas, ihren Status und ihre Ressourcennutzung zu erhalten, kannst du das Flag -o stats für den Befehl nctl get app verwenden.

$ nctl get app rails -o stats
PROJECT        NAME    REPLICA                  STATUS   CPU   CPU%   MEMORY   MEMORY%   RESTARTS   LASTEXITCODE
nine-staging   rails   rails-9f6bdb676-crlrf    ready    1m    0.8%   121MiB   47.4%     0          <none>
nine-staging   rails   rails-9f6bdb676-2pfps    ready    1m    0.8%   123MiB   48.4%     0          <none>
nine-staging   rails   rails-9f6bdb676-sd9mm    ready    1m    0.8%   122MiB   48.0%     1          137 (Out of memory)

Wenn du Worker-Jobs definiert hast, werden diese auch hier angezeigt. Die Hilfeausgabe von nctl get app -h beschreibt alle Spalten:

REPLICA: The name of the app replica.
STATUS: Current status of the replica.
CPU: Current CPU usage in millicores (1000m is a full CPU core).
CPU%: Current CPU usage relative to the app size. This can be over 100% as Deploio allows bursting.
MEMORY: Current Memory usage in MiB.
MEMORY%: Current Memory relative to the app size. This can be over 100% as Deploio allows bursting.
RESTARTS: The amount of times the replica has been restarted.
LASTEXITCODE: The exit code the last time the replica restarted. This can give an indication on why the replica is restarting.

Metriken​

Einige grundlegende Applikationsmetriken findest du direkt im Cockpit.

Wenn du detailliertere Metriken benötigst und diese mit deinen eigenen Dashboards visualisieren möchtest, installiere eine Grafana-Instanz, um auf diese zuzugreifen.

Dashboard​

Wir installieren noch kein Dashboard für dich, aber du kannst ein vorgefertigtes Dashboard herunterladen und es in deine Instanz importieren.