[アップデート] Amazon DocumentDB(with MongoDB compatibility)でスロークエリログ が出力可能になりました

2019.08.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

本日紹介するアップデートはこちら!

Amazon DocumentDB(with MongoDB compatibility)で、スロークエリログがCloudWatch Logsに出力可能になりました。

DocumentDBでスロークエリログを出力

早速試してみます。スロークエリログを有効化するには、パラメータグループとDBクラスタの両方で設定が必要です。

まずはパラメータグループから。以前にはなかった、3つの項目が追加されています。

  • profiler:スロークエリログの有効/無効。デフォルトでは無効。
  • profiler_threshold_ms:スロークエリログ出力の閾値(ms)。デフォルトは100ms。
  • profiler_sampling_rate:スロークエリログ出力する割合

デフォルトではprofilerがdisabledとなっていますので、enabledに変更しておきます。

続いて、クラスタの設定です。Log exportsの項目がありますので、[Profiler logs] を有効化します。CloudWatch Logsへの出力には[RDS Service Linked Role]が利用されるようです。

この状態で、クエリを発行してみます。スロークエリの閾値に引っかかるように100万件ほどデータを投入し、フルスキャンがかかる(インデックスが有効でない)クエリを実行してみました。

すると、CloudWatch Logsのロググループ、/aws/docdb/(クラスタ名)/profilerにスロークエリログが出力されていました。中身を確認すると、実行時間やクエリコマンドの他に、クライアントやフルスキャン/インデックススキャンも記録されていました。

最後に

Amazon DocumentDB(with MongoDB compatibility)のスロークエリログを試してみました。パフォーマンスの監視や、遅いクエリの特定に役立つ機能かと思います。実際に有効化する際には、ワークロードに適した閾値設定が必要となりますので、利用するアプリケーションを評価の上、適切に設定しましょう。