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.