MySQL データベースモニタリングの高度なコンフィギュレーション
events_statements_summary_by_digest
の切り捨て
一部のワークロードでは、performance_schema
のテーブルのメンテナンスが必要です。クエリの統計情報は performance_schema.events_statements_summary_by_digest
テーブルで集計されますが、行数に上限があります。この上限は、performance_schema_digests_size
システム変数により指定されます。テーブルの行がいっぱいの場合、新しいクエリダイジェストは null スキーマおよび null クエリダイジェストで「その他」の行でまとめて追跡されるため、Agent はその行に含まれるクエリの違いを特定できなくなります。
このように、クエリ当たりのメトリクスが正確に追跡されない問題を回避するため、定期的なメンテナンスとしてこのテーブルを切り捨て、すべての新しいクエリが収集されるようにします。
TRUNCATE performance_schema.events_statements_summary_by_digest;
切り捨ての頻度を決定するには、下記のクエリを実行してこの「その他」行に送信されるステートメントの 1 秒あたりの数を確認します。0 より大きい値は、テーブルがいっぱいで切り捨てが必要であることを示します。
SHOW STATUS LIKE 'Performance_schema_digest_lost';
多数の同一テーブルの取り扱い
名前以外のテーブルの定義が同一である複数のテーブル間でデータベースをパーティション化すると、大量のクエリまたは正規化されたクエリが発生します。
SELECT * FROM daily_aggregates_001
SELECT * FROM daily_aggregates_002
SELECT * FROM daily_aggregates_003
このような場合は、replace_digits
オプションを使用してこのクエリを単一の正規化されたクエリとして追跡すると、このクエリのすべてのメトリクスが単一のクエリにロールアップされます。
SELECT * FROM daily_aggregates_?
Datadog Agent のデータベースインスタンスのコンフィギュレーションに replace_digits
オプションを追加します。
init_config:
instances:
- dbm: true
...
replace_digits: true
サンプリングレートの増加
比較的頻度が低い、またはすばやく実行するクエリがある場合は、collection_interval
の値を下げてサンプル収集の頻度を上げ、サンプリングレートを増加します。
Datadog Agent のデータベースインスタンスコンフィギュレーションで collection_interval
を設定します。デフォルト値は 1 で、値を小さくするとインターバルが小さくなります。
instances:
- dbm: true
...
query_samples:
collection_interval: 0.1