Database Query Performanceの監視 🔗
データベースクエリが遅いことが、サービスの可用性の広範な問題の原因である場合があります。Database Query Performanceを使用すると、データベースクエリがサービスの可用性に与える影響をSplunk APMで直接監視できます。これにより、データベースをインストルメントすることなく、長時間のクエリ、最適化されていないクエリ、負荷の高いクエリを迅速に特定し、それらが原因となっている可能性のある問題を軽減することができます。
Splunk APMは、自動生成されたスパンタグを使用して、データベースをシステム内の推定サービスとして識別します。データベースは、サービスマップ内やサービスのフィルターリスト内、トレースビュー内など、APMのいたるところに表示されます。APMの推定サービスに関する詳細は、推定サービスのパフォーマンスを分析する を参照してください。
Database Query Performanceを使って、Splunk APMはサポート対象のSQLデータベースおよびNoSQLデータベースの一式に対する追加分析を提供します。サポート対象データベースの全リストは サポート対象のデータベース を参照してください。
データベースクエリの分析を提供するために、Splunk APMは各コールが発生するスパンからSQLステートメント(クエリ)をキャプチャします。次にAPMは、それぞれの生クエリの動的要素を静的プレースホルダに置き換えてカーディナリティを最小化し、クエリのパフォーマンスに関する以下のメトリクスを記録します:
合計応答時間
レイテンシの90パーセンタイル(P90)
リクエストの総数
リクエスト数/秒
正規化されたクエリでは、すべての動的要素が ?
の文字に置き換えられます。次のスクリーンショットは、Database Query Performanceのデータベースクエリで動的要素が置換されている状態を示すものです:
注釈
データベース監視における個人を特定できる情報(PII)の取り扱いに関する詳細は、データベースクエリから機密情報を削除する を参照してください。
Database Query Performanceは、データベース管理者(DBA)を対象としたエンドツーエンドのデータベース監視ツールに取って代わるものではありませんが、サービス可用性の問題が特定のデータベースクエリに関連しているかどうかを迅速に判断するのに役立つため、適切な管理者に警告を発することができます。
Database Query Performanceからのインサイトを使用して、サービスの可用性の監視、サービスパフォーマンスの最適化、およびデータベースクエリ自体の監視に関連する以下のシナリオに対処できます:
Database Query Performanceを使用して、サービスの可用性に関連する以下のシナリオに対処できます:
データベースの問題を特定する: サービスのレイテンシやエラー率の増加が、データベースの問題に関連しているかどうかを判断します。関連している場合は、どのデータベースとどの特定のクエリが最も遅延を生じさせているかを素早く特定し、DBAまたは遅いデータベースコールを行っているサービスのオーナーを巻き込んで解決することができます。
基盤となるインフラストラクチャを特定する: 「関連コンテンツ」機能によって、データベースサービスを実行しているホストを確認したり、Infrastructure Monitoringからデータベースサービスに移動したりできます。詳細は、Splunk Observability Cloudの関連コンテンツ を参照してください。
アラートに対応する: サービスの可用性に関するアラートを受信した場合、データベースのレイテンシやエラー率が増加したかどうか、または特定のクエリが遅くなったりボトルネックになったりしているかどうかを一目で確認して、問題の根本原因としてデータベースを迅速に排除できます。
データベースを使ったダッシュボード: ダッシュボードを使用して、平均クエリ応答時間、クエリ実行回数、およびこれらの値の経時的変化を調べることにより、サービスに対する新しいリリースがデータベースインタラクションに影響を与えたかどうかを判断します。
影響を評価する: データベースのレイテンシに関連するアラートを受信したら、影響範囲を迅速に評価し、顧客向けサービスに影響があったかどうかを判断します。
また、Database Query Performanceを使用して、システムの最適化の可能性を特定することもできます。
特定のデータベース内のクエリを比較する: 特定のデータベースのクエリパフォーマンスを経時的に確認することで、クエリのリストを使用して、レイテンシ別または実行回数別で上位のデータベースクエリを特定し、特定のデータベースのパフォーマンスを改善するチャンスを見つけることができます。
特定のクエリを経時的に調査する: 特定のクエリのパフォーマンスを経時的に調べることもできます。これにより、システム内の他の要因がデータベース内の特定のクエリのレイテンシやリクエスト頻度に影響を与えたかどうかを確認し、そのクエリを調整または最適化する必要があるかどうかを判断するのに役立ちます。
Database Query Performanceはデフォルトで利用できるため、必要な操作はは、APMが自動的にデータベース関連のスパンタグのインデックス作成を開始するように、機能を有効化することだけです。APMでデータベースパフォーマンスの監視を開始するには、Database Query Performanceを有効にする を参照してください。
Monitor system health with Database Infrastructure Performance 🔗
マイクロサービスにおける明らかな遅延が発生し、サイト信頼性エンジニアとしてインフラストラクチャをさらに調査すべきかどうか悩んでいるなら、Database Infrastructure Performance を使用して、以下の条件のトリアージを行うことができます:
ロックの競合
I/Oの制限(スループット)
一時的な影響(スパイクまたは持続的な負荷)
Database Infrastructure Performanceパネルは、Splunk Observabilityの APM から、Database Query Performance を使用してMySQL、SQL Server、またはOracleデータベースサービスを選択すると、ナビゲーターサイドバーの下部に表示されます。また、APMメニューの「 サービスマップ 」モジュールからDatabase Infrastructure Performanceパネルにアクセスすることもできます。
パフォーマンスメトリクスの表示は、OpenTelemetry (OTel) Collectorがデータベースに接続されたときに発生するデータベースの関連コンテンツの相関付けによって、有効になります。詳細については、Splunk Observability Cloudの関連コンテンツ を参照してください。Database Infrastructure Performanceパネルを展開すると、関連するInfrastructure Navigatorビューが表示されます。このパネルを使用すると、Splunk APMを離れることなく主要なメトリクスを確認できます。
Database Query Performanceの詳細については、以下のリンクを参照してください:
Database Query Performanceを有効化する方法は、Database Query Performanceを有効にする を参照してください。
MySQLとSQLのトラブルシューティングに焦点を当てたシナリオについては、シナリオ:JaxがDatabase Query Performanceを使用して遅いデータベースクエリを特定する を参照してください。
RedisとNoSQLのトラブルシューティングに焦点を当てたシナリオについては、シナリオ:SkylerがDatabase Query Performanceを使用してRedisのパフォーマンス問題を調査する を参照してください。
Database Query Performanceに関する問題のトラブルシューティングについては、Database Query Performanceのトラブルシューティング を参照してください。
Database Query Performanceに関する参考資料は、Database Query Performanceの参考情報 を参照してください。