本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
机群索引排除指南
帮助我们改进此主题
队列索引服务的聚合查询疑难解答
如果您遇到类型不匹配错误,则可以使用 CloudWatch Logs 解决问题。Fleet Indexing 服务写入日志之前,必须启用 CloudWatch Logs。有关更多信息,请参阅Amazon IoT使用 CloudWatch 日志进行监控。
在非托管字段上进行聚合查询时,只能指定您在传递给 UpdateIndexingConfiguration 或 update-indexing-configuration 的 customFields 参数中定义的字段。如果字段值与配置的字段数据类型不一致,则在执行聚合查询时忽略此值。
当字段由于类型不匹配而无法建立索引时,Fleet Indexing 服务会向 CloudWatch Logs 发出错误日志。错误日志包含字段名称、无法转换的值以及设备的事物名称。下面是一个错误日志示例:
{ "timestamp": "2017-02-20 20:31:22.932", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "000000000000", "status": "SucceededWithIssues", "eventType": "IndexingCustomFieldFailed", "thingName": "thing0", "failedCustomFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "String" }, { "Name": "attributeName2", "Value": "2", "ExpectedType": "Boolean" } ] }
如果设备已断开连接大约一小时,则连接状态 timestamp 值可能会缺失。对于持久性会话,在客户端断开连接的时间超过为持久性会话配置的生存时间 (TTL) 后,该值可能会缺失。仅为客户端 ID 具有匹配事物名称的连接,对连接状态数据建立索引。(客户端 ID 是用于将设备到连接 Amazon IoT Core 的值。)
机群故障排除指标
无法创建机群指标
不支持通过更新机群索引配置来降级数据源。
如果您尝试使用降级的数据源创建机群指标(例如,以前的数据源是注册表数据、影子数据和设备连接数据,现在的数据源是注册表数据和影子数据,没有设备连接数据),则您将看到错误并且无法创建机群指标。
不支持修改现有机群指标使用的自定义字段。
在 CloudWatch 中看不到数据点
如果您能够创建机群指标,但看不到 CloudWatch 中的数据点,可能没有符合查询字符串条件的内容。
请参阅以下示例命令,了解如何创建机群指标:
aws iot create-fleet-metric --metric-name "example_FM" --query-string "thingName:TempSensor* AND attributes.temperature>80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count
如果没有符合查询字符串条件 --query-string
"thingName:TempSensor* AND attributes.temperature>80" 的事物:
-
使用
values=count,您将能够创建机群指标,然后将有数据点显示在 CloudWatch 中。该值count的数据点始终为0。 -
采用
values而不是count,您能够创建机群指标,但是在 CloudWatch 中看不到机群指标,也不会在 CloudWatch 中显示任何数据点。