

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

# 使用 Amazon 监控 AWS IoT 警报和指标 CloudWatch
<a name="monitoring-cloudwatch"></a>

您可以使用 AWS IoT 进行监控 CloudWatch，它会收集原始数据并将其处理 AWS IoT 为可读的、近乎实时的指标。这些统计数据会保存两周，从而使您能够访问历史信息，并能够更好地了解您的网络应用程序或服务的执行情况。默认情况下， AWS IoT 指标数据每隔一分钟自动发送到 CloudWatch 。有关更多信息，请参阅[什么是亚马逊 CloudWatch、亚马逊 CloudWatch 事件和亚马逊 CloudWatch 日志？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。

## 使用 AWS IoT 指标
<a name="how_to_use_metrics"></a>

报告的指标 AWS IoT 提供了您可以用不同方式进行分析的信息。以下使用案例基于您每天将十个事物连接一次 Internet 的场景。每天：
+ 十件事大致 AWS IoT 在同一时间相连。
+ 每个事物都会订阅主题筛选条件，接着在等待一个小时后断开连接。在此期间，事物之间相互通信并探索更多与环境状态有关的信息。
+ 每个事物都会基于其新发现的数据，使用 `UpdateThingShadow` 发布一些看法。
+ 每件事都与之断开连接。 AWS IoT

为了帮助您入门，这些主题探讨了您可能会遇到的一些问题。
+  [我如何在事物每天没有成功建立连接时得到通知？](creating_alarms.md#how_to_detect_connection_failures) 
+  [我如何在事物每天没有发布数据时得到通知？](creating_alarms.md#how_to_detect_publish_failures) 
+  [我如何在事物的影子更新每天被拒绝时得到通知？](creating_alarms.md#detect_rejected_updates) 
+  [如何为 Jobs 创建 CloudWatch 警报？](creating_alarms.md#cw-jobs-alarms) 

**Topics**
+ [使用 AWS IoT 指标](#how_to_use_metrics)
+ [创建要监控的 CloudWatch 警报 AWS IoT](creating_alarms.md)
+ [AWS IoT 指标和维度](metrics_dimensions.md)

# 创建要监控的 CloudWatch 警报 AWS IoT
<a name="creating_alarms"></a>

您可以创建一个 CloudWatch 警报，当警报状态发生变化时，该警报会发送 Amazon SNS 消息。警报会在您规定的时间范围内监控某一项指标。当指标的值在多个时间段内超过给定阈值时，将执行一项或多项操作。操作是一个发送到 Amazon SNS 主题或 Auto Scaling 策略的通知。警报仅在持续状态变化时触发操作。 CloudWatch 警报不会仅仅因为它们处于特定状态而触发操作；该状态必须已更改并维持了指定的时间段。

**Topics**
+ [我如何知道事物每天是否成功建立连接？](#how_to_detect_connection_failures)
+ [我如何在事物每天没有发布数据时得到通知？](#how_to_detect_publish_failures)
+ [我如何在事物的影子更新每天被拒绝时得到通知？](#detect_rejected_updates)
+ [如何为作业创建 CloudWatch 警报？](#cw-jobs-alarms)

 您可以查看 CloudWatch 警报可以监控的所有指标[AWS IoT 指标和维度](metrics_dimensions.md)。

## 我如何知道事物每天是否成功建立连接？
<a name="how_to_detect_connection_failures"></a>

1. 创建名为 `things-not-connecting-successfully` 的 Amazon SNS 主题，并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 ` sns-topic-arn `。

   有关如何创建 Amazon SNS 通知的更多信息，请参阅 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

1. 创建告警。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name ConnectSuccessAlarm \
       --alarm-description "Alarm when my Things don't connect successfully" \
       --namespace AWS/IoT \
       --metric-name Connect.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. 测试告警。

   ```
   aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. 验证警报是否显示在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)中。

## 我如何在事物每天没有发布数据时得到通知？
<a name="how_to_detect_publish_failures"></a>

1. 创建名为 `things-not-publishing-data` 的 Amazon SNS 主题，并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 ` sns-topic-arn `。

   有关如何创建 Amazon SNS 通知的更多信息，请参阅 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

1. 创建告警。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name PublishInSuccessAlarm\
       --alarm-description "Alarm when my Things don't publish their data \
       --namespace AWS/IoT \
       --metric-name PublishIn.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. 测试告警。

   ```
   aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. 验证警报是否显示在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)中。

## 我如何在事物的影子更新每天被拒绝时得到通知？
<a name="detect_rejected_updates"></a>

1. 创建名为 `things-shadow-updates-rejected` 的 Amazon SNS 主题，并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 ` sns-topic-arn `。

   有关如何创建 Amazon SNS 通知的更多信息，请参阅 [Amazon SNS 入门](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)。

1. 创建告警。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name UpdateThingShadowSuccessAlarm \
       --alarm-description "Alarm when my Things Shadow updates are getting rejected" \
       --namespace AWS/IoT \
       --metric-name UpdateThingShadow.Success \
       --dimensions Name=Protocol,Value=MQTT \
       --statistic Sum \
       --threshold 10 \
       --comparison-operator LessThanThreshold \
       --period 86400 \
       --unit Count \
       --evaluation-periods 1 \
       --alarm-actions sns-topic-arn
   ```

1. 测试告警。

   ```
   aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value ALARM
   ```

1. 验证警报是否显示在 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)中。

## 如何为作业创建 CloudWatch 警报？
<a name="cw-jobs-alarms"></a>

作业服务提供 CloudWatch 指标供您监控作业。您可以创建 CloudWatch 警报来监控任何警报[任务指标](metrics_dimensions.md#jobs-metrics)。

以下命令创建 CloudWatch 警报以监控 Job 的失败任务执行总数，*SampleOTAJob*并在超过 20 个任务执行失败时通知您。警报通过每 300 秒检查报告值来监控 Jobs 指标 `FailedJobExecutionTotalCount`。它在单个报告值大于 20 时激活，这意味着自任务启动以来失败的任务执行数超过了 20。当告警关闭时，它会向提供的 Amazon SNS 主题发送通知。

```
aws cloudwatch put-metric-alarm \
    --alarm-name TotalFailedJobExecution-SampleOTAJob \
    --alarm-description "Alarm when total number of failed job execution exceeds the threshold for SampleOTAJob" \
    --namespace AWS/IoT \
    --metric-name FailedJobExecutionTotalCount \
    --dimensions Name=JobId,Value=SampleOTAJob \
    --statistic Sum \
    --threshold 20 \
    --comparison-operator GreaterThanThreshold \
    --period 300 \
    --unit Count \
    --evaluation-periods 1 \
    --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions
```

以下命令创建 CloudWatch 警报，以监控 Job 在给定时间段内失败*SampleOTAJob*的任务执行次数。然后，在该时段内有超过 5 个任务执行失败时，它会通知您。警报通过每 3600 秒检查报告值来监控 Jobs 指标 `FailedJobExecutionCount`。它在单个报告值大于 5 时激活，这意味着过去 1 小时内失败的任务执行数超过了 5。当告警关闭时，它会向提供的 Amazon SNS 主题发送通知。

```
aws cloudwatch put-metric-alarm \
    --alarm-name FailedJobExecution-SampleOTAJob \
    --alarm-description "Alarm when number of failed job execution per hour exceeds the threshold for SampleOTAJob" \
    --namespace AWS/IoT \
    --metric-name FailedJobExecutionCount \
    --dimensions Name=JobId,Value=SampleOTAJob \
    --statistic Sum \
    --threshold 5 \
    --comparison-operator GreaterThanThreshold \
    --period 3600 \
    --unit Count \
    --evaluation-periods 1 \
    --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions-per-hour
```

# AWS IoT 指标和维度
<a name="metrics_dimensions"></a>

当您与交互时 AWS IoT，该服务会 CloudWatch 每分钟向发送一次指标和维度。您可以使用 AWS IoT、使用 CloudWatch 控制台或 AWS CLI 查看这些指标。

要使用 CloudWatch 控制台查看指标，请打开[CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)。在导航窗格中，选择 **Metrics**（指标）然后选择 **All metrics**（所有指标）。在 “**浏览**” 选项卡中，搜索 AWS IoT 以查看指标列表。指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

要使用查看指标 AWS CLI，请运行以下命令。

```
1. aws cloudwatch list-metrics --namespace "AWS/IoT"
```

**Topics**
+ [AWS IoT 指标](#iot-metrics)
+ [AWS IoT Core 凭证提供者指标](#credential-provider-metrics)
+ [身份验证指标](#authentication-metrics)
+ [服务器证书 OCSP 绑定指标](#server-ocsp-metrics)
+ [规则指标](#rulemetrics)
+ [规则操作指标](#rule-action-metrics)
+ [HTTP 操作特定指标](#http-action-metrics)
+ [消息代理指标](#message-broker-metrics)
+ [设备影子指标](#shadow-metrics)
+ [记录指标](#logging-metrics)
+ [任务指标](#jobs-metrics)
+ [Device Defender audit 指标](#device-defender-audit-metrics)
+ [Device Defender Detect 指标](#device-defender-detect-metrics)
+ [设备预调配指标](#provisioning-metrics)
+ [LoRa广域网指标](#lorawan-metrics)
+ [实例集索引指标](#fleet-indexing-metrics)
+ [指标的维度](#aws-iot-metricdimensions)

## AWS IoT 指标
<a name="iot-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `AddThingToDynamicThingGroupsFailed`   |  与将事物添加到动态事物组相关联的失败事件数。`DynamicThingGroupName` 维度包含添加事物时失败的动态组的名称。  | 
|   `NumLogBatchesFailedToPublishThrottled`   |  因限制错误而无法发布的日志事件的单个批次。  | 
|   `NumLogEventsFailedToPublishThrottled`   |  批处理中的因限制错误而无法发布的日志事件的数量。  | 

## AWS IoT Core 凭证提供者指标
<a name="credential-provider-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `CredentialExchangeSuccess`   |  向 AWS IoT Core 凭证提供程序成功提交 `AssumeRoleWithCertificate` 请求的数量。  | 

## 身份验证指标
<a name="authentication-metrics"></a>

**注意**  
身份验证指标显示在 CloudWatch 控制台的**协议指标**下。


| 指标 | 说明 | 
| --- | --- | 
|   `Connection.AuthNError`   | 由于身份验证失败而 AWS IoT Core 被拒绝的连接尝试次数。此指标仅考虑发送的服务器名称指示（SNI）字符串与您的 AWS 账户端点匹配的连接。该指标包括来自外部来源（例如互联网扫描工具或探测活动）的连接尝试次数。Protocol 维度包含用于发送连接尝试的协议。 | 

## 服务器证书 OCSP 绑定指标
<a name="server-ocsp-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| 检索OCSPStaple数据。成功 | OCSP 响应已成功接收并处理。在已配置域的 TLS 握手期间，将包含此响应。DomainConfigurationName 维度包含已启用服务器证书 OCSP 绑定的已配置域的名称。 | 

## 规则指标
<a name="rulemetrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `ParseError`   |  在规则所侦听的主题上发布的消息中出现的 JSON 分析错误的数量。`RuleName` 维度包含规则的名称。  | 
|   `RuleExecutionThrottled`   |  由于恶意行为或由于消息数超过了规则引擎的限制，规则引擎限制的消息数。`RuleName` 维度包含要触发的规则的名称。  | 
|   `RuleNotFound`   |  找不到要触发的规则。`RuleName` 维度包含规则的名称。  | 
|   `RulesExecuted`   |  已执行的 AWS IoT 规则数。  | 
|   `TopicMatch`   |  已在规则所侦听的主题上发布的传入消息的数量。`RuleName` 维度包含规则的名称。  | 

## 规则操作指标
<a name="rule-action-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `Failure`   |  失败的规则操作调用的数量。`RuleName` 维度包含指定操作的规则的名称。`ActionType` 维度包含已调用的操作的类型。  | 
|   `Success`   |  成功的规则操作调用的数量。`RuleName` 维度包含指定操作的规则的名称。`ActionType` 维度包含已调用的操作的类型。  | 
|  ErrorActionFailure  | 失败的错误操作数量。RuleName 维度包含指定操作的规则的名称。ActionType 维度包含已调用的操作的类型。 | 
|  ErrorActionSuccess  | 成功的错误操作数量。RuleName 维度包含指定操作的规则的名称。ActionType 维度包含已调用的操作的类型。 | 

## HTTP 操作特定指标
<a name="http-action-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `HttpCode_Other`   |  如果来自下游网络的响应的状态码不 service/application 是 2xx、4xx 或 5xx，则生成。  | 
|   `HttpCode_4XX`   |  如果来自下游网络的响应的状态码介 service/application 于 400 和 499 之间，则生成。  | 
|   `HttpCode_5XX`   |  如果来自下游网络的响应的状态码介 service/application 于 500 和 599 之间，则生成。  | 
|   `HttpInvalidUrl`   |  如果在替换模板后的端点 URL 不以 `https://` 开头，则生成此指标。  | 
|   `HttpRequestTimeout`   |  如果下游 Web service/application 未在请求超时限制内返回响应，则生成。有关更多信息，请参阅 [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#limits_iot)。  | 
|   `HttpUnknownHost`   |  如果 URL 有效，但服务不存在或无法访问，则生成此指标。  | 

## 消息代理指标
<a name="message-broker-metrics"></a>

**注意**  
消息代理指标显示在 CloudWatch 控制台的**协议指标**下。


| 指标 | 说明 | 
| --- | --- | 
|   `Connect.AuthError`   |  无法由消息代理授权的连接请求的数量。`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Connect.ClientError`   |  因 MQTT 消息不符合中定义的要求而被拒绝的连接请求数。[AWS IoT 限额](limits-iot.md)`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Connect.ClientIDThrottle`   |  因该客户端超出指定客户端 ID 所允许的连接请求速率而受限的连接请求的数量。`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Connect.ServerError`   |  因出现内部错误而导致失败的连接请求的数量。`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Connect.Success`   |  与消息代理的成功连接的数量。`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Connect.Throttle`   |  因账户超出允许的连接请求速率而受限的连接请求的数量。`Protocol` 维度包含用于发送 `CONNECT` 消息的协议。  | 
|   `Ping.Success`   |  消息代理收到的 ping 消息的数量。`Protocol` 维度包含用于发送 ping 消息的协议。  | 
|   `PublishIn.AuthError`   |  消息代理无法授权的发布请求的数量。`Protocol` 维度包含用于发布消息的协议。HTTP 发布不支持此指标。  | 
|   `PublishIn.ClientError`   |  由于消息不符合中定义的要求而被消息代理拒绝的发布请求的数量[AWS IoT 限额](limits-iot.md)。`Protocol` 维度包含用于发布消息的协议。  | 
|   `PublishIn.ServerError`   |  因出现内部错误而导致消息代理无法处理的发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishIn.Success`   |  消息代理已成功处理的发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishIn.Throttle`   |  因客户端超出允许的入站消息速率而受限制的发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。HTTP 发布不支持此指标。  | 
|   `PublishOut.AuthError`   |   AWS IoT无法授权的由消息代理发出的发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishOut.ClientError`   |  消息代理发出的由于消息不符合中定义的要求而被拒绝的发布请求的数量[AWS IoT 限额](limits-iot.md)。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishOut.Success`   |  消息代理已成功发出的发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|  PublishOut.Throttle  |  因客户端超出允许的入站消息速率而节流的发布请求数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishRetained.AuthError`   |  消息代理无法授权的 `RETAIN` 标签集发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|  PublishRetained.ServerError  |  因出现内部错误而导致消息代理无法处理的保留发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishRetained.Success`   |  消息代理已成功处理的 `RETAIN` 标签集发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `PublishRetained.Throttle`   |  因客户端超出允许的入站消息速率而受限制的 `RETAIN` 标签集发布请求的数量。`Protocol` 维度包含用于发送 `PUBLISH` 消息的协议。  | 
|   `Queued.Success`   |  消息代理为与持久会话断开连接的客户端成功处理的存储消息的数量。QoS 为 1 的消息是在具有持久性会话的客户端断开连接时存储的。  | 
|   `Queued.Throttle`   |  在具有持久会话的客户端断开连接时无法存储和受限制的消息的数量。当客户端超过[每个账户每秒的排队消息数](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#genref_queued_messages_per_second_per_account)限制时，就会发生这种情况。QoS 为 1 的消息是在具有持久性会话的客户端断开连接时存储的。  | 
|   `Queued.ServerError`   |  由于内部错误而未为持久会话存储的消息数量。当具有持久会话的客户端断开连接时，将存储服务质量（QoS）为 1 的消息。  | 
|   `Subscribe.AuthError`   |  无法授权的由客户端发出的订阅请求的数量。`Protocol` 维度包含用于发送 `SUBSCRIBE` 消息的协议。  | 
|   `Subscribe.ClientError`   |  由于`SUBSCRIBE`邮件不符合中定义的要求而被拒绝的订阅请求的数量[AWS IoT 限额](limits-iot.md)。`Protocol` 维度包含用于发送 `SUBSCRIBE` 消息的协议。  | 
|   `Subscribe.ServerError`   |  因出现内部错误而被拒绝的订阅请求的数量。`Protocol` 维度包含用于发送 `SUBSCRIBE` 消息的协议。  | 
|   `Subscribe.Success`   |  消息代理已成功处理的订阅请求的数量。`Protocol` 维度包含用于发送 `SUBSCRIBE` 消息的协议。  | 
|   `Subscribe.Throttle`   |  因您的 AWS 账户超过所允许的订阅请求速率限制而受限的订阅请求的数量。这些限制包括 [AWS IoT Core 消息代理和协议限制和配额](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits)中描述的每账户每秒订阅数、每账户订阅数以及每个连接的订阅数。`Protocol` 维度包含用于发送 `SUBSCRIBE` 消息的协议。  | 
|  Throttle.Exceeded  | 此指标将显示在 MQTT 客户端根据每个[连接级别限制的每秒数据包数](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits)进行限制 CloudWatch 时。此指标不适用于 HTTP 连接。 | 
|   `Unsubscribe.ClientError`   |  由于`UNSUBSCRIBE`邮件不符合中定义的要求而被拒绝的取消订阅请求的数量。[AWS IoT 限额](limits-iot.md)`Protocol` 维度包含用于发送 `UNSUBSCRIBE` 消息的协议。  | 
|   `Unsubscribe.ServerError`   |  因出现内部错误而被拒绝的取消订阅请求的数量。`Protocol` 维度包含用于发送 `UNSUBSCRIBE` 消息的协议。  | 
|   `Unsubscribe.Success`   |  消息代理已成功处理的取消订阅请求的数量。`Protocol` 维度包含用于发送 `UNSUBSCRIBE` 消息的协议。  | 
|   `Unsubscribe.Throttle`   |  因客户端超出允许的取消订阅请求速率而被拒绝的取消订阅请求的数量。`Protocol` 维度包含用于发送 `UNSUBSCRIBE` 消息的协议。  | 

## 设备影子指标
<a name="shadow-metrics"></a>

**注意**  
设备影子指标显示在 CloudWatch 控制台的**协议指标**下。


| 指标 | 说明 | 
| --- | --- | 
|   `DeleteThingShadow.Accepted`   |  已成功处理的 `DeleteThingShadow` 请求的数量。`Protocol` 维度包含用于发出请求的协议。  | 
|   `GetThingShadow.Accepted`   |  已成功处理的 `GetThingShadow` 请求的数量。`Protocol` 维度包含用于发出请求的协议。  | 
|   `ListThingShadow.Accepted`   |  已成功处理的 `ListThingShadow` 请求的数量。`Protocol` 维度包含用于发出请求的协议。  | 
|   `UpdateThingShadow.Accepted`   |  已成功处理的 `UpdateThingShadow` 请求的数量。`Protocol` 维度包含用于发出请求的协议。  | 

## 记录指标
<a name="logging-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|  `CloudwatchLogs:LogGroupCreationFailed`  |  `CreateLogGroup`请求失败的次数。如果 CloudWatch 日志组不存在，AWS IoT Logging 会创建日志组。该`LogGroup`维度包含用于发出请求的日志组。  | 
|  `CloudwatchLogs:LogStreamCreationFailed`  |  `CreateLogStream`请求失败的次数。AWS IoT Loggin CloudWatch g 创建日志流来推送日志事件。该`LogGroup`维度包含用于发出请求的日志组。  | 
|  `CloudwatchLogs:PutRetentionPolicyFailed`  |  `PutRetentionPolicy`请求失败的次数。如果 CloudWatch 日志组不存在，AWS IoT Logging 会创建该日志组，并将保留策略设置为 30 天。该`LogGroup`维度包含用于发出请求的日志组。  | 
|  `CloudwatchLogs:PutLogEventsFailed`  |  `PutLogEvents`请求失败的次数。该`LogGroup`维度包含用于发出请求的 CloudWatch 日志组。  | 

## 任务指标
<a name="jobs-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|  `CanceledJobExecutionCount`  |  在由确定的时间段`CANCELED`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `CanceledJobExecutionTotalCount`   |  给定任务的状态为 `CANCELED` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `ClientErrorCount`   |  执行任务时生成的客户端错误数。`JobId` 维度包含任务的 ID。  | 
|   `FailedJobExecutionCount`   |  在由确定的时间段`FAILED`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `FailedJobExecutionTotalCount`   |  给定任务的状态为 `FAILED` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `InProgressJobExecutionCount`   |  在由确定的时间段`IN_PROGRESS`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `InProgressJobExecutionTotalCount`   |  给定任务的状态为 `IN_PROGRESS` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `RejectedJobExecutionTotalCount`   |  给定任务的状态为 `REJECTED` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `RemovedJobExecutionTotalCount`   |  给定任务的状态为 `REMOVED` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `QueuedJobExecutionCount`   |  在由确定的时间段`QUEUED`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `QueuedJobExecutionTotalCount`   |  给定任务的状态为 `QUEUED` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 
|   `RejectedJobExecutionCount`   |  在由确定的时间段`REJECTED`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `RemovedJobExecutionCount`   |  在由确定的时间段`REMOVED`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `ServerErrorCount`   |  执行任务时生成的服务器错误数。`JobId` 维度包含任务的 ID。  | 
|   `SuccededJobExecutionCount`   |  在由确定的时间段`SUCCESS`内状态更改为的任务执行次数 CloudWatch。（有关 CloudWatch 指标的更多信息，请参阅 [Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。） `JobId` 维度包含任务的 ID。  | 
|   `SuccededJobExecutionTotalCount`   |  给定任务的状态为 `SUCCESS` 的任务执行总数。`JobId` 维度包含任务的 ID。  | 

## Device Defender audit 指标
<a name="device-defender-audit-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `NonCompliantResources`   |  在检查中发现的不合规资源数。系统报告执行的每次审核中，对于每次检查发现的不合规资源数。  | 
|   `ResourcesEvaluated`   |  执行合规性评估的资源数。系统报告执行的每次审核中，对于每次检查所评估的资源数。  | 
|   `MisconfiguredDeviceDefenderNotification`   |  当你的 SNS 配置配置错误时会通知你。 AWS IoT Device Defender   [Dimensions](#aws-iot-metricdimensions)   | 

## Device Defender Detect 指标
<a name="device-defender-detect-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
|   `NumOfMetricsExported`    |  云端、设备端或自定义指标导出的指标数量。系统会报告该账户就某项特定指标导出的指标数量。此指标仅对使用指标导出功能的客户提供。  | 
|   `NumOfMetricsSkipped`   |  云端、设备端或自定义指标跳过的指标数量。由于为发布到 mqtt 主题而向 Device Defender Detect 提供的权限不足，系统会报告该账户就某项特定指标跳过的指标数量。此指标仅对使用指标导出功能的客户提供。  | 
|   `NumOfMetricsExceedingSizeLimit`   |  由于大小超过 MQTT 消息大小限制，云端、设备端或自定义指标跳过导出的指标数量。系统会报告该账户因大小超过 MQTT 消息大小限制而跳过导出的指标数量。此指标仅对使用指标导出功能的客户提供。  | 
|   `Violations`   |  自上次执行评估以来，所发现的安全配置文件行为的新违规数。系统针对特定安全配置文件，以及针对某个特定安全配置文件的特定行为，报告账户的新违规数。  | 
|   `ViolationsCleared`   |  自上次执行评估以来，已解决的安全配置文件行为的违规数。系统针对特定安全配置文件，以及针对某个特定安全配置文件的特定行为，报告账户的已解决违规数。  | 
|   `ViolationsInvalidated`   |  自上次执行评估以来，其信息不再可用（由于报告设备已停止报告，或者由于某个原因不再监控）的安全配置文件行为的违规数。系统针对特定安全配置文件，以及针对某个特定安全配置文件的特定行为，报告整个账户的已失效违规数。  | 
|   `MisconfiguredDeviceDefenderNotification`   |  当你的 SNS 配置配置错误时会通知你。 AWS IoT Device Defender   [Dimensions](#aws-iot-metricdimensions)   | 

## 设备预调配指标
<a name="provisioning-metrics"></a>


**AWS IoT 舰队配置指标**  

| 指标 | 说明 | 
| --- | --- | 
|   `ApproximateNumberOfThingsRegistered`   |  Fleet Provisioning 注册的事物的计数。 虽然计数通常是准确的，但 AWS IoT Core 的分布式架构使得很难让已注册事物保持精确计数。 此指标将使用的统计数据是： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/metrics_dimensions.html)  维度：[ClaimCertificateId](#aws-iot-metricdimensions)  | 
|   `CreateKeysAndCertificateFailed`   |  调用 `CreateKeysAndCertificate` MQTT API 时故障的次数。 在“成功”（值 = 0）和“故障”（值 = 1）情况下均发出该指标。此指标可用于跟踪在 CloudWatch支持的聚合时段（例如 5 分钟或 1 小时）内创建和注册的证书数量。 此指标的可用统计数据包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/metrics_dimensions.html)  | 
|   `CreateCertificateFromCsrFailed`   |  调用 `CreateCertificateFromCsr` MQTT API 时故障的次数。 在“成功”（值 = 0）和“故障”（值 = 1）情况下均发出该指标。此指标可用于跟踪在 CloudWatch支持的聚合时段（例如 5 分钟或 1 小时）内注册的事物的数量。 此指标的可用统计数据包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/metrics_dimensions.html)  | 
|   `RegisterThingFailed`   |  调用 `RegisterThing` MQTT API 时故障的次数。 在“成功”（值 = 0）和“故障”（值 = 1）情况下均发出该指标。此指标可用于跟踪在 CloudWatch支持的聚合时段（例如 5 分钟或 1 小时）内注册的事物的数量。有关注册的事物总数，请参阅 `ApproximateNumberOfThingsRegistered` 指标。 此指标的可用统计数据包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/metrics_dimensions.html) 维度：[TemplateName](#aws-iot-metricdimensions)  | 


**Just-in-time 配置指标**  

| 指标 | 说明 | 
| --- | --- | 
|   `ProvisionThing.ClientError`   |  由于客户端错误无法预置设备的次数。例如，模板中指定的策略不存在。  | 
|  ProvisionThing.ServerError  |  由于服务器错误而无法预置设备的次数。客户可以在等待后重新尝试预置设备，如果问题仍然存在，则可以尝试联系 AWS IoT 。  | 
|  ProvisionThing.Success  |  成功预置设备的次数。  | 

## LoRa广域网指标
<a name="lorawan-metrics"></a>

下表显示了的指标 适用于 LoRaWAN 的 AWS IoT Core。有关更多信息，请参阅 [适用于 LoRaWAN 的 AWS IoT Core 指标](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/iot-lorawan-metrics.html)。


**适用于 LoRaWAN 的 AWS IoT Core 指标**  

| 指标 | 说明 | 
| --- | --- | 
|  活动设备/网关  |  您账户中活跃的 LoRa WAN 设备和网关的数量。  | 
|  上行链路消息数  |  在指定时间段内为您 AWS 账户中的所有活动网关和设备发送的上行链路消息的数量。上行链路消息是从您的设备发送到的 适用于 LoRaWAN 的 AWS IoT Core消息。  | 
|  下行链路消息数  |  在指定时间段内为您 AWS 账户中的所有活动网关和设备发送的下行链路消息的数量。下行链路消息是从您的设备发送 适用于 LoRaWAN 的 AWS IoT Core 的消息。  | 
|  消息丢失率  |  添加设备并连接到后 适用于 LoRaWAN 的 AWS IoT Core，您的设备可以启动上行链路消息，开始与云端交换消息。然后，您可以使用此指标来跟踪上行链路消息的丢失率。  | 
|  加入指标  |  添加设备和网关后，您可以执行加入程序，以便您的设备可以发送上行链路数据并与 适用于 LoRaWAN 的 AWS IoT Core之通信。您可以使用此指标来获取有关您 AWS 账户中所有活跃设备的加入指标的信息。  | 
|  平均收到的信号强度指标（RSSI）  |  您可以使用此指标来监控指定时间段内的平均 RSSI（收到的信号强度指标）。RSSI 是一种衡量标准，用于指示信号强度是否足以实现良好的无线连接。此值为负值，且必须接近零才能实现可靠的连接。  | 
|  平均信噪比（SNR）  |  您可以使用此指标来监控指定时间段内的平均 SNR（Signal-to-noise 比率）。SNR 是一种衡量标准，用于指示收到的信号与噪声水平相比，强度是否足以实现良好的无线连接。SNR 值为正值，且必须大于零才能表示信号强度大于噪声强度。  | 
|  网关可用性  |  您可以使用此指标来获取有关该网关在指定时间段内的可用性的信息。此指标显示该网关在指定时间段内的 WebSocket 连接时间。  | 


**Just-in-time 配置指标**  

| 指标 | 说明 | 
| --- | --- | 
|   `ProvisionThing.ClientError`   |  由于客户端错误无法预置设备的次数。例如，模板中指定的策略不存在。  | 
|  ProvisionThing.ServerError  |  由于服务器错误而无法预置设备的次数。客户可以在等待后重新尝试预置设备，如果问题仍然存在，则可以尝试联系 AWS IoT 。  | 
|  ProvisionThing.Success  |  成功预置设备的次数。  | 

## 实例集索引指标
<a name="fleet-indexing-metrics"></a>


**AWS IoT 舰队索引指标**  

| 指标 | 说明 | 
| --- | --- | 
|   `NamedShadowCountForDynamicGroupQueryLimitExceeded`   |  对于不是动态事物组中特定于数据来源的查询术语，每件事物最多处理 25 个命名影子。由于事件而违反该限制时，将发出 `NamedShadowCountForDynamicGroupQueryLimitExceeded` 事件类型。  | 

## 指标的维度
<a name="aws-iot-metricdimensions"></a>


**指标使用命名空间并为以下维度提供指标**  

| 维度 | 说明 | 
| --- | --- | 
|  ActionType  |  触发请求的规则所指定的[操作类型](iot-rule-actions.md)。  | 
|   `BehaviorName`   |  正受监控的 Device Defender Detect 安全配置文件行为的名称。  | 
|   `ClaimCertificateId`   |  用于预调配设备的申请的 `certificateId`。  | 
|   `CheckName`   |  正在监控其结果的 Device Defender Audit 检查的名称。  | 
|   `JobId`   |  正在监控其进度或消息连接的任务 success/failure 的 ID。  | 
|   `Protocol`   |  用于提出请求的协议。有效值为：MQTT 或 HTTP  | 
|   `RuleName`   |  由请求触发的规则的名称。  | 
|   `ScheduledAuditName`   |  正在监控其检查结果的 Device Defender 计划审核的名称。如果报告的结果适用于按需执行的审计，此项具有值 `OnDemand`。  | 
|   `SecurityProfileName`   |  正在监控其行为的 Device Defender Detect 安全配置文件的名称。  | 
|   `TemplateName`   |  预配置模板的名称。  | 
|  SourceArn  | 指用于检测的安全配置文件或用于审计的账户 ARN。 | 
|   `RoleArn`   |  指 Device Defender 尝试代入的角色。  | 
|   `TopicArn`   |  请参阅 Device Defender 尝试发布到的 SNS 主题。  | 
|   `Error`   | 简要描述在尝试发布到 SNS 主题时收到的错误。可能的值有：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/metrics_dimensions.html)  | 