

# 通过向导连接到预构建数据来源
<a name="CloudWatch_MultiDataSources-Connect"></a>

 本主题提供相关说明，帮助您了解如何通过向导将 CloudWatch 连接到以下数据来源。
+ Amazon OpenSearch Service
+ Amazon Managed Service for Prometheus
+ Amazon RDS for MySQL
+ Amazon RDS for PostgreSQL
+ Amazon S3 CSV 文件
+ Microsoft Azure Monitor
+ Prometheus

 本主题中的若干小节包含有关管理这些数据来源和使用其进行查询的说明。

**创建数据来源连接器。**

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

1. 在导航窗格中，选择**设置**。

1. 选择**指标数据来源**选项卡。

1. 选择**创建数据来源**。

1. 选择所需的来源，然后选择**下一步**。

1. 输入数据来源的名称。

1. 根据所选择的数据来源，输入其他必填信息。这些信息可能包括用于访问数据来源的凭证和数据来源标识信息，例如 Prometheus 工作区名称、数据库名称或 Amazon S3 存储桶名称。关于 AWS 服务，向导会发现资源并将其填充到选择下拉列表中。

   有关您正在使用的数据来源的更多说明，请参阅此过程之后的小节。

1. 要将 CloudWatch 连接到 VPC 中的数据来源，请选择**使用 VPC**，然后选择要使用的 VPC。然后选择子网和安全组。

1. 选择**我确认 CloudFormation 会创建 IAM 资源**。此资源是 Lambda 函数执行角色。

1. 选择**创建数据来源**。

   CloudFormation 堆栈完成创建新来源之后，您刚刚添加的新来源才会出现。要查看进度，可以选择**查看我的 CloudFormation 堆栈的状态**。您也可以使用刷新图标来更新此列表。

   新数据来源出现在此列表中时即可使用。您可以选择**从 CloudWatch 指标中查询**，以开始使用新数据来源进行查询。有关更多信息，请参阅 [创建源自另一个数据来源的指标图表](graph_a_metric.md#create-metric-graph-multidatasource)。

## Amazon Managed Service for Prometheus
<a name="MultiDataSources-Amazon_Managed_Prometheus"></a>

**更新数据来源配置**
+ 您可以通过以下步骤手动更新数据来源：
  + 要更新 Amazon Managed Service for Prometheus 工作区 ID，请更新数据来源连接器 Lambda 函数的 `AMAZON_PROMETHEUS_WORKSPACE_ID` 环境变量。
  + 要更新 VPC 配置，请参阅[配置 VPC 访问（控制台）](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)了解更多信息。

**查询数据来源**
+ 查询 Amazon Managed Service for Prometheus 时，在**多来源查询**选项卡中选择数据来源并选择一个 Amazon Managed Service for Prometheus 连接器后，您可以通过**查询助手**来发现指标和标签并提供简单的 PromQL 查询。您也可以使用 PromQL 查询编辑器来构建 PromQL 查询。
+ CloudWatch 数据来源连接器不支持多行查询。执行查询，或者使用查询创建警报或控制面板小组件时，每个换行符都会替换为空格。在某些情况下，这可能会导致查询无效。例如，如果您的查询包含单行注释，则该查询无效。如果您尝试利用命令行或基础设施即代码中的多行查询来创建控制面板或警报，API 将拒绝该操作，并显示解析错误。

## Amazon OpenSearch Service
<a name="MultiDataSources-Amazon_OpenSearch"></a>

**创建数据来源**

如果为 FGAC 启用 OpenSearch 域，您必须将连接器 Lambda 函数的执行角色映射到 OpenSearch Service 中的用户。有关更多信息，请参阅 OpenSearch Service 文档[管理权限](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-access-control)中的**将角色映射到用户**部分。

如果您的 OpenSearch 域只能在虚拟私有云（VPC）中访问，则需要在 Lambda 函数中手动包含一个名为 `AMAZON_OPENSEARCH_ENDPOINT` 的新环境变量。此变量的值应为 OpenSearch 端点的根域。您可以通过从 OpenSearch 服务控制台列出的域端点中移除 `https://` 和 `<region>.es.amazonaws.com` 来获取此根域。例如，如果您的域端点是 `https://sample-domain.us-east-1.es.amazonaws.com`，则根域为 `sample-domain`。

**更新数据来源**
+ 您可以通过以下步骤手动更新数据来源：
  + 要更新 OpenSearch Service 域，请更新数据来源连接器 Lambda 函数的 `AMAZON_OPENSEARCH_DOMAIN_NAME` 环境变量。
  + 要更新 VPC 配置，请参阅[配置 VPC 访问（控制台）](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)了解更多信息。

**查询数据来源**
+ 查询 OpenSearch Service 时，在**多来源查询**选项卡中选择数据来源后，请执行以下操作：
  + 选择要查询的索引。
  + 选择指标名称（文档中的任何数值字段）和统计数据。
  + 选择时间轴（文档中的任何日期字段）。
  + 选择要应用的筛选条件（文档中的任意字符串字段）。
  + 选择**图表查询**。

## Amazon RDS for PostgreSQL 和 Amazon RDS for MySQL
<a name="MultiDataSources-Amazon_RDS_PostGre_SQL"></a>

**创建数据来源**
+ 如果数据来源只能在 VPC 中访问，则连接器必须包含 VPC 配置，如 [通过向导连接到预构建数据来源](#CloudWatch_MultiDataSources-Connect) 中所述。如果数据来源要连接到 VPC 以获取凭证，则必须在 VPC 中配置端点。有关更多信息，请参阅[使用 AWS Secrets Manager VPC 端点](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)。

  此外，您必须为 Amazon RDS 服务创建 VPC 端点。有关更多信息，请参阅 [Amazon RDS API 和接口 VPC 端点（AWS PrivateLink）](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/vpc-interface-endpoints.html)。

**更新数据来源**
+ 您可以通过以下步骤手动更新数据来源：
  + 要更新数据库实例，请更新数据来源连接器 Lambda 函数的 `RDS_INSTANCE` 环境变量。
  + 要更新用于连接 Amazon RDS 的用户名和密码，请使用 AWS Secrets Manager。您可以在数据来源 Lambda 函数的 `RDS_SECRET` 环境变量中找到用于数据来源的密钥的 ARN。有关更新 AWS Secrets Manager 中的密钥的更多信息，请参阅[修改 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)。
  + 要更新 VPC 配置，请参阅[配置 VPC 访问（控制台）](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)了解更多信息。

**查询数据来源**
+ 查询 Amazon RDS 时，在**多来源查询**选项卡中选择数据来源并选择 Amazon RDS 连接器后，即可使用数据库发现器查看可用的数据库、表和列。您还可以使用 SQL 编辑器创建 SQL 查询。

  您可以在查询中使用以下变量：
  + `$start.iso`：ISO 日期格式的开始时间
  + `$end.iso`：ISO 日期格式的结束时间
  + `$period`：选定时段（以秒为单位）

  例如，您可以查询 `SELECT value, timestamp FROM table WHERE timestamp BETWEEN $start.iso and $end.iso`
+ CloudWatch 数据来源连接器不支持多行查询。执行查询，或者使用查询创建警报或控制面板小组件时，每个换行符都会替换为空格。在某些情况下，这可能会导致查询无效。例如，如果您的查询包含单行注释，则该查询无效。如果您尝试利用命令行或基础设施即代码中的多行查询来创建控制面板或警报，API 将拒绝该操作，并显示解析错误。

**注意**  
如果在结果中找不到日期字段，则将每个数值字段的值相加为单个值，并绘制在所提供的时间范围内。如果时间戳与 CloudWatch 中的选定时段不一致，则系统会使用 `SUM` 自动聚合数据，并且数据将与 CloudWatch 中的时段保持一致。

## Amazon S3 CSV 文件
<a name="MultiDataSources-Amazon_S3_CSV"></a>

**查询数据来源**
+ 查询 Amazon S3 CSV 文件时，在**多来源查询**选项卡中选择数据来源并选择 Amazon S3 连接器后，即可选择 Amazon S3 存储桶和键。

  CSV 文件必须通过以下方式格式化：
  + 时间戳必须位于第一列。
  + 该表必须有标题行。标题用于命名您的指标。时间戳列的标题将被忽略，仅使用指标列的标题。
  + 时间戳必须采用 ISO 日期格式。
  + 指标必须是数值字段。

  ```
  Timestamp, Metric-1, Metric-2, ...
  ```

  以下是示例：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/monitoring/CloudWatch_MultiDataSources-Connect.html)

**注意**  
如果未提供时间戳，系统会将每个指标的值相加为单个值，并在所提供的时间范围内绘制。如果时间戳与 CloudWatch 中的选定时段不一致，则系统会使用 `SUM` 自动聚合数据，并且数据将与 CloudWatch 中的时段保持一致。

## Microsoft Azure Monitor
<a name="MultiDataSources-Azure_Monitor"></a>

**创建数据来源**
+ 您必须提供租户 ID、客户端 ID 和客户端密钥才能连接到 Microsoft Azure Monitor。凭证将存储于 AWS Secrets Manager 内。有关更多信息，请参阅 Microsoft 文档中的 [Create a Microsoft Entra application and service principal that can access resources](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal)。

**更新数据来源**
+ 您可以通过以下步骤手动更新数据来源：
  + 要更新用于连接到 Azure Monitor 的租户 ID、客户端 ID 和客户端密钥，可以在数据来源 Lambda 函数上找到用于数据来源且作为 `AZURE_CLIENT_SECRET` 环境变量的密钥 ARN。有关更新 AWS Secrets Manager 中的密钥的更多信息，请参阅[修改 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)。

**查询数据来源**
+ 查询 Azure Monitor 时，在**多来源查询**选项卡中选择数据来源并选择 Azure Monitor 连接器后，即可指定 Azure 订阅以及资源组和资源。然后，您可以选择指标命名空间、指标和聚合，并按维度进行筛选。

## Prometheus
<a name="MultiDataSources-Prometheus"></a>

**创建数据来源**
+ 您必须提供 Prometheus 端点以及查询 Prometheus 所需的用户名和密码。凭证将存储于 AWS Secrets Manager 内。
+ 如果数据来源只能在 VPC 中访问，则连接器必须包含 VPC 配置，如 [通过向导连接到预构建数据来源](#CloudWatch_MultiDataSources-Connect) 中所述。如果数据来源要连接到 VPC 以获取凭证，则必须在 VPC 中配置端点。有关更多信息，请参阅[使用 AWS Secrets Manager VPC 端点](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)。

**更新数据来源配置**
+ 您可以通过以下步骤手动更新数据来源：
  + 要更新 Prometheus 端点，请将新的端点指定为数据来源 Lambda 函数上的 `PROMETHEUS_API_ENDPOINT` 环境变量。
  + 要更新用于连接到 Prometheus 的用户名和密码，可以在数据来源 Lambda 函数上找到作为 `PROMETHEUS_API_SECRET` 环境变量用于数据来源的密钥的 ARN。有关更新 AWS Secrets Manager 中的密钥的更多信息，请参阅[修改 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)。
  + 要更新 VPC 配置，请参阅[配置 VPC 访问（控制台）](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)了解更多信息。

**查询数据来源**

**重要**  
Prometheus 指标类型与 CloudWatch 指标不同，Prometheus 提供的许多指标都是特意累积的。当您查询 Prometheus 指标时，CloudWatch 不会对数据进行任何其他转换：如果您仅指定指标名称或标签，则将显示累积的值。有关更多信息，请参阅 Prometheus 文档中的[指标类型](https://prometheus.io/docs/concepts/metric_types/)。  
要将 Prometheus 指标（例如 CloudWatch 指标）数据视为离散值，则需要在运行查询之前对其进行编辑。例如，您可能需要向 Prometheus 指标名称添加对比率函数的调用。有关比率函数和其他 Prometheus 函数的文档，请参阅 Prometheus 文档中的 [rate()](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate)。

CloudWatch 数据来源连接器不支持多行查询。执行查询，或者使用查询创建警报或控制面板小组件时，每个换行符都会替换为空格。在某些情况下，这可能会导致查询无效。例如，如果您的查询包含单行注释，则该查询无效。如果您尝试利用命令行或基础设施即代码中的多行查询来创建控制面板或警报，API 将拒绝该操作，并显示解析错误。

## 可用更新的通知
<a name="CloudWatch_MultiDataSources-Future-Updates"></a>

Amazon 可能会不时通知您，推荐您将连接器更新为较新的可用版本，并为您提供操作说明。