Wie kann ich aus der Cloud (z. B. Dinge) überwachen, was nicht passiert?

7

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.

FoxSam12
quelle
Sie müssen herausfinden, wie Sie einen Watchdog in einem Cloud-Service Ihrer Wahl implementieren. Wenn Sie keine finden, können Sie möglicherweise eine Veranstaltung in der Zukunft planen und abbrechen, wenn Sie Erfolg haben. Und dann so oder so einen anderen weiter in die Zukunft verschieben.
Chris Stratton
Ich suche einen Cloud-Dienst, der dies oder besser tut. Ich suche einen Cloud-Dienst, der irgendwo nach einem Wert suchen und je nach Wert handeln kann. Wenn Sie oder jemand anderes von einem solchen Service weiß, teilen Sie uns dies bitte mit.
FoxSam12
Haben Sie sich IFTTT angesehen?
Chris Stratton
Ich habe mir ifttt angesehen und kann einfach nicht herausfinden, wie ich das einrichten soll, was ich brauche. Ich habe versucht, Webhooks zu verwenden und auf Dingspeak zu reagieren, aber ich weiß nicht, wie ich es basierend auf Uhrzeit / Datum und! Wert einrichten soll.
FoxSam12
Können Sie mit Thingspeak einen Proxy-Datenkanal einrichten, der ein Statusflag und einen abgelaufenen Wert von Ihrem Raspberry Pi erfasst? Wenn nicht ausgeführt, setzen Sie beide auf 0, wenn die Aufgabe startet, setzen Sie sie auf 1 und die verstrichene Zeit. Wenn Sie fertig sind, ändern Sie das Flag und die Zeit zurück auf 0. Ihre Reaktion könnte dann nach Flag = 1 und der verstrichenen Zeit> X Sekunden / Minuten suchen und entsprechend handeln.
Geoff

Antworten:

4

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.

if <thingspeak API - Last Execution> more than x hours ago
send email <it seems script1234> failed

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:

if <thingspeak API - Last Execution Expiry> greater than now
send email <it seems script1234> failed

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 ob Start > Enddas Skript noch ausgeführt wird oder nicht abgeschlossen werden konnte.


Auf diese Weise möchte ich diese Art von Fragen nicht wirklich beantworten, da wir bestimmte Produkte nicht wirklich unterstützen sollten, aber ich möchte in diesem Fall eine Ausnahme machen. Es gibt viele kostenlose und kostenpflichtige Dienste, die Sie für diese Aufgabe verwenden können. Verwenden Sie Bing oder Google, um sie zu finden :)

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.

Chris Schaller
quelle
Gibt es eine Möglichkeit innerhalb von thingspeak (oder einer anderen Cloud-basierten), die Überprüfung durchzuführen? Ich suche nach einer Möglichkeit, die gesamte Überwachung in der Cloud durchzuführen.
FoxSam12