

# 设置指标流


按照以下部分中的步骤设置 CloudWatch 指标流。

创建指标流后，指标数据显示在目标位置所需的时间取决于对 Firehose 传输流配置的缓冲设置。缓冲以最大负载大小或最长等待时间表示，以先达到者为准。如果缓冲设置为最小值（60 秒、1MB），则如果所选 CloudWatch 命名空间具有活动指标更新，则预期延迟将在 3 分钟内。

在 CloudWatch 指标流中，每分钟发送一次数据。数据可能无序到达最终目标位置。指定命名空间中的所有指定的指标都在指标流中发送，但时间戳超过两天的指标除外。

对于您流式传输的指标名称和命名空间的每个组合，该指标名称和命名空间的所有维度组合都将被流式传输。

对于监控账户中的指标流，您可以选择是否包含与该监控账户关联的源账户的指标。有关更多信息，请参阅 [CloudWatch 跨账户可观测性](CloudWatch-Unified-Cross-Account.md)。

要创建及管理指标流，您必须登录具有 **CloudWatchFullAccess** 策略和 `iam:PassRole` 权限的账户，或具有以下所列权限的账户：
+ `iam:PassRole`
+ `cloudwatch:PutMetricStream`
+ `cloudwatch:DeleteMetricStream`
+ `cloudwatch:GetMetricStream`
+ `cloudwatch:ListMetricStreams`
+ `cloudwatch:StartMetricStreams`
+ `cloudwatch:StopMetricStreams`

如果您要让 CloudWatch 设置指标流所需的 IAM 角色，您还必须具有 `iam:CreateRole` 和 `iam:PutRolePolicy` 权限。

**重要**  
具有 `cloudwatch:PutMetricStream` 的用户即使不具有 `cloudwatch:GetMetricData` 权限也可以访问正在流式传输的 CloudWatch 指标数据。

**Topics**
+ [

# 使用 Firehose 自定义设置
](CloudWatch-metric-streams-setup-datalake.md)
+ [

# 使用 Amazon S3 快速设置
](CloudWatch-metric-streams-setup-Quick-S3.md)
+ [

# 合作伙伴快速设置
](CloudWatch-metric-streams-QuickPartner.md)

# 使用 Firehose 自定义设置


使用此方法创建指标流并将其导向 Amazon Data Firehose 传输流，该流会将您的 CloudWatch 指标传送到所需位置。您可以将它们流式传输到诸如 Amazon S3 之类的数据湖，或传输到 Firehose 支持的任何目标或端点，包括第三方提供商。

原生支持 JSON、OpenTelemetry 1.0.0 和 OpenTelemetry 0.7.0 格式，或者您可以在 Firehose 传输流中配置转换，将数据转换为其他格式，例如 Parquet。借助指标流，您可以持续更新监控数据，或者将此 CloudWatch 指标数据与账单和性能数据相结合，以创建丰富的数据集。然后，您可以使用 Amazon Athena 等工具深入了解成本优化、资源性能和资源利用率。

您可以使用 CloudWatch 控制台、Amazon CLI、Amazon CloudFormation 或 Amazon Cloud Development Kit (Amazon CDK) 设置指标流。

您用于指标流的 Firehose 传输流必须位于指标流设置所在的同一账户和区域中。要实现跨区域功能，您可以将 Firehose 传输流配置为流式传输到位于不同账户或不同区域中的最终目标位置。

## CloudWatch 控制台


本部分介绍如何通过 CloudWatch 控制台使用 Firehose 设置指标流。

**要使用 Firehose 设置自定义指标流**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Metrics**（指标）、**Streams**（流）。然后选择 **Create metric stream**（创建指标流）。

1. （可选）如果您登录的账户在 CloudWatch 跨账户可观测性中设置为监控账户，您可以选择是否包含来自此指标流中关联源账户的指标。要包含来自源账户的指标，请选择 **Include source account metrics**（包含源账户指标）。

1. 选择**使用 Firehose 自定义设置**。

1. 对于**选择 Kinesis Data Firehose 流**，请选择要使用的 Firehose 传输流。必须位于同一账户中。此选项的默认格式为 OpenTelemetry 0.7.0，但您可以在此过程的后续步骤中更改格式。

   然后在**选择您的 Firehose 传输流**下选择要使用的 Firehose 传输流。

1. （可选）您可以选择**选择现有服务角色**来使用现有 IAM 角色，而不必让 CloudWatch 为您创建新角色。

1. （可选）要更改方案的默认输出格式，请选择 **Change output format（更改输出格式）**。支持的格式为 JSON、OpenTelemetry 1.0.0 和 OpenTelemetry 0.7.0。

1. 对于**要进行流式传输的指标**，请选择**所有指标**或**选择指标**。

   如果您选择**所有指标**，则该账户的所有指标都将包含在流中。

   请仔细考虑是否要流式传输所有指标，因为流式传输的指标越多，您的指标流费用就越高。

   如果选择的是**选择指标**，请执行以下操作中的一项：
   + 要流式传输大多数指标命名空间，请选择**排除**，然后选择要排除的命名空间或指标。在**排除**中指定命名空间时，可以选择该命名空间中要排除的一些特定指标。如果选择排除某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将被排除。
   + 要在指标流中仅包含少数指标命名空间或指标，请选择**包含**，然后选择要包含的命名空间或指标。如果选择包含某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将包含在内。

1. （可选）要流式传输其中除 Minimum、Maximum、SampleCount 和 Sum 外的一些指标的其他统计数据，请选择**添加其他统计数据**。要么选择 **Add recommended metrics**（添加推荐的指标）添加一些常用的统计数据，要么手动选择要针对其流式传输额外统计数据的命名空间和指标名称。接下来，选择要流式传输的额外统计数据。

   然后，要选择另一组指标，以流式传输另一组额外统计数据，请选择 **Add additional statistics**（添加额外统计数据）。每个指标可以包含多达 20 个额外统计数据，一个指标流中有多达 100 个指标可以包含额外统计数据。

   流式传输额外统计数据会产生更多费用。有关更多信息，请参阅 [可以流式传输的统计数据](CloudWatch-metric-streams-statistics.md)。

   有关额外统计数据的定义，请参阅 [CloudWatch 统计数据定义](Statistics-definitions.md)。

1. （可选）可以在 **Metric stream name（指标流名称）**下自定义新指标流的名称。

1. 选择 **Create metric filter（创建指标流）**。

## Amazon CLI 或 Amazon API


使用以下步骤创建 CloudWatch 指标流。

**使用 Amazon CLI 或 Amazon API 创建指标流**

1. 如果您要流式传输到 Amazon S3，请先创建存储桶。有关更多信息，请参阅[创建存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/create-bucket-overview.html)。

1. 创建 Firehose 传输流。有关更多信息，请参阅[创建 Firehose 流](https://docs.amazonaws.cn/firehose/latest/dev/basic-create.html)。

1. 创建使 CloudWatch 能够向 Firehose 传输流写入的 IAM 角色。有关该角色内容的更多信息，请参阅 [CloudWatch 和 Firehose 之间的信任关系](CloudWatch-metric-streams-trustpolicy.md)。

1. 使用 `aws cloudwatch put-metric-stream` CLI 命令或 `PutMetricStream` API 来创建 CloudWatch 指标流。

## Amazon CloudFormation


您可以使用 Amazon CloudFormation 设置指标流。有关更多信息，请参阅 [AWS::CloudWatch::MetricStream](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)。

**使用 Amazon CloudFormation 创建指标流**

1. 如果您要流式传输到 Amazon S3，请先创建存储桶。有关更多信息，请参阅[创建存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/create-bucket-overview.html)。

1. 创建 Firehose 传输流。有关更多信息，请参阅[创建 Firehose 流](https://docs.amazonaws.cn/firehose/latest/dev/basic-create.html)。

1. 创建使 CloudWatch 能够向 Firehose 传输流写入的 IAM 角色。有关该角色内容的更多信息，请参阅 [CloudWatch 和 Firehose 之间的信任关系](CloudWatch-metric-streams-trustpolicy.md)。

1. 在 Amazon CloudFormation 中创建指标流。有关更多信息，请参阅 [AWS::CloudWatch::MetricStream](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html)。

## Amazon Cloud Development Kit (Amazon CDK)


您可以使用 Amazon Cloud Development Kit (Amazon CDK) 设置指标流。

**使用 Amazon CDK 创建指标流**

1. 如果您要流式传输到 Amazon S3，请先创建存储桶。有关更多信息，请参阅[创建存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/create-bucket-overview.html)。

1. 创建 Firehose 传输流。有关更多信息，请参阅[创建 Amazon Data Firehose 传输流](https://docs.amazonaws.cn/firehose/latest/dev/basic-create.html)。

1. 创建使 CloudWatch 能够向 Firehose 传输流写入的 IAM 角色。有关该角色内容的更多信息，请参阅 [CloudWatch 和 Firehose 之间的信任关系](CloudWatch-metric-streams-trustpolicy.md)。

1. 创建指标流。指标流资源在 Amazon CDK 中作为名为 `CfnMetricStream` 的 Level 1 (L1) Construct 提供。有关更多信息，请参阅[使用 L1 Construct](https://docs.amazonaws.cn/cdk/latest/guide/constructs.html#constructs_l1_using.html)。

# 使用 Amazon S3 快速设置


如果您想快速设置传输到 Amazon S3 的流，并且除了支持的 JSON、OpenTelemetry 1.0.0 和 OpenTelemetry 0.7.0 格式之外，您不需要任何格式转换，**S3 快速设置**方法非常适合。CloudWatch 将创建所有必要的资源，包括 Firehose 传输流和必要的 IAM 角色。此选项的默认格式为 JSON，但您可以在设置流时更改格式。

或者，如果您希望最终格式为 Parquet 格式或优化的行列式（ORC），则应改为按照 [使用 Firehose 自定义设置](CloudWatch-metric-streams-setup-datalake.md) 中的步骤进行操作。

## CloudWatch 控制台


本部分介绍如何通过 CloudWatch 控制台使用“S3 快速设置”设置指标流 Amazon S3。

**使用“S3 快速设置”设置指标流**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Metrics**（指标）、**Streams**（流）。然后选择 **Create metric stream**（创建指标流）。

1. （可选）如果您登录的账户在 CloudWatch 跨账户可观测性中设置为监控账户，您可以选择是否包含来自此指标流中关联源账户的指标。要包含来自源账户的指标，请选择 **Include source account metrics**（包含源账户指标）。

1. 选择**S3 快速设置**。CloudWatch 将创建所有必要的资源，包括 Firehose 传输流和必要的 IAM 角色。此选项的默认格式为 JSON，但您可以在此程序的稍后步骤中更改格式。

1. （可选）选择**选择现有资源**以使用现有 S3 存储桶或现有 IAM 角色，而不是让 CloudWatch 为您创建新的存储桶或 IAM 角色。

1. （可选）要更改方案的默认输出格式，请选择 **Change output format（更改输出格式）**。支持的格式为 JSON、OpenTelemetry 1.0.0 和 OpenTelemetry 0.7.0。

1. 对于**要进行流式传输的指标**，请选择**所有指标**或**选择指标**。

   如果您选择**所有指标**，则该账户的所有指标都将包含在流中。

   请仔细考虑是否要流式传输所有指标，因为流式传输的指标越多，您的指标流费用就越高。

   如果选择的是**选择指标**，请执行以下操作中的一项：
   + 要流式传输大多数指标命名空间，请选择**排除**，然后选择要排除的命名空间或指标。在**排除**中指定命名空间时，可以选择该命名空间中要排除的一些特定指标。如果选择排除某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将被排除。
   + 要在指标流中仅包含少数指标命名空间或指标，请选择**包含**，然后选择要包含的命名空间或指标。如果选择包含某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将包含在内。

1. （可选）要流式传输其中除 Minimum、Maximum、SampleCount 和 Sum 外的一些指标的其他统计数据，请选择**添加其他统计数据**。要么选择 **Add recommended metrics**（添加推荐的指标）添加一些常用的统计数据，要么手动选择要针对其流式传输额外统计数据的命名空间和指标名称。接下来，选择要流式传输的额外统计数据。

   然后，要选择另一组指标，以流式传输另一组额外统计数据，请选择 **Add additional statistics**（添加额外统计数据）。每个指标可以包含多达 20 个额外统计数据，一个指标流中有多达 100 个指标可以包含额外统计数据。

   流式传输额外统计数据会产生更多费用。有关更多信息，请参阅 [可以流式传输的统计数据](CloudWatch-metric-streams-statistics.md)。

   有关额外统计数据的定义，请参阅 [CloudWatch 统计数据定义](Statistics-definitions.md)。

1. （可选）可以在 **Metric stream name（指标流名称）**下自定义新指标流的名称。

1. 选择 **Create metric filter（创建指标流）**。

# 合作伙伴快速设置


CloudWatch 为以下第三方合作伙伴提供快速设置功能体验。要使用此工作流，您只需提供目标 URL 和目标的 API 密钥。CloudWatch 将负责其余的设置，包括创建 Firehose 传输流和所需的 IAM 角色。

**重要**  
在使用合作伙伴快速设置创建指标流之前，我们强烈建议您阅读以下列表中链接的该合作伙伴的文档。
+ [Datadog](https://docs.datadoghq.com/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/)
+ [Dynatrace](https://www.dynatrace.com/support/help/dynatrace-api/basics/dynatrace-api-authentication)
+ [弹性](https://www.elastic.co/docs/current/integrations/awsfirehose)
+ [New Relic](https://docs.newrelic.com/install/aws-cloudwatch/)
+ [Splunk Observability Cloud](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/aws/aws-console-ms.html)
+ [SumoLogic](https://www.sumologic.com)

当您设置要传输到其中一个合作伙伴的指标流时，将使用一些默认设置创建该流，如以下各部分所列。

**Topics**
+ [

## 使用“合作伙伴快速设置”设置指标流
](#CloudWatch-metric-streams-QuickPartner-setup)
+ [

## Datadog 流默认设置
](#CloudWatch-metric-streams-QuickPartner-Datadog)
+ [

## Dynatrace 流默认设置
](#CloudWatch-metric-streams-QuickPartner-Dynatrace)
+ [

## Elastic 流默认设置
](#CloudWatch-metric-streams-QuickPartner-Elastic)
+ [

## New Relic 流默认设置
](#CloudWatch-metric-streams-QuickPartner-NewRelic)
+ [

## Splunk Observability Cloud 流默认设置
](#CloudWatch-metric-streams-QuickPartner-Splunk)
+ [

## Sumo Logic 流默认设置
](#CloudWatch-metric-streams-QuickPartner-Sumologic)

## 使用“合作伙伴快速设置”设置指标流


CloudWatch 为某些第三方合作伙伴提供了快速设置功能选项。在开始执行本部分中的步骤之前，您必须先了解合作伙伴的某些信息。这些信息可能包括目标 URL 和/或合作伙伴目标的 API 密钥。您还应该阅读上一部分中链接的合作伙伴网站上的文档，以及以下各部分中列出的针对相应合作伙伴的默认设置。

要流式传输到快速设置功能不支持的第三方目标，您可以按照 [使用 Firehose 自定义设置](CloudWatch-metric-streams-setup-datalake.md) 中的说明，使用 Firehose 设置流，然后将这些指标从 Firehose 发送到最终目标。

**使用“合作伙伴快速设置”创建传输到第三方提供商的指标流**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Metrics**（指标）、**Streams**（流）。然后选择 **Create metric stream**（创建指标流）。

1. （可选）如果您登录的账户在 CloudWatch 跨账户可观测性中设置为监控账户，您可以选择是否包含来自此指标流中关联源账户的指标。要包含来自源账户的指标，请选择 **Include source account metrics**（包含源账户指标）。

1. 选择**快速设置 Amazon Web Services 合作伙伴**

1. 选择要将指标流式传输到的合作伙伴的名称。

1. 对于**端点 URL**，输入目标 URL。

1. 对于**访问密钥**或 **API 密钥**，输入相应合作伙伴的访问密钥。并非所有合作伙伴都需要访问密钥。

1. 对于**要进行流式传输的指标**，请选择**所有指标**或**选择指标**。

   如果您选择**所有指标**，则该账户的所有指标都将包含在流中。

   请仔细考虑是否要流式传输所有指标，因为流式传输的指标越多，您的指标流费用就越高。

   如果选择的是**选择指标**，请执行以下操作中的一项：
   + 要流式传输大多数指标命名空间，请选择**排除**，然后选择要排除的命名空间或指标。在**排除**中指定命名空间时，可以选择该命名空间中要排除的一些特定指标。如果选择排除某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将被排除。
   + 要在指标流中仅包含少数指标命名空间或指标，请选择**包含**，然后选择要包含的命名空间或指标。如果选择包含某个命名空间，但随后没有选择该命名空间中的指标，则该命名空间中的所有指标都将包含在内。

1. （可选）要流式传输其中除 Minimum、Maximum、SampleCount 和 Sum 外的一些指标的其他统计数据，请选择**添加其他统计数据**。要么选择 **Add recommended metrics**（添加推荐的指标）添加一些常用的统计数据，要么手动选择要针对其流式传输额外统计数据的命名空间和指标名称。接下来，选择要流式传输的额外统计数据。

   然后，要选择另一组指标，以流式传输另一组额外统计数据，请选择 **Add additional statistics**（添加额外统计数据）。每个指标可以包含多达 20 个额外统计数据，一个指标流中有多达 100 个指标可以包含额外统计数据。

   流式传输额外统计数据会产生更多费用。有关更多信息，请参阅 [可以流式传输的统计数据](CloudWatch-metric-streams-statistics.md)。

   有关额外统计数据的定义，请参阅 [CloudWatch 统计数据定义](Statistics-definitions.md)。

1. （可选）可以在 **Metric stream name（指标流名称）**下自定义新指标流的名称。

1. 选择 **Create metric filter（创建指标流）**。

## Datadog 流默认设置


传输到 Datadog 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 0.7.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 4MB
+ **Firehose 流重试选项** 持续时间为 60 秒

当您使用“合作伙伴快速设置”创建传输到 Datadog 的指标流并流式传输某些指标时，默认情况下，这些指标会包含一些其他统计数据。流式传输其他统计数据可能会产生额外费用。有关这些统计数据及其费用的更多信息，请参阅 [可以流式传输的统计数据](CloudWatch-metric-streams-statistics.md)。

如果您选择流式传输默认会流式传输其他统计数据的指标，以下列表将显示这些指标。在启动流式传输之前，您可以选择取消选择这些其他统计数据。
+ **`AWS/Lambda` 中的 `Duration`：**p50、p80、p95、p99、p99.9
+ **`AWS/Lambda` 中的 `PostRuntimeExtensionDuration`：**p50、p99
+ **`AWS/S3` 中的 `FirstByteLatency` 和 `TotalRequestLatency`：**p50、p90、p95、p99、p99.9
+ **AWS/ApplicationELB 中 `AWS/Polly` 和 `TargetResponseTime` 中的 `ResponseLatency`：**p50、p90、p95、p99
+ **`AWS/ApiGateway` 中的 `Latency` 和 `IntegrationLatency`：**p90、p95、p99
+ **`AWS/ELB` 中的 `Latency` 和 `TargetResponseTime`：**p95、p99
+ **`AWS/AppRunner` 中的 `RequestLatency`：**p50、p95、p99
+ **`AWS/States` 中的 `ActivityTime`、`ExecutionTime`、`LambdaFunctionRunTime`、`LambdaFunctionScheduleTime`、`LambdaFunctionTime`、`ActivityRunTime` 和 `ActivityScheduleTime`：**p95、p99
+ **`AWS/MediaLive` 中的 `EncoderBitRate`、`ConfiguredBitRate` 和 `ConfiguredBitRateAvailable`：**p90
+ **`AWS/AppSync` 中的 `Latency`：**p90

## Dynatrace 流默认设置


传输到 Dynatrace 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 0.7.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 5MB
+ **Firehose 流重试选项** 持续时间为 600 秒

## Elastic 流默认设置


传输到 Elastic 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 1.0.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 1MB
+ **Firehose 流重试选项** 持续时间为 60 秒

## New Relic 流默认设置


传输到 New Relic 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 0.7.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 1MB
+ **Firehose 流重试选项** 持续时间为 60 秒

## Splunk Observability Cloud 流默认设置


传输到 Splunk Observability Cloud 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 1.0.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 1MB
+ **Firehose 流重试选项** 持续时间为 300 秒

## Sumo Logic 流默认设置


传输到 Sumo Logic 的合作伙伴快速设置流使用以下默认设置：
+ **输出格式：**OpenTelemetry 0.7.0
+ **Firehose 流内容编码** GZIP
+ **Firehose 流缓冲选项** 间隔为 60 秒，大小为 1MB
+ **Firehose 流重试选项** 持续时间为 60 秒