開発、運用、またはDevOpsチームのメンバーである場合、データベースの問題をすばやく調査する必要があります。低速なアプリケーションや失敗したアプリケーションでパフォーマンスの問題やエラーを解決するには、基礎となる原因がデータベースのパフォーマンス、1つ以上のホストまたはサービス、またはその両方に関連しているかどうかを解析する必要があります。
APMのトランザクショントレース、スロークエリトレース、サービスマップを使用して、問題となる特定のクエリ、データベースインスタンス(ホストとポート)、およびデータベース名を調べることができます。APMのインスタンスレベルのメトリックスは、関連する特定のインスタンスにドリルダウンする際に役立ちます。これにより、影響を迅速に評価し、問題を解決するのに役立ちます。
互換性と要件
New Relicは、多様なデータベースとデータベースドライバを対象にインスタンスの詳細を収集します。APMで特定のインスタンスとデータベース情報のタイプを表示する機能は、データベースドライバとエージェントのバージョンによって異なります。
現在エージェントにリストされてないデータストアからインスタンスレベルの情報をリクエストするには、support.newrelic.comまでお問い合わせください。
データストアインスタンスの詳細を使用して、アプリの監視とトラブルシューティングを行う
これらの例を開始点として使用して、アプリケーションと関連するデータストアインスタンス間の接続パフォーマンスを監視し、トラブルシューティングします。この例では、アプリのパフォーマンス問題の根底にある原因がアプリケーション、データベースインスタンスの設定上の問題(インデックスの欠落など)、組織のリソース、またはそれらの組み合わせに関係するかどうかを判断するのに役立つ、New Relicの機能について説明します。
Apdexのパフォーマンスが低下しており、アプリに対するエンドユーザーの経験に何が影響しているのか知りたいとします。APMデータベースページでのスロークエリに気づき、データベースのベンダーツールを使用して、さらに調査するとします。
問題がインスタンスに特有である可能性があるため、この調査では、スロークエリが発生したデータベース名とインスタンスを知る必要があります。例えば、インデックスの欠落が問題である可能性があります。APMのスロークエリトレースを使用して、クエリのパフォーマンスを確認し、データベース名とインスタンスを特定し、記述が不適切または非効率なクエリを特定します。
one.newrelic.com > APM > (アプリケーションを選択) > Databases > (データベース操作を選択) > (スロークエリを選択) >Trace details: ここでは、特定のデータベースとインスタンスを識別するスロークエリトレースの例を示します。
アプリのパフォーマンスに問題があり、APM Transactionsページを使用して疑わしいトランザクションを特定しています。低速なトランザクションのトランザクショントレースを選択すると、データベースの時刻がトランザクションのパフォーマンスの主な要因であることがわかります。
選択したトランザクショントレースのDetailsからデータベース
アイコンを選択して、データベースクエリの情報を確認します。これで、クエリの詳細とクエリが実行された特定のインスタンスの両方が表示されます。ここから、データベースのベンダーツールを使用して問題をさらに診断できます。
one.newrelic.com > APM > (アプリケーションを選択) > Monitor > Databases >(トレースを選択) > Trace details: アプリのパフォーマンス問題に影響を与える、特定のデータベースとインスタンスに関する情報を表示するには、データベースアイコンを選択します。
環境にパフォーマンス問題があり、呼び出し元のアプリケーションと特定のデータベースインスタンスの間に存在するパフォーマンス問題について、トラブルシューティングと評価を行うとします。
アプリとの接続や依存関係(データベースや外部サービスを含む)の概要を知るには、APMサービスマップページを使用します。各データストアタイプに対して、マップ上に独自のノードがあります。選択したサービスマップの詳細から、以下の項目を実行できます。
ご使用のアプリケーションまたは外部サービスとデータストアインスタンスの間の接続について、色分けされた稼働ステータスを確認します。(New Relicは、単純なベースライン手法を使用して過去15分間のパフォーマンスと過去1週間のパフォーマンスの平均を比較します)。
サービスマップの時系列チャートから、特定のアプリまたはインスタンスタイプを選択し、予期しないパフォーマンスの急上昇についてレスポンスタイムまたは1分あたりのリクエスト数(スループット)を確認します。(これは、他のサービスでリソースやスループットに影響を与える異常値や「うるさい隣人」をより簡単に特定するのに役立ちます)。
個々のインスタンスを有効または無効にして、チャートをフィルタリングするデータストアノードを選択します(最大100件のインスタンス)。選択した内容は、マップの保存時に保存されます。
パフォーマンスに予期しない影響を与える可能性のある異常値を特定します。
サービスマップに問題のあるデータベースまたはインスタンスを特定したら、トランザクショントレースとスロークエリ トレース、およびデータベースベンダーツールを使用して問題をさらに診断できます。
one.newrelic.com > APM > (アプリケーションを選択) > Monitor > Service map > (アプリケーションを選択) > (データストアノードを選択): インスタンスノードを選択することで、パフォーマンスの問題をさらに詳しく調べることができます。選択したノード内では、個々のインスタンスを有効または無効にすることができます。また、マップを保存すると、選択内容が保存されます。
顧客のビジネスに悪影響を与える前に、アプリとデータベースインスタンスの間のパフォーマンス問題を通知するには、Alertsを使用します。定義したCritical(危険)の閾値にエスカレートする場合、PagerDuty、webhookなどを介して、適切な担当者に自動的にアラートポリシーを作成することができます。
アラートポリシーの設定の一部として、次の形式で特定のインスタンスのカスタムメトリックを作成します。
Datastore/instance/vendor/host/port
例えば:
Datastore/instance/MySQL/msql-agent-1/12345
その他のヘルプ
さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください: