Fehler-Logs
Für den Plattformbetrieb. Diese Aufgaben betreffen die ganze Installation. Du brauchst je nach Aufgabe Serverzugriff oder Plattformrechte. Beginne mit dem Administrationshandbuch.
OpenBot schreibt eine Log-Zeile mit der Stufe Error, wenn auf dem Server etwas
fehlschlägt. OpenBot schickt diese Logs nicht an andere Dienste. Das kannst du
selbst mit einem Effect-Logger hinzufügen.
Was OpenBot protokolliert
Section titled “Was OpenBot protokolliert”| Quelle | Wann |
|---|---|
http |
Ein Request endet mit dem Status 500 oder höher. |
turn |
Ein Turn endet mit dem Status Failed. |
startup |
OpenBot startet nicht, zum Beispiel wegen einer falschen Konfiguration. |
Normale Fehler bei Requests, wie 400, 401, 404 oder 409, werden nicht
als Fehler protokolliert. Arbeit, die eine Person absichtlich unterbricht, wird
auch nicht protokolliert.
Jedes Fehler-Log hat die Nachricht OpenBot operation failed und diese
Annotationen. Eine Annotation ist ein benannter Wert, der an einer Log-Zeile
hängt.
| Annotation | Bedeutung |
|---|---|
source, operation |
Welcher Teil von OpenBot fehlgeschlagen ist. |
errorType |
Ein kurzer Name für den Fehler, wenn OpenBot einen kennt. |
requestId, method, route, status |
Für HTTP-Fehler. route ist das Muster der Route, nicht der echte Pfad. |
chatId, turnId |
Für Fehler in einem Turn. |
Das Log enthält auch die Ursache des Fehlers. Die Ursache kann Fehlermeldungen und andere private Daten enthalten.
Ein innerer Fehler, zum Beispiel ein Fehler der Datenbank, ist oft der Grund für
einen 503. OpenBot schickt den inneren Fehler nicht an den Client. Es schreibt
ihn zuerst in eine Log-Zeile mit der Stufe Warn, mit der Ursache und der
Stelle im Code, an der er passiert ist. Jede Log-Zeile eines Requests hat
dieselbe requestId wie das Fehler-Log dieses Requests. Damit findest du den
Grund für einen fehlgeschlagenen Request.
Wenn ein Turn fehlschlägt, bekommt der Client nur eine kurze Nachricht. Ein
Fehler des Modells, zum Beispiel eine Eingabe, die zu groß für das Modell ist,
behält seine Nachricht und hat den Code model_error. Jeder andere Fehler, zum
Beispiel ein Fehler der Datenbank, hat den Code internal_error und einen
festen Text. Die ganze Ursache steht in einer Log-Zeile mit der Stufe Warn und
der Nachricht A Turn failed. Sie hat dieselbe chatId und turnId wie das
Fehler-Log.
Arbeit im Hintergrund
Section titled “Arbeit im Hintergrund”OpenBot erledigt auch Arbeit im Hintergrund. Zum Beispiel löst es fällige Trigger aus, löscht alte Dateien, pausiert ungenutzte Computer, prüft Apps für den App Index und hört auf Änderungen an den Einstellungen. Es pausiert auch delegierte Arbeit an ihrem Zeitlimit, schickt Erinnerungen, schickt die Nachrichten von Channels und hört auf Aufrufe von seinen anderen Instanzen.
Wenn ein Durchlauf dieser Arbeit fehlschlägt, schreibt OpenBot eine Log-Zeile
mit der Stufe Warn und der Ursache. Dann führt es die Arbeit zur nächsten Zeit
wieder aus. Die Arbeit hört nicht auf. Diese Zeilen haben die Stufe Warn und
nicht Error, weil die Arbeit weitergeht. Einige Schritte schlagen oft aus
einem harmlosen Grund fehl, zum Beispiel bei einem Chat, an dem eine andere
Instanz arbeitet. Der nächste Durchlauf macht sie noch einmal, darum haben ihre
Zeilen die Stufe Debug.
Wenn der Server stoppt, hört auch die Arbeit im Hintergrund auf. Das wird nicht als Fehler protokolliert.
Fehler an deinen eigenen Dienst schicken
Section titled “Fehler an deinen eigenen Dienst schicken”Für diese Entwicklungsaufgabe siehe Einen Fehler-Logger ergänzen.