Ich habe einige Anwendungsfälle dafür, aber ich werde nur ein einfaches Szenario als Beispiel verwenden. Ich möchte meinen Himbeer-Pi überwachen und sicherstellen, dass einige Aufgaben ordnungsgemäß ausgeführt werden. Ich möchte eine Zeile in ein Skript einfügen, um eine Bestätigung in die Cloud zu stellen, wenn das Skript ausgeführt wird. Diesen Teil denke ich kann ich tun.
Die Frage, die ich habe, ist, wie ich feststellen kann, ob die Aufgabe nicht innerhalb des erwarteten Zeitrahmens abgeschlossen wurde. Ähnliches wie wdt.io für Cron-Jobs. Grundsätzlich eine Art von
if time/date is <past expected completion> then check <thingspeak API> for value returned by script
else send email <it seems script1234> failed
Gibt es einen Dienst, der irgendwo nach einem Wert suchen kann? Zum Beispiel ein http, um zur Thingspeak-API zu gelangen und je nach Wert zu handeln.
monitoring
FoxSam12
quelle
quelle
Antworten:
Eine einfache Möglichkeit, diese Art von Bedingungen zu überwachen, besteht darin, zu überwachen, wie lange es her ist, dass die letzte Aufgabe abgeschlossen wurde.
Anstatt zu wissen, wann das nächste Skript abgeschlossen sein soll, müssen wir jetzt, wenn wir wissen, ob es alle 6 Stunden ausgeführt werden soll, nur die letzte Ausführungszeit mit 'jetzt' vergleichen, wenn die Anzahl der Stunden zwischen den beiden
(now - lastExecution)
größer als ist 6, dann lösen Sie Ihre Warnung.Veröffentlichen Sie einfach den Zeitstempel, als die Aufgabe / das Skript zuletzt abgeschlossen wurde, auf thingspeak. Jetzt überwachen Sie diesen Zeitstempel einfach auf einer regelmäßigen Frequenz, die normalerweise kleiner ist als der Zeitraum, den Sie zu erkennen versuchen, wenn er jemals größer als 'x' Minuten ist. Senden Sie die Warnung.
Wenn Ihr Überwachungstool keine einfachen Datums- / Uhrzeitfunktionen oder logischen Operationen hat, die Sie auf die oben beschriebene Weise konfigurieren können. Ändern Sie Ihr Skript, um den Zeitstempel mit dem hinzugefügten Zeitraum 'x' zu melden. Wenn es sich also um ein 6-Stunden-Skript handelt, fügen Sie dem von Ihnen gesendeten Zeitstempel 6 Stunden hinzu. Die Überwachungslogik ist jetzt sehr einfach:
Wenn dies für Sie nicht angemessen ist oder Sie dies mit der Änderung Ihres Skripts kombinieren können, um es zu Beginn zu veröffentlichen, um ein Statusflag zu löschen, melden Sie effektiv, dass "Skript 1 gestartet wird", und zeichnen Sie optional die Zeit auf, zu der es gestartet wurde.
Jetzt, da es eine Start- und eine Endzeit gibt, können Sie überwachen, ob
(End-Start)
mehr als x Stunden erforderlich sind, um festzustellen, ob die Ausführung des Skripts zu lange gedauert hat oder obStart > End
das Skript noch ausgeführt wird oder nicht abgeschlossen werden konnte.Ich benutze die Bizeo- Plattform für diese Art der Überwachung. Ich bin nicht mit diesem Produkt verbunden, aber sehr zufrieden damit
Es gibt viele Vorlagen, von denen eine regelmäßig einen REST-Endpunkt anpingt und die Antwort bearbeitet, sodass Sie direkt auf die Thingspeak-API abzielen können. Es gibt einige andere einfache Vorlagen, die von Benutzern bearbeitet werden sollen, selbst wenn E-Mails als Auslöser verwendet werden oder wenn in einem bestimmten Zeitraum keine E-Mail vorhanden ist. Die SMS-Benachrichtigungen oder E-Mails, wenn die Frist nicht eingehalten wird, sind einfach einzurichten.
Sie können Ihre Benachrichtigung also direkt an diesen Dienst senden, entweder als E-Mail von Ihrem Gerät, oder Sie können die REST-API verwenden, um eine Benachrichtigung zu senden, dass das Skript abgeschlossen wurde.
quelle