Amazon Athena CloudWatch 指标连接器 - Amazon Athena

Amazon Athena CloudWatch 指标连接器

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

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

先决条件

参数

使用本节中的 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 上的相应站点