Splunk APM

20 minutes
ペルソナ

あなたはバックエンドの開発者で、SRE によって発見された問題の調査を支援するように呼ばれました。SRE はユーザーエクスペリエンスが悪いと特定し、その問題の調査をお願いしています。

RUM トレース(フロントエンド)から APM トレース(バックエンド)にジャンプすることで、完全な End to End の可視性の力を理解できるでしょう。すべてのサービスが Splunk Observability Cloud によって視覚化、分析、異常およびエラーの検出が可能となるテレメトリ(トレースやスパン)を送信しています。

RUM と APM は同じコインの両側面です。RUM はアプリケーションのクライアント側のビューであり、APM はサーバー側のビューです。このセクションでは、APM を使用してどこに問題が潜んでいるかドリルダウンし、特定します。

Last Modified 2024/04/05

6. Splunk APMのサブセクション

1. APM Explore

APM サービスマップは、APM で計装されたサービス、および、存在が推測されるサービス間の依存関係とつながりを表示します。このマップは、時間範囲、環境、ワークフロー、サービス、およびタグのフィルタで選択した内容に基づいて動的に生成されます。

RUM ウォーターフォールで APM リンクをクリックすると、サービスマップビューに自動的にフィルタが追加され、その Workflow Namefrontend:/cart/checkout)に関与したサービスが表示されます。

Service Map でワークフローに関係するサービスが表示されます。画面右側の Business Workflow の下には、選択したワークフローのチャートが表示されます。Service MapBusiness Workflow のチャートは同期されています。Service Map 内であるサービスを選択すると、Business Workflow ペインのチャートが更新され、選択したサービスのメトリクスが表示されます。

APM Business Workflow APM Business Workflow

Exercise
  • paymentservice を Service Map でクリックしてください。

APM Explore APM Explore

Splunk APM は、発生している問題をリアルタイムに確認し、特定のサービス、特定のエンドポイント、またはこれらを支えるインフラストラクチャに関連しているかどうかを迅速に判断するために利用できる、メトリクスをチャートとして可視化する一連の組み込みダッシュボードを提供しています。これを詳しく見てみましょう。

Exercise
  • paymentservice パネルの右上にある View Dashboard をクリックしてください。
Last Modified 2024/02/05

2. APM Service Dashboard

Service Dashboard

APM サービスダッシュボードは、サービス、エンドポイント、および Business Workflow のエンドポイントスパンから生成されたモニタリングメトリクセットに基づいて、リクエスト、エラー、および所要時間(RED)メトリクスを提供します。ダッシュボードを下にスクロールすると、基盤や Kubernetes に関連するメトリクスも表示され、インフラストラクチャに問題があるかどうかを判断するのに役立ちます。

Service Dashboard Service Dashboard

Exercise
  • Time の枠 (1) を確認してください。ダッシュボードには、選択したアプリケーションの APM トレースによって取得された、処理にかかった時間に関するデータのみが表示されています(チャートは静的です)。
  • Time の枠に -1h と入力し、Enter キーを押します。
  • Request rateRequest latency (p90)Error rate の Single Value チャートは 10 秒ごとに更新されており、引き続き多くのエラーが発生していることを示しています。
  • これらのチャートはパフォーマンスの問題を迅速に特定するのに非常に役立ちます。このダッシュボードを使用してサービスのヘルスステータスを監視したり、ダッシュボードを作成・構成する際のベースとして利用することができます。
  • これらのチャートをいくつか、後の演習で使用したいと思います。
    • Request rate Single Value チャート(2)で をクリックし、Copy を選択します。これにより、ページの右上(3)の部分に 1 が表示され、クリップボードにコピーされたチャートがあることを示しています。
    • Request rate の折れ線グラフ(4)では、Add to clipboard アイコンをクリックしてクリップボードに追加するか、 を使用して Add to clipboard を選択します。
  • ページの右上(3)の部分に2が表示されていることを確認してください。
  • それでは、エクスプロービューに戻りましょう。ブラウザの “戻る” ボタンをクリックしてください。

APM Explore APM Explore

Exercise

サービスマップで paymentservice の上にカーソルを合わせてください。ポップアップして表示されたサービスに関するチャートからどんなことがわかりますか?

エラー率が非常に高いです。

APM Service Chart APM Service Chart

このエラー率にパターンがあるかどうかを理解する必要があります。そのためには、Tag Spotlight が便利です。

Last Modified 2024/04/05

3. APM Tag Spotlight

Exercise
  • paymentservice のタグを表示するには、paymentservice をクリックし、右側のメニューパネルで Tag Spotlight をクリックします(画面解像度によってはスクロールが必要な場合があります)。
  • Tag Spotlight に移動したら、Show tags with no values のトグルスイッチがオフになっていることを確認してください。

APM Tag Spotlight APM Tag Spotlight

Tag Spotlight には、2つの表示モードがあります。デフォルトは Request/Errors で、もう1つは Latency です。

Request/Error チャートでは、リクエストの合計数、エラーの合計数、および根本原因のエラーが表示されます。Latency チャートでは、p50、p90、および p99 のレイテンシが表示されます。これらの値は、Splunk APM がインデックス化された各スパンタグに対して生成する Troubleshooting MetricSets(TMS)に基づいています。これらは RED メトリクス(リクエスト、エラー、および所要時間)として知られています。

Exercise

どのチャートが問題を特定するタグでしょうか?

version チャートです。v350.10 に対するリクエストの数はエラーの数と一致しています。

  • これで、問題を引き起こしている paymentservice のバージョンを特定したので、エラーに関する詳細情報を見つけることができるかどうかを確認してみましょう。ページの上部にある ← Tag Spotlight をクリックして Service Map に戻ります。
Last Modified 2024/04/05

4. APM Service Breakdown

Exercise
  • 右側のペインで Breakdown をクリックします。
  • リストから tenant.level を選択します。これは顧客のステータスを表すタグであり、顧客のステータスに関連するトレンドを見るのに役立ちます。
  • Service Map で gold をクリックして選択します。
  • さらに Breakdown をクリックし、version を選択します。これはサービスのバージョンを示すタグです。
  • silverbronze についても同様の手順を繰り返します。

確認できた内容から、どんな結論を得ることができますか?

すべてのテナントがバージョン v350.10 による影響を受けている

paymentservicegoldsilverbronze の3つのサービスに分けて表示されていることが分かるでしょう。各テナントはバージョン (v350.10v350.9) ごとのサービスに分けられています。

APM サービスのBreakdown APM サービスのBreakdown

Exercise
  • 3つの赤い円を囲む外側のメインボックスをクリックします。ボックスがハイライト表示されます。
スパンのタグ

スパンに付与されるタグに基づいてサービスの分析は非常に強力な機能です。これにより、異なる顧客、異なるバージョン、異なる地域などに対するサービスのパフォーマンスを確認できます。この演習では、paymentservicev350.10 がすべての顧客に問題を引き起こしていることが判明しました。

次に、トレースを詳細に調査して問題の原因を見つける必要があります。

Last Modified 2024/04/05

5. APM Trace Analyzer

Splunk APM では、NoSample™ の End to End の可視性が提供され、すべてのサービスのトレースがキャプチャされます。このワークショップでは、Order Confirmation ID がタグとして利用可能です。これにより、ワークショップの前半で遭遇したユーザーエクスペリエンスの問題のトレースを正確に検索できます。

Trace Analyzer

Splunk Observability Cloud は、アプリケーションモニタリングデータを探索するための複数のツールを提供しています。Trace Analyzer は、未知の問題や新しい問題を調査するために高カーディナリティで粒度の細かなデータを検索・探索するシナリオに適しています。

Exercise
  • paymentservice の外側のボックスを選択した状態で、右側のペインで Traces をクリックします。
  • Trace Analyzer を使用していることを確認するために、Switch to Classic View が表示されていることを確認します。表示されていない場合は、Switch to Trace Analyzer をクリックします。

APM Trace Analyzer APM Trace Analyzer

Exercise
  • 表示する時間枠として Last 1 hour を選択します。
  • ほとんどのトレースがエラー(赤)であり、エラーのない(青の)トレースは限られています。
  • Sample Ratio1:10 ではなく 1:1 に設定されていることを確認します。
  • Add filters をクリックし、orderId を入力し、リストから orderId を選択します。
  • ワークショップの前半でショッピングを行った際の Order Confirmation ID を貼り付けて Enter キーを押します。入力する ID が分からない場合は、インストラクターにお問い合わせください。 Traces by Duration Traces by Duration

これで、あなたが体験した、チェックアウト処理で長時間待たされユーザーエクスペリエンスを損ねていた処理のトレースを絞り込むことができました。このトレースは最大13ヶ月間アクセスすることができます。そのため、例えば、開発者は後日この問題に再び取り組む際にも、このトレースを確認できるでしょう。

Exercise
  • リスト内のトレースをクリックします。

次に、トレースのウォーターフォールを見ていきましょう。

Last Modified 2024/02/15

6. APM Waterfall

Trace Analyzer から Trace Waterfall に移動しました。トレースは、同じトレース ID を共有するスパンの集合であり、アプリケーションとその構成サービスによって処理される一意のトランザクションを表します。

Splunk APM の各スパンは、単一の操作をキャプチャします。Splunk APM は、スパンに記録された操作がエラーとなった場合、スパンをエラースパンと見なします。

Trace Waterfall Trace Waterfall

Exercise
  • ウォーターフォール内の paymentservice:grpc.hipstershop.PaymentService/Charge スパンの隣にある ! をクリックします。

スパンのメタデータに記録されているエラーメッセージとバージョンは何ですか?

Invalid Requestv350.10 です。

問題を引き起こしている paymentservice のバージョンを既に特定しているので、エラーに関してより詳細な情報を見つけられるか、やってみましょう。ここで Related logs が役立ちます。

Related Logs Related Logs

関連するコンテンツは、特定のメタデータによって実現されており、これにより、APM, Infrastructure Monitoring, Log Observer が Splunk Observability Cloud 内でフィルター条件を共有することで可能になっています。Related Logs が機能するには、ログに次のメタデータが必要です。

  • service.name
  • deployment.environment
  • host.name
  • trace_id
  • span_id
Exercise
  • Trace Waterfall の一番下で Logs (1) と書かれた部分をクリックします。これにより、このトレースに紐づく Related Logs があることが分かります。
  • ポップアップ内の Logs for trace XXX エントリをクリックすると、トレース全体と関係のあるログが Log Observer で表示されます。