APMでは、トランザクショントレースを収集するときに追加のSlow queryスロークエリデータも検出され、それがDatabasesページに表示されることがあります。スロークエリデータとは何か、存在する場所、その設定方法を見てみましょう。
スロークエリデータのサンプリング
トランザクショントレースが報告されると、スロークエリ機能によってトレース内で最も遅いデータベースクエリがサンプリングされ、それらに関するデータがDatabasesページに報告されます。スロークエリデータの内容:
- クエリセグメントの期間
- クエリ/説明プラン(認識される場合)
- ホストおよびインスタンスレベルの詳細(エージェントでサポートされる場合)
スロークエリデータを表示する
スローSQLクエリに関するデータはAPMのUIで表示できます。
one.newrelic.com > All capabilities > APM & Services
に移動します。
アプリを選択します。
Monitor
セクションで、
Databases
をクリックします。
データベースのトランザクションを選択します。
任意のスロークエリをクリックすると詳細が取得されます。
想定していたスロークエリのデータが表示されない場合は、トラブルシューティングのヒントを参照してください。
設定
通常、スロークエリの設定は以下の方法で指定できます。
- エージェントの設定(以下を参照)
- サーバーサイドコンフィグレーション (エージェントで利用可能な場合)
エージェント設定には、サーバーサイドコンフィグレーションよりも多くのオプションが提供されています。スロークエリを構成する方法は、独自のセットアップと環境設定によって異なります。詳細については、エージェント固有のドキュメントを参照してください:
低速クエリのメトリックス
低速クエリのリストには、次のメトリックスが含まれています。
Metric | Description |
---|---|
| サンプリングされたステートメントの平均応答時間(ミリ秒単位)。 |
| サンプル内で特定された低速クエリの件数です。 |
さらに詳細を表示するには、個別のスロークエリを選択します:
Metric | Description |
---|---|
| スタックトレースが、表示されたデータの収集を開始した時刻です。 |
| サンプル内のすべての類似クエリステートメントの実行に要する最大時間です。 |
| クエリを呼び出すアクションまたはプロセスです。 |
| 低速と報告されるクエリです。設定によっては、クエリの一部が難読化されることがあります。 |
| コード内でステートメントが呼び出される位置です。 |
MySQLの場合、当社はクエリ解析を提供します。これは、クエリで発生した内容を説明し、スピードアップするために必要なものが何か説明します。その他のデータベースでは、可能であれば説明プランを表示します。
トラブルシューティング:スロークエリデータなし
スロークエリデータが表示されない場合は、そのデータベースがスローSQL用にインストゥルメントされていない可能性があります。
また、設定に問題がある可能性もあります。
- 低速クエリ機能が無効になっている。
- 閾値の期間の設定が長すぎるためスロークエリのレポートがありません。
- クエリの難読化設定(通常
record_sql
またはそれに類似するもの)がOff
に設定されています。
詳細については設定オプションを参照してください。