はじめに
DBの監視目的に CloudWatch
の Metrics
を取得してみたが、 ActiveTransactions
がそのままでは取得できなかったので取得できるようにしてみた。
ドキュメントを読む
Amazon Aurora メトリクス
メトリクス | 説明 | Applies to |
---|---|---|
ActiveTransactions | Aurora データベースインスタンスで実行されている現在のトランザクションの 1 秒あたりの平均数。 | Aurora では、このメトリクスはデフォルトで有効になっていません。この値の計測を開始するには、特定の DB インスタンス用の DB パラメータグループに innodb_monitor_enable='all' を設定します。 |
Amazon Aurora DB クラスターメトリクスのモニタリング
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Monitoring.html
どうやらDBの設定を有効にしないといけないことが分かりました。
DB設定の有効化(間違い)
Auroraに接続し設定を有効にします。
MuSQL 5.6.17のinnodb_metricsを有効にしてみる を参考に、実際にDBに接続して設定してみます。
$ mysql -h hogehoge.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.7.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SET GLOBAL innodb_monitor_enable = 'all';
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
adminで実行しているのに権限がない…だと?
AWSコンソール上で有効化
どうやらAuroraはコンソール上でパラメータを設定しないといけないようです。(AWSCLIでもいける?)
パラメータグループの作成
RDS作成時のデフォルトのパラメータは変更できないと怒られたので新しくパラメータグループを作ります。
公式に 『DBパラメータグループに』 と指定があるので、タイプは DB Parameter Group
にします。
作成したパラメータグループの編集ボタンを押すと、パラメータがたくさん表示されます。
検索項目に変更したいパラメータを入力すると絞り込めます。
RDSの設定変更
作ったパラメータグループをDBインスタンスのパラメータグループに変更します。
ActiveTransactionsを取得してみる
無事、 ActiveTransactions
を取得することができました。
$ aws cloudwatch get-metric-statistics --region ap-northeast-1 --period 300 \
> --namespace "AWS/RDS" \
> --dimensions "Name=DBClusterIdentifier,Value=hogehoge-db-cluster" \
> --metric-name "ActiveTransactions" \
> --statistics "Average" \
> --start-time `date --iso-8601=seconds --date '5 minutes ago'` \
> --end-time `date --iso-8601=seconds --date '0 minutes ago'` \
> --endpoint-url "https://hogehoge.ap-northeast-1.amazonaws.com"
{
"Datapoints": [
{
"Timestamp": "2020-03-18T01:41:00Z",
"Average": 0.28497748183989613,
"Unit": "Count/Second"
}
],
"Label": "ActiveTransactions"
}