AWS IoT TwinMakerで再作成したエンティティをGrafanaダッシュボードに再紐付けしてみる(エラー対処)

2023.01.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、AWS IoT TwinMaker側で再作成したentytyをAmazon Managed Grafanaのdashboardに再紐付けしてみました。

事象発生

以前のエントリで、AWS IoT TwinMakerをdatasourceとして次のようなGrafana dashboardを作成しました。

しかしこのdashboardでエラーが発生するようになりました。

ResourceNotFoundException: Entity 21706840-abe4-49d0-9ae9-35575ef2db85 in workspace Windfarm not found. (Service: AWSIoTRoci; Status Code: 404; Error Code: ResourceNotFoundException; Request ID: a515ce06-5438-4fc6-8e04-b164bd6ef2fd; Proxy: null)

原因

原因は、dashboardに紐付けされているentityをTwinMaker workspace側で再作成したためでした。

同じ環境を利用して下記エントリの検証を行った際に再作成をしてしまっていました。

workspaceから重複しているentityを削除します。

コンソールから状況を確認してみます。

dashboard上でエラー表示をクリック。

[Inspect: Panel Title]で[JSON]を開くと、Panel JSONでtargetに指定されているentityIdは21706840-abe4-49d0-9ae9-35575ef2db85となっています。

しかしTwinMaker workspace側で再作成されたentityIdはc37da1b2-30b0-431a-b87e-3f5d0a19ce3eとなっており、齟齬が発生していますね。

対処

というわけで再作成したentytyをdashboardに再紐付けしてみます。

先程確認したdashboardのPanel JSONを次の通り修正し、[Apply]をクリックして適用します。

Panel JSON

{
  "id": 2,
  "gridPos": {
    "h": 9,
    "w": 12,
    "x": 0,
    "y": 0
  },
  "type": "grafana-iot-twinmaker-sceneviewer-panel",
  "title": "Panel Title",
  "datasource": {
    "type": "grafana-iot-twinmaker-datasource",
    "uid": "yFgZdCc4z"
  },
  "options": {
    "datasource": "yFgZdCc4z",
    "sceneId": "Windfarm"
  },
  "targets": [
    {
      "componentName": "WindMillMetrics",
      "datasource": {
        "type": "grafana-iot-twinmaker-datasource",
        "uid": "yFgZdCc4z"
      },
-       "entityId": "21706840-abe4-49d0-9ae9-35575ef2db85",
+       "entityId": "c37da1b2-30b0-431a-b87e-3f5d0a19ce3e",
      "properties": [
        "speed"
      ],
      "queryType": "EntityHistory",
      "refId": "A"
    }
  ]
}

[Save]をクリックして設定変更を保存し、ブラウザ画面を更新します。

するとエラー内容が変わりました。

ValidationException: Entity c37da1b2-30b0-431a-b87e-3f5d0a19ce3e in workspace Windfarm does not contain a component named WindMillMetrics. Valid component names: [sitewiseBase]

entityに必要なcomponentを追加できていませんでした。追加します。

改めてdashboard画面をブラウザ更新するとエラーが解消しました!

おわりに

AWS IoT TwinMakerで再作成したエンティティをGrafanaダッシュボードに再紐付けしてみました。

Grafana dashboard側でdata sourceの情報を埋め込んでいる場合は、IoT TwinMakerなどのdata source側で何かしら変更を行う際にはどのような影響があるのか注意する必要がありますね。

以上