データベースとインスタンスレベルのパフォーマンス問題を解析する

開発、運用、またはDevOpsチームのメンバーである場合、データベースの問題をすばやく調査する必要があります。低速なアプリケーションや失敗したアプリケーションでパフォーマンスの問題やエラーを解決するには、基礎となる原因がデータベースのパフォーマンス、1つ以上のホストまたはサービス、またはその両方に関連しているかどうかを解析する必要があります。

New Relic Oneを使用して、ご利用のアプリケーション、サービス、コンテナ、クラウドサービス、ホスト、そしてその他のエンティティがどのような相互関連性の下で機能しているか把握しましょう。

New Relic APMのトランザクショントレーススロークエリトレースサービスマップを使用して、問題となる特定のクエリ、データベースインスタンス(ホストとポート)、およびデータベース名を調べることができます。New Relic APMのインスタンスレベルのメトリックスは、関連する特定のインスタンスにドリルダウンする際に役立ちます。これにより、影響を迅速に評価し、問題を解決するのに役立ちます。

この機能を利用できるかは、 サブスクリプションレベルによります。

互換性と要件

New Relicは、多様なデータベースとデータベースドライバを対象にインスタンスの詳細を収集します。New Relic APMで特定のインスタンスとデータベース情報のタイプを表示する機能は、データベースドライバとNew Relicエージェントのバージョンによって異なります。

現在New Relicエージェントにリストされてないデータストアからインスタンスレベルの情報をリクエストするには、support.newrelic.comまでお問い合わせください。

データストアインスタンスの詳細を使用して、アプリの監視とトラブルシューティングを行う

これらの例を開始点として使用して、アプリケーションと関連するデータストアインスタンス間の接続パフォーマンスを監視し、トラブルシューティングします。この例では、アプリのパフォーマンス問題の根底にある原因がアプリケーション、データベースインスタンスの設定上の問題(インデックスの欠落など)、組織のリソース、またはそれらの組み合わせに関係するかどうかを判断するのに役立つ、New Relicの機能について説明します。

スロークエリトレースの詳細例

Apdexのパフォーマンスが低下しており、アプリに対するエンドユーザーの経験に何が影響しているのか知りたいとします。New Relic APMデータベースページでのクエリが遅いことに気づき、データベースのベンダーツールを使用して、さらに調査するとします。

問題がインスタンスに特有である可能性があるため、この調査では、スロークエリが発生したデータベース名とインスタンスを知る必要があります。例えば、インデックスの欠落が問題である可能性があります。New Relic APMのスロークエリトレースを使用して、クエリのパフォーマンスを確認し、データベース名とインスタンスを特定し、記述が不適切または非効率なクエリを特定します。

APMスローデータベースのクエリの詳細:データベースとインスタンスの情報
rpm.newrelic.com/apm > (アプリケーションを選択) > Databases > (データベース操作を選択) > (低速クエリを選択) >Trace details: ここでは、特定のデータベースとインスタンスを識別するスロークエリトレースの例を示します。
トランザクショントレースの詳細例

アプリのパフォーマンスに問題があり、New Relic APMTransactionsページを使用して疑わしいトランザクションを特定しています。低速なトランザクションのトランザクショントレースを選択すると、データベースの時刻がトランザクションのパフォーマンスの主な要因であることがわかります。

選択したトランザクショントレースのDetailsからデータベース [database icon] アイコンを選択して、データベースクエリの情報を確認します。これで、クエリの詳細とクエリが実行された特定のインスタンスの両方が表示されます。ここから、データベースのベンダーツールを使用して問題をさらに診断できます。

APMトランザクショントレース:データベースとインスタンスの情報
rpm.newrelic.com/apm > (アプリケーションを選択) > Transactions > (トレースを選択) > Trace details: アプリのパフォーマンス問題に影響を与える、特定のデータベースとインスタンスに関する情報を表示するには、データベースアイコンを選択します。
サービスマップの詳細の例

環境にパフォーマンス問題があり、呼び出し元のアプリケーションと特定のデータベースインスタンスの間に存在するパフォーマンス問題について、トラブルシューティングと評価を行うとします。

アプリとの接続や依存関係(データベースや外部サービスを含む)の概要を知るには、APMサービスマップページを使用します。各データストアタイプに対して、マップ上に独自のノードがあります。選択したサービスマップの詳細から、以下の項目を実行できます。

  • ご使用のアプリケーションまたは外部サービスとデータストアインスタンスの間の接続について、色分けされた稼働ステータスを確認します。(New Relicは、単純なベースライン手法を使用して過去15分間のパフォーマンスと過去1週間のパフォーマンスの平均を比較します)。
  • サービスマップの時系列チャートから、特定のアプリまたはインスタンスタイプを選択し、予期しないパフォーマンスの急上昇についてレスポンスタイムまたは1分あたりのリクエスト数(スループット)を確認します。(これは、他のサービスでリソースやスループットに影響を与える異常値や「うるさい隣人」をより簡単に特定するのに役立ちます)。
  • 個々のインスタンスを有効または無効にして、チャートをフィルタリングするデータストアノードを選択します(最大100件のインスタンス)。選択した内容は、マップの保存時に保存されます。
  • パフォーマンスに予期しない影響を与える可能性のある異常値を特定します。

New Relicのサービスマップに問題のあるデータベースまたはインスタンスを特定したら、New Relicのトランザクショントレースと低速のクエリトレース、およびデータベースベンダーツールを使用して問題をさらに診断できます。

screen-instance-details-in-service-maps.png
rpm.newrelic.com/apm > Service maps > (マップを選択) > (データストアノードを選択)インスタンスノードを選択することで、パフォーマンスの問題をさらに詳しく調べることができます。選択したノード内では、個々のインスタンスを有効または無効にすることができます。また、マップを保存すると、選択内容が保存されます。
Insightsのダッシュボードとウィジェットの例

データベースインスタンスの詳細をサポートするNew Relic APMエージェントを使用している場合、New Relic Insightsを使用すれば、レスポンスタイムやスループットなどのタイムスライスメトリックスを報告できます。さらに、パフォーマンスの問題や傾向を視覚化するカスタムダッシュボードメトリックウィジェットを作成して共有することもできます。

インスタンスのパフォーマンス例に関するカスタムメトリックスの警告

顧客のビジネスに悪影響を与える前に、アプリとデータベースインスタンスの間のパフォーマンス問題を通知するには、New Relic Alertsを使用します。定義したCritical(危険)の閾値にエスカレートする場合、PagerDuty、webhookなどを介して、適切な担当者に自動的にアラートポリシーを作成することができます。

アラートポリシーの設定の一部として、次の形式で特定のインスタンスのカスタムメトリックを作成します。

Datastore/instance/vendor/host/port

例えば:

Datastore/instance/MySQL/msql-agent-1/12345

その他のヘルプ

その他のドキュメンテーションには、以下の資料があります。

  • New Relic APM概要ページ(New Relic APMのホストパフォーマンスのサマリーを表示し、New Relic Infrastructureにリンクして詳細情報を調べます)
  • New Relic Infrastructure 計算ページ(組織のリソースのコンテキストからホストまたはインスタンス関連のパフォーマンスの問題を表示する)

推奨する詳細情報: