Heartbeat
Cron- und Hintergrundjob-Überwachung
Umgekehrt: Dein Job ruft uns an.
Wofür es ist
Alles andere hier geht und schaut. Dieses wartet. Dein Backup, dein nächtlicher Import, dein Queue-Worker ruft eine URL an, wenn er fertig ist, und wir alarmieren, wenn kein Anruf eintrifft.
Es ist die einzige Möglichkeit, etwas zu überwachen, das keine Adresse zum Prüfen hat. Ein Backup-Job, der vor drei Wochen aufgehört hat zu laufen, sieht von außen genau so aus wie einer, der perfekt gelaufen ist, bis zu dem Tag, an dem jemand das Backup braucht.
Was du einstellen kannst
Alles unten steht im Formular, wenn du einen hinzufügst, in jedem Tarif.
- Wie oft es läuft
- Nicht wie oft wir schauen: wie oft dein Job anrufen sollte. Ein wöchentliches Backup ist eine gewöhnliche Sache, daher geht dieses bis zu einem Monat, wo die anderen bei einem Tag aufhören.
- Erlaubte Verspätung
- Wie viele Minuten der Anruf verspätet sein darf. Ein Job, der stündlich läuft und bis zu zwanzig Minuten dauert, kann dreißig erlaubt bekommen. Leer ist ein Zehntel der Periode.
- Ping-URL
- Wird generiert, wenn du den Monitor erstellst, und einmal angezeigt. Rufe es vom Ende deines Jobs aus an. Es kann neu generiert werden, wodurch das alte deaktiviert wird.
Fragen
Ist das dasselbe wie ein Dead-Man's-Switch?
Es ist genau das, angewendet auf Cron-Job-Überwachung. Alles andere auf dieser Seite geht und schaut sich etwas an. Dieses wartet darauf, informiert zu werden, und alarmiert bei Stille, was die einzige Möglichkeit ist, einen Job zu überwachen, der keine Adresse zum Prüfen und keine Seite zum Lesen hat.
Wie spät darf mein Job sein, bevor ihr alarmiert?
So spät, wie du es erlaubst, in Minuten. Ein Job, der jede Stunde läuft und zwischen einer und zwanzig Minuten dauert, kann dreißig erlaubt bekommen, sodass ein Anruf zwischen sechzig und neunzig Minuten nach dem letzten erwartet wird. Leer ist es ein Zehntel der Periode, auf der er läuft, und nie weniger als eine Minute: Zwei Minuten Verspätung bedeuten nichts für ein nächtliches Backup und alles für einen Job, der alle fünf Minuten läuft. Die Untergrenze ist da, weil ein Cron-Job, der ein paar Sekunden vor oder nach der Minute feuert, normal ist und niemals einen Vorfall auslösen darf.
Wie rufe ich es aus einem Cron-Job oder einem Shell-Skript auf?
Hole die URL am Ende des Jobs, mit curl oder wget oder allem anderen, das HTTP spricht. GET, POST und HEAD werden alle akzeptiert, weil die halbe Welt das eine und die andere Hälfte das andere nutzt, und die Antwort ist ein leerer 204, damit ein nächtlicher Job keine HTML-Seite an den Betreiber mailt.
Soll ich es am Anfang oder am Ende aufrufen?
Am Ende, nachdem die Arbeit erfolgreich war und nicht bevor sie beginnt. Ein Anruf am Anfang des Skripts sagt, dass die Maschine aufgewacht ist, was selten das ist, was schiefgeht. Setze es in die letzte Zeile, hinter jede Exit-Code-Prüfung, die das Skript bereits hat, und die Stille bedeutet dann, dass der Job fehlgeschlagen ist und nicht, dass der Host ausgefallen ist.
Was, wenn die URL bekannt wird?
Die URL ist das Zugangsdaten, weshalb sie 256 Bits Zufälligkeit hat und dir einmal angezeigt wird. Jeder, der sie hat, kann deinen Job als gesund melden, was der Fehler ist, über den man sich Sorgen machen sollte, und nicht, dass jemand etwas liest. Generiere sie neu und die alte funktioniert sofort nicht mehr.
Kann ein Job, der wöchentlich läuft, das nutzen?
Ja, und das ist einer der besseren Gründe dafür. Dieses Intervall geht bis zu einem Monat, wo die anderen Check-Typen bei einem Tag aufhören, weil ein wöchentliches Backup eine gewöhnliche Sache ist und ein Backup, das vor drei Wochen still aufgehört hat zu laufen, genauso aussieht wie eines, das perfekt gelaufen ist, bis zu dem Tag, an dem jemand es braucht.
Warum soll der Job mir nicht einfach eine E-Mail schicken, wenn er fehlschlägt?
Weil der Fehler, den du hören musst, der ist, bei dem der Job überhaupt nicht läuft, und ein Job, der nicht lief, sendet keine E-Mail. Das umfasst einen Absturz im Skript, eine Maschine, die neu gestartet wurde, einen Cron-Eintrag, den jemand auskommentiert hat, einen Container, der nie gestartet wurde, und eine Queue, die nicht mehr geleert wird. Fehler im Job zu erfassen, ist immer noch sinnvoll; es ist ein anderer Fehler als Stille.