

# 使用 Firehose 自定义设置
<a name="CloudWatch-metric-streams-setup-datalake"></a>

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

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

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

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

## CloudWatch 控制台
<a name="CloudWatch-metric-streams-setup-datalake-console"></a>

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

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

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/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（创建指标流）**。

## AWS CLI 或 AWS API
<a name="CloudWatch-metric-streams-setup-datalake-CLI"></a>

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

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

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

1. 创建 Firehose 传输流。有关更多信息，请参阅[创建 Firehose 流](https://docs.aws.amazon.com/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 指标流。

## AWS CloudFormation
<a name="CloudWatch-metric-streams-setup-datalake-CFN"></a>

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

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

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

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

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

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

## AWS Cloud Development Kit (AWS CDK)
<a name="CloudWatch-metric-streams-setup-datalake-CDK"></a>

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

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

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

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

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

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