将 AWS IoT SiteWise 警报连接到 AWS IoT TwinMaker Grafana 控制面板 - AWS IoT TwinMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 AWS IoT SiteWise 警报连接到 AWS IoT TwinMaker Grafana 控制面板

注意

该功能为公共预览版,可能会发生变化。

AWS IoT TwinMaker 能够将事件警 AWS IoT SiteWise 报导入到 AWS IoT TwinMaker 组件中。这使您无需为数据迁移实现自定义数据连接器即可查询警报状态和配置警报阈值。 AWS IoT SiteWise 您可以使用 AWS IoT TwinMaker Grafana 插件在 Grafana 中可视化警报状态并配置警报阈值,无需对警报进行 API 调用或直接与警报交互。 AWS IoT TwinMaker AWS IoT SiteWise

AWS IoT SiteWise 警报配置先决条件

创建警报并将其集成至 Grafana 控制面板之前,请确保您已查看以下先决条件:

  • 熟悉 AWS IoT SiteWise的模型和资产系统。有关更多信息,请参阅AWS IoT SiteWise 用户指南中的创建资产模型和创建资产

  • 熟悉 IoT Events 警报模型以及如何将它们连接到 AWS IoT SiteWise 模型。有关更多信息,请参阅《AWS IoT SiteWise 用户指南》中的定义 AWS IoT 事件警报

  • AWS IoT TwinMaker 与 Grafana 集成,这样你就可以在 Grafana 中访问自己的 AWS IoT TwinMaker 资源了。有关更多信息,请参阅AWS IoT TwinMaker Grafana 控制面板集成

定义 AWS IoT SiteWise 警报组件 IAM 角色

AWS IoT TwinMaker 使用工作空间 IAM 角色在 Grafana 中查询和配置警报阈值。要在 Grafana 中与 AWS IoT SiteWise 警报进行交互, AWS IoT TwinMaker 工作空间角色需要以下权限:

{ "Effect": "Allow", "Action": [ "iotevents:DescribeAlarmModel", ], "Resource": ["{IoTEventsAlarmModelArn}"] },{ "Effect": "Allow", "Action": [ "iotsitewise:BatchPutAssetPropertyValue" ], "Resource": ["{IoTSitewiseAssetArn}"] }

AWS IoT TwinMaker 控制台中,创建一个代表您的 AWS IoT SiteWise 资产的实体。确保使用com.amazon.iotsitewise.alarm组件类型为该实体添加组件,然后选择相应的资产和警报模型。

“添加组件” 屏幕显示了 com.amazon.iotsitewise.alarm 类型的组件。

上面的屏幕截图是使用类型创建此实体的示例com.amazon.iotsitewise.alarm

创建此组件时, AWS IoT TwinMaker 会自动从 AWS IoT SiteWise 和导入相关的警报属性 AWS IoT Events。您可以重复此警报组件类型模式,为工作区中所需的所有资产创建警报组件。

通过 AWS IoT TwinMaker API 进行查询和更新

创建警报组件后,您可以通过 AWS IoT TwinMaker API 查询警报状态、阈值和更新警报阈值。

以下是警报状态查询请求示例:

aws iottwinmaker get-property-value-history --cli-input-json \ '{ "workspaceId": "{workspaceId}", "entityId": "{entityId}", "componentName": "{componentName}", "selectedProperties": ["alarm_status"], "startTime": "{startTimeIsoString}", "endTime": "{endTimeIsoString}" }'

以下是警报阈值查询请求示例。

aws iottwinmaker get-property-value-history --cli-input-json \ '{ "workspaceId": "{workspaceId}", "entityId": "{entityId}", "componentName": "{componentName}", "selectedProperties": ["alarm_threshold"], "startTime": "{startTimeIsoString}", "endTime": "{endTimeIsoString}" }'

以下是警报阈值更新请求示例:

aws iottwinmaker batch-put-property-values --cli-input-json \ '{ "workspaceId": "{workspaceId}", "entries": [ { "entityPropertyReference": { "entityId": "{entityId}", "componentName": "{componentName}", "propertyName": "alarm_threshold" }, "propertyValues": [ { "value": { "doubleValue": "{newThreshold}" }, "time": "{effectiveTimeIsoString}" } ] } ] }'

配置您的 Grafana 控制面板以获取警报

需要创建第二个启用写入功能的仪表板 IAM 角色,该角色是一个普通角色,但具有将操作iottwinmaker:BatchPutPropertyValues添加到 TwinMaker 工作区 arn 的权限,如下例所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iottwinmaker:Get*", "iottwinmaker:List*", "iottwinmaker:BatchPutPropertyValues" ], "Resource": [ "{workspaceArn}", "{workspaceArn}/*" ] }, { "Effect": "Allow", "Action": "iottwinmaker:ListWorkspaces", "Resource": "*" } ] }

或者,您可以改为在 IAM 角色末尾添加以下语句:

{ "Effect": "Allow", "Action": [ "iottwinmaker:BatchPutPropertyValues" ], "Resource": [ "{workspaceArn}", "{workspaceArn}/*" ] }

通过您创建的写入角色,数据源写入 ARN 设置。

修改您的 IAM 角色后,登录您的 Grafana 控制面板以代入更新的角色 arn。选中 “为警报配置面板定义写入权限” 复选框,然后复选写入角色的 arn。

Grafana 控制面板设置选项卡,复选框处于选中状态,arn 输入框突出显示。

通过 Grafana 控制面板实现警报可视化

按以下程序,将警报配置平面添加至您的控制面板,并对其进行配置。

  1. 在面板选项中选择工作区。

  2. 在查询配置中设置数据源。

  3. 使用以下查询类型:Get Property Value History by Entity

  4. 选择您想要添加警报的目标实体变量。

  5. 选定实体后,选择组件或组件变量,以应用属性。

  6. 对于该属性,选择 alarm_statusalarm_threshold

    连接后,您应该会看到警报 ID 及其当前阈值。

    注意

    公开预览版不会显示任何通知。您应该查看警报状态和阈值,以确保属性正确应用。

  7. 应使用默认的升序查询,以便显示最新值。

  8. 查询的筛选器部分可留空。完整配置如下图所示:

    Grafana Labs Alarm Config 测试/编辑面板,填写了完整的配置。
  9. 使用Edit Alarm(编辑警报)按钮,可以弹出对话框,以更改当前警报阈值。

  10. 选择Save(保存)以设置新阈值。

    带有 “取消” 和 “保存” 按钮的 “编辑警报” 对话框。
    注意

    此平面只能用于含当前在内的实时时间范围内。将警报阈值编辑为当前阈值时,将其与过去结束和开始的时间范围一起使用可能会导致显示意外值。