

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 機群索引故障診斷
<a name="fleet-indexing-troubleshooting"></a>

## 機群索引服務的疑難排解彙總查詢
<a name="aggregation-troubleshooting"></a>

若您遇到類型不符錯誤，您可使用 CloudWatch Logs 來疑難排解問題。在機群索引服務寫入日誌之前，必須先啟用 CloudWatch Logs。如需詳細資訊，請參閱[AWS IoT 使用 CloudWatch Logs 進行監控](cloud-watch-logs.md)。

若要對非受管欄位進行彙總查詢，您必須指定您在 `customFields` 引數中定義的欄位傳遞給 `UpdateIndexingConfiguration` 或 **update-indexing-configuration**。如果欄位值與設定的欄位資料類型不一致，則在您執行彙總查詢時會忽略此值。

若因類型不符而無法索引欄位，機群索引服務會將錯誤日誌發送至 CloudWatch 日誌。錯誤日誌包含欄位名稱、無法轉換的值，以及裝置的物件名稱。以下是範例錯誤日誌：

```
{
  "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 是用來連接裝置的值 AWS IoT Core。)

## 疑難排解機群索引組態
<a name="index-configuration-troubleshooting"></a>

**無法降級機群索引組態**

移除與機群指標或動態群組相關聯的資料來源時，不支援機群索引組態降級。

例如，若您的索引組態具有登錄資料、影子資料和連線資料，且查詢 `thingName:TempSensor* AND shadow.desired.temperature>80` 有機群指標，則更新索引組態以僅包含登錄資料將導致錯誤。

不支援修改現有機群指標使用的自訂欄位。

**由於不相容的機群指標或動態群組，無法更新您的索引組態**

若由於不相容的機群指標或動態群組而無法更新索引組態，請先刪除不相容的機群指標或動態群組，然後再更新索引組態。

## 對位置索引和地理查詢進行故障診斷
<a name="fleet-index-geoquery-troubleshooting"></a>

若要疑難排解位置索引和地理查詢中不相符的類型錯誤，您可以啟用 CloudWatch 日誌。如需如何使用 AWS IoT CloudWatch 監控 的詳細資訊，[請遵循step-by-step指南](https://docs.aws.amazon.com//iot/latest/developerguide/cloud-watch-logs.html)。

當您使用地理位置查詢為位置資料編製索引時，您在 中指定的位置欄位`geoLocations`必須符合您傳遞給 的位置欄位`UpdateIndexingConfiguration`。如果不相符，機群索引會將不相符的類型錯誤傳送至 CloudWatch。錯誤日誌包含欄位名稱、無法轉換的值，以及裝置的物件名稱。

以下是範例錯誤日誌：

```
{
"timestamp": "2023-11-09 01:39:43.466",
    "logLevel": "ERROR",
    "traceId": "79738924-1025-3a00-a669-7bec69f7f07a",
    "accountId": "123456789012",
    "status": "Failure",
    "eventType": "IndexingGeoLocationFieldFailed",
    "thingName": "thing0",
    "failedGeolocationFields": [
        {
"Name": "attributeName1",
            "Value": "apple",
            "ExpectedType": "Geopoint"
        }
    ],
    "reason": "failed to index the field because it could not be converted to one of the expected geoLocation formats."
}
```

如需詳細資訊，請參閱[索引位置資料](location-indexing-geoquery.md)。

## 機群指標疑難排解
<a name="fleet-metrics-troubleshooting"></a>

**無法在 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 中也不會顯示任何資料點。