Ihre App überwachen
Ob Ihre App wie erwartet funktioniert oder nicht, es gibt verschiedene Möglichkeiten herauszufinden, was falsch ist.
Logs
Um Logs anzuzeigen, können Sie entweder Cockpit oder nctl
verwenden.
Verschiedene Komponenten von Deploio können Logs ausgeben:
- Build-Logs: Dies sind Logs, die vom Build-Prozess erzeugt werden. Nützlich, wenn es ein Problem beim Erstellen Ihrer App gibt.
- App-Logs: Diese Logs enthalten die Ausgabe der App-Replikas an stdout/stderr während der Laufzeit.
- Worker Job-Logs: Diese Logs enthalten die Ausgabe des Worker-Jobs an stdout/stderr während der Laufzeit.
- Deploy Job-Logs: Diese Logs enthalten die Ausgabe des Deploy-Jobs an stdout/stderr während der Laufzeit.
Beispiele
Zeigen Sie 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
Alle Build-Logs einer App anzeigen.
nctl logs app go --type build
Alternativ können Sie auch die Logs eines bestimmten Builds mit dem Befehl
logs build
anzeigen.
nctl logs build go-build-1
Sie können 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, verwenden Sie das Flag -l/--lines
.
nctl logs app go-example -l 1000
Um weiter zurück in der Zeit zu gehen, verwenden Sie 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, können Sie 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 Sie Worker-Jobs definiert haben, 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.