Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 谷歌物联网后端多久更新一次设备状态?_Google Cloud Platform_Mqtt_Google Cloud Iot - Fatal编程技术网

Google cloud platform 谷歌物联网后端多久更新一次设备状态?

Google cloud platform 谷歌物联网后端多久更新一次设备状态?,google-cloud-platform,mqtt,google-cloud-iot,Google Cloud Platform,Mqtt,Google Cloud Iot,我在下面的URL上每分钟执行一次GET,以获取我物联网注册表中所有设备的设备状态 GET https://cloudiot.googleapis.com/v1/{name=projects/*/locations/*/registries/*/devices/*} 一旦获得a,我感兴趣的是确定以下字段是否在当前时间戳的最后一分钟内: "lastHeartbeatTime": string "lastStateTime": string "lastEventTime": string

我在下面的URL上每分钟执行一次GET,以获取我物联网注册表中所有设备的设备状态

GET https://cloudiot.googleapis.com/v1/{name=projects/*/locations/*/registries/*/devices/*}
一旦获得a,我感兴趣的是确定以下字段是否在当前时间戳的最后一分钟内:

  "lastHeartbeatTime": string
  "lastStateTime": string
  "lastEventTime": string
我的设备经常ping远程代理,MQTT保持活动时间为10秒,因此我假设一分钟最多6次心跳

我的想法是收集每个设备的可用性和正常运行时间统计数据以及警报

所有这些都是可行的,但我怀疑Google后端没有足够频繁地更新心跳、事件和状态时间戳,有时会导致上面的设置记录我的设备没有启动的统计数据,而事实上它们是启动的

我的问题是:

  • 在设备状态下,我的设备心跳时间的更新速度有多快?一分钟太短了吗

  • 你会推荐一种更好的方法来实现上述目标吗?这意味着什么


仔细查看设备的API文档,该状态可能会“过时几分钟”。是否有任何关于此最大值的提示

lastHeartbeatTime字符串(时间戳格式)

上次收到MQTT PINGREQ的时间。这个领域 仅适用于通过MQTT连接的设备。MQTT客户机通常 仅在连接空闲时发送PINGREQ消息,而没有其他消息 已发送消息。时间戳会定期收集和更新 写入存储器它们可能会过期几分钟

RFC3339 UTC“Zulu”格式的时间戳,精确到纳秒。 示例:“2014-10-02T15:01:23.045123456Z”

lastEventTime字符串(时间戳格式)

上次接收遥测事件的时间。时间标记 定期收集并写入仓库它们可能已经过时了 几分钟后

RFC3339 UTC“Zulu”格式的时间戳,精确到纳秒。 示例:“2014-10-02T15:01:23.045123456Z”

lastStateTime字符串(时间戳格式)

上次收到状态事件的时间。时间戳是 定期收集并写入仓库它们可能会被一个 几分钟

RFC3339 UTC“Zulu”格式的时间戳,精确到纳秒。 示例:“2014-10-02T15:01:23.045123456Z”

“lastHeartbeatTime”是最后一次收到PINGREQ的时间,如果连接空闲,并且没有发送其他消息,则会收到PINGREQ。PINGREQ是您的MQTT保持活动时间是10秒。因此,如果在10秒内没有消息,您应该得到一个PINGREQ。此信息应在设备日志中提供。我建议将设备日志发送到stacdriver,并使用这些日志获取可用性和正常运行时间的设备统计信息。这是一个你如何做到这一点的例子