我怎样才能从云端(例如事物说)监控没有发生的事情?

物联网 监控
2021-05-31 04:02:04

我有一些用于此的用例,但我将仅使用一个简单的场景作为示例。我想监控我的树莓派并确保某些任务正确完成。我想在脚本中添加一行,以便在脚本运行时将确认信息发布到云中。这部分我觉得我可以做到。

我的问题是如何知道任务是否没有在预期的时间范围内完成。类似于 wdt.io 为 cron 作业所做的事情。基本上某种类型

if time/date is <past expected completion> then check <thingspeak API> for value returned by script
else send email <it seems script1234> failed

是否有可以检查某处值的服务?例如,http 访问 thingspeak api 并根据值采取行动。

1个回答

首先,监控这些类型条件的一种简单方法是监控上一个任务在多长时间前完成。

与其知道下一个脚本何时应该完成,如果我们知道是否应该每 6 小时执行一次,我们现在只需要将上次执行时间与“现在”进行比较,如果两者之间的小时数(now - lastExecution)大于6、然后触发你的警报。

只需将任务/脚本上次完成时的时间戳发布到thingspeak,现在您只需按常规频率监视该时间戳,通常小于您尝试检测的时间段,如果它大于'x'分钟前,发送警报。

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

如果您的监控工具没有简单的日期时间功能或逻辑操作,您可以通过上述方式进行配置。更改您的脚本以报告添加了“x”时间段的时间戳,因此如果它是 6 小时的脚本,则在您发送的时间戳上添加 6 小时,现在监控逻辑非常简单:

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

如果这不适合您,或者您可以将其与修改脚本以在开始时发布以清除状态标志相结合,有效地报告“脚本 1 正在启动”并可选择记录它开始的时间。

既然有开始时间和结束时间,您可以监视是否(End-Start)大于 x 小时,以确定脚本执行时间是否过长,或者Start > End脚本是否仍在执行或未能完成。


这不是我真正想回答这些类型问题的方式,因为我们不应该真正认可特定产品,但我想在这种情况下破例。您可以使用许多免费和付费服务来完成此任务。使用 Bing 或 Google 查找它们:)

我使用Bizeo平台进行此类监控。 我不隶属于这个产品,但对它很满意

那里有很多模板,一个会定期 ping 一个 REST 端点并对响应进行操作,因此您可以直接针对 thingspeak api。还有一些其他简单的模板供用户操作,即使使用电子邮件作为触发器,或者在特定时间范围内缺少电子邮件。错过截止日期时的 SMS 警报或电子邮件很容易设置。

因此,您可以将通知直接发送到该服务,或者作为来自您设备的电子邮件,或者您可以使用他们的 REST API 发送脚本完成的通知。