You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取AWS Aurora Serverless V2单实例中各数据库的资源使用指标?

Aurora Serverless V2(MySQL 8)单数据库级监控方案

可行,但CloudWatch默认仅提供实例级指标,要获取单个数据库的资源占用情况,需要结合MySQL内置工具和自定义CloudWatch指标实现,具体方法如下:

1. 利用MySQL内置Schema实时查询库级指标

Aurora兼容MySQL的Performance Schema和Information Schema,可直接查询单个数据库的连接数、查询统计、资源消耗数据:

(1)查询单个数据库的当前连接数

SELECT 
  DB AS database_name,
  COUNT(*) AS active_connections
FROM information_schema.processlist
WHERE DB IS NOT NULL
GROUP BY DB;

(2)统计单个数据库的查询量与总耗时

SELECT 
  OBJECT_SCHEMA AS database_name,
  COUNT_STAR AS total_queries,
  SUM_TIMER_WAIT/1000000000 AS total_query_time_seconds
FROM performance_schema.events_statements_summary_by_database
WHERE OBJECT_SCHEMA IS NOT NULL
GROUP BY OBJECT_SCHEMA;

(3)查看单个数据库的资源等待事件(判断瓶颈)

SELECT 
  OBJECT_SCHEMA AS database_name,
  EVENT_NAME AS wait_event,
  COUNT_STAR AS wait_count,
  SUM_TIMER_WAIT/1000000000 AS total_wait_time_seconds
FROM performance_schema.events_waits_summary_by_database
WHERE OBJECT_SCHEMA IS NOT NULL
GROUP BY OBJECT_SCHEMA, EVENT_NAME;

注意:若Performance Schema未启用或统计数据不全,需调整实例参数组中的performance_schema相关参数(如performance_schema_max_statement_classes),重启实例后生效。

2. 自定义指标推送到CloudWatch实现持续监控

如果需要长期跟踪每个数据库的指标,可编写脚本定期查询并将数据推送到CloudWatch:

步骤:

  • 配置IAM权限:给执行脚本的实体(EC2实例、Lambda函数等)配置IAM角色,允许cloudwatch:PutMetricData权限,以及Aurora实例的连接权限(推荐用IAM数据库认证)。
  • 编写监控脚本:用Python/Shell连接Aurora,执行上述SQL获取指标,按数据库名称作为维度构造CloudWatch指标数据。
  • 定期执行脚本:用CloudWatch Events(规则触发Lambda)或EC2的cron任务,按固定频率(如5分钟一次)运行脚本。

示例AWS CLI推送命令:

aws cloudwatch put-metric-data \
  --namespace "AuroraPerDatabaseMetrics" \
  --metric-data \
    "[
      {
        \"MetricName\": \"ActiveConnections\",
        \"Dimensions\": [{\"Name\": \"DatabaseName\", \"Value\": \"customer_db_001\"}],
        \"Value\": 15,
        \"Unit\": \"Count\"
      },
      {
        \"MetricName\": \"TotalQueries\",
        \"Dimensions\": [{\"Name\": \"DatabaseName\", \"Value\": \"customer_db_002\"}],
        \"Value\": 2300,
        \"Unit\": \"Count\"
      }
    ]"

3. 利用Aurora高级审计分析库级行为(可选)

启用Aurora高级审计功能,将数据库操作日志发送到CloudWatch Logs,再通过Logs Insights分析单个数据库的查询行为:

  • 在RDS控制台开启高级审计,指定要审计的数据库列表。
  • 将审计日志导出到CloudWatch Logs。
  • 使用Logs Insights查询统计,比如:
fields @timestamp, database_name, query
| filter database_name is not null
| stats count(*) as total_queries, avg(query_duration) as avg_query_time by database_name
| sort total_queries desc

内容的提问来源于stack exchange,提问作者Walter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 05:07:35