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.