Amazon Athena CloudWatch 指标连接器 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Athena CloudWatch 指标连接器

借助 Amazon Athena CloudWatch 指标连接器,Amazon Athena 可以使用 SQL 查询 CloudWatch 指标数据。

有关从 Athena 本身向 CloudWatch 发布查询指标的信息,请参阅 使用 CloudWatch 指标和事件控制成本并监控查询

先决条件

参数

使用本节中的 Lambda 环境变量来配置 CloudWatch 指标连接器。

  • spill_bucket - 为超出 Lambda 函数限制的数据指定 Amazon S3 存储桶。

  • spill_prefix -(可选)默认为指定 spill_bucket(称为 athena-federation-spill)中的子文件夹。我们建议您在此位置配置 Amazon S3 存储生命周期,以删除早于预定天数或小时数的溢出内容。

  • spill_put_request_headers —(可选)用于溢出的 Amazon S3 putObject 请求的请求标头和值的 JSON 编码映射(例如 {"x-amz-server-side-encryption" : "AES256"})。有关其他可能的标头,请参阅《Amazon Simple Storage Service API 参考》中的 PutObject

  • kms_key_id -(可选)默认情况下,将使用经过 AES-GCM 身份验证的加密模式和随机生成的密钥对溢出到 Amazon S3 的任何数据进行加密。要让您的 Lambda 函数使用 KMS 生成的更强的加密密钥(如 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331),您可以指定 KMS 密钥 ID。

  • disable_spill_encryption -(可选)当设置为 True 时,将禁用溢出加密。默认值为 False,此时将使用 AES-GCM 对溢出到 S3 的数据使用进行加密 - 使用随机生成的密钥,或者使用 KMS 生成密钥。禁用溢出加密可以提高性能,尤其是当您的溢出位置使用服务器端加密时。

该连接器还支持 AIMD 拥塞控制,以通过 Amazon Athena Query Federation SDK ThrottlingInvoker构造处理来自 CloudWatch 的节流事件。您可以通过设置以下任何可选环境变量来调整默认的节流行为:

  • throttle_initial_delay_ms - 在第一个拥塞事件之后应用的初始调用延迟。默认为 10 毫秒。

  • throttle_max_delay_ms - 调用之间的最大延迟时间。您可以通过将其分成 1000 毫秒来推导 TPS。默认为 1000 毫秒。

  • throttle_decrease_factor – Athena 降低调用速率的因子。默认值为 0.5。

  • throttle_increase_ms – Athena 减少调用延迟的速率。默认为 10 毫秒。

数据库和表

Athena CloudWatch 指标连接器将您的命名空间、维度、指标和指标值映射到名为 default 的单个架构中的两个表中。

指标表

metrics 表包含由命名空间、集合和名称的组合唯一定义的可用指标。metrics 表包含以下列。

  • 命名空间 - 包含命名空间的 VARCHAR

  • metric_name - 包含指标名称的 VARCHAR

  • 维度 - LISTSTRUCT 对象,由 dim_name (VARCHAR)dim_value (VARCHAR) 组成。

  • 统计数据 - 可用于该指标的 LISTVARCH 统计数据(例如,p90AVERAGE...)。

metric_samples 表

metric_samples 表包含 metrics 表中每个指标的可用指标示例。metric_samples 表包含以下列。

  • 命名空间 - 包含命名空间的 VARCHAR

  • metric_name - 包含指标名称的 VARCHAR

  • 维度 - STRUCT 对象的 LIST,由 dim_name (VARCHAR)dim_value (VARCHAR) 组成。

  • dim_name - 可用于轻松筛选单个维度名称的 VARCHAR 便捷字段。

  • dim_value - 可用于轻松筛选单个维度值的 VARCHAR 便捷字段。

  • 周期 - 表示指标“周期”的 INT 字段,以秒为单位(例如,60 秒指标)。

  • 时间戳 - 表示指标样本纪元时间的 BIGINT 字段(以秒为单位)。

  • - 包含样本值的 FLOAT8 字段。

  • 统计数据 - 包含样本统计类型的 VARCHAR(例如,AVERAGEp90)。

所需权限

要获取有关此连接器所需 IAM policy 的完整详细信息,请查看 athena-cloudwatch-metrics.yaml 文件的 Policies 部分。以下列表汇总了所需的权限。

  • Amazon S3 写入权限 – 连接器需要对 Amazon S3 中的位置具有写入权限,以溢出大型查询的结果。

  • Athena GetQueryExecution – 当上游 Athena 查询终止时,该连接器将使用此权限快速失败。

  • CloudWatch 指标只读 - 连接器使用此权限来查询您的指标数据。

  • CloudWatch 日志写入 - 连接器使用此权限写入其诊断日志。

性能

Athena CloudWatch 指标连接器尝试通过并行扫描查询所需的日志流来优化针对 CloudWatch 指标的查询。在特定时间段、指标、命名空间和维度筛选条件下,谓词下推既在 Lambda 函数内执行,也在 CloudWatch 日志中执行。

许可证信息

Amazon Athena CloudWatch 指标连接器项目已根据 Apache-2.0 许可证获得许可。

另请参阅

有关此连接器的更多信息,请访问 GitHub.com 上的相应站点