APM Features
15 minutes
前のセクションで見てきたように、サービスで自動検出と設定 (automatic discovery and configuration) を有効にすると、トレース (trace) がSplunk Observability Cloudに送信されます。
これらのトレースにより、Splunkは自動的にService MapsとRED Metricsを生成します。これらは、サービスの動作とサービス間の相互作用を理解するための最初のステップです。
次のセクションでは、トレース自体と、コードに触れることなくサービスの動作を理解するのに役立つ情報を詳しく見ていきます。
5. APM Featuresのサブセクション
APM Service Map

上記のマップは、すべてのサービス間のすべての相互作用を示しています。PetClinic Microserviceアプリケーションが起動して完全に同期するまで数分かかるため、マップはまだ中間状態にある可能性があります。時間フィルタを**-2mと入力してカスタム時間の2分に減らすと役立ちます。画面右上のRefreshボタン(1)**をクリックできます。赤い円で示される初期起動関連のエラーは最終的に消えます。
次に、各サービスで利用可能なメトリクス (metric) を調べるために、リクエスト、エラー、期間(RED)メトリクスダッシュボード (dashboard) を見てみましょう。
この演習では、サービスオペレーション (operation) が高いレイテンシ (latency) やエラー (error) を示している場合に使用する一般的なシナリオを使用します。
依存関係マップでcustomers-serviceをクリックし、Servicesドロップダウンボックス**(1)でcustomers-serviceが選択されていることを確認します。次に、サービス名に隣接するOperationsドロップダウン(2)**からGET /ownersを選択します。
これにより、以下に示すようにGET /ownersでフィルタリングされたワークフロー (workflow) が表示されます:

APM Trace
トレース (trace) を選択するには、Service Requests & Errorsチャート**(1)**の線を選択します。関連するトレースの選択肢が表示されます。
関連するトレースのリストが表示されたら、青い**(2)** Trace ID Linkをクリックします。選択するトレースがServicesカラムに記載されている3つのサービスと同じものであることを確認してください。

これにより、ウォーターフォール (Waterfall) ビュー (view) で選択されたトレースが表示されます:
ここにはいくつかのセクションがあります:
- Waterfall Pane (1):トレースとスパン (span) として表示されるすべてのインストルメント (instrument) された関数が、その期間表示と順序/関係とともに表示されます。
- Trace Info Pane (2):選択されたスパン情報が表示されます(Waterfall Pane内でスパンの周りにボックスでハイライトされています)。
- Span Pane (3):選択されたスパンで送信されたすべてのタグ (tag) を見つけることができます。下にスクロールしてすべてを確認できます。
- Process Pane:スパンを作成したプロセス (process) に関連するタグが表示されます(スクリーンショットに含まれていないため、下にスクロールして確認してください)。
- Trace Properties:ペインの右上にあり、デフォルトでは折りたたまれています。

APM Span
スパン (span) を調べる際、トレーシング (tracing) の上で自動検出と設定 (automatic discovery and configuration) を使用すると、コード変更なしで得られるいくつかの標準機能を見てみましょう:
まず、Waterfall Paneで、以下のスクリーンショットに示すようにcustomers-service:SELECT petclinicまたは類似のスパンが選択されていることを確認してください:

- 基本的なレイテンシ (latency) 情報は、インストルメント (instrument) された関数または呼び出しのバーとして表示されます。上記の例では、17.8ミリ秒かかりました。
- いくつかの類似したスパン**(1)**は、スパンが複数回繰り返される場合にのみ表示されます。この場合、例では10回の繰り返しがあります。
10xをクリックすると、すべてのスパンが順番に表示されるように表示/非表示を切り替えることができます。 - Inferred Services:インストルメントされていない外部システムへの呼び出しは、グレーの「推測された (inferred)」スパンとして表示されます。この例のInferred Serviceまたはスパンは、上記に示すようにMysqlデータベース (Database)
mysql:petclinic SELECT petclinic **(2)**への呼び出しです。 - Span Tags:Tag Paneには、自動検出と設定によって生成された標準タグが表示されます。この場合、スパンはデータベースを呼び出しているため、
db.statementタグ**(3)**が含まれています。このタグは、このスパン中に実行されたデータベース呼び出しで使用されるDBクエリ (query) ステートメント (statement) を保持します。これはDB-Query Performance機能で使用されます。DB-Query Performanceについては次のセクションで見ていきます。 - Always-on Profiling:システムがスパンのライフサイクル (life cycle) 中にプロファイリング (Profiling) データをキャプチャ (capture) するように設定されている場合、スパンのタイムライン (timeline) でキャプチャされたコールスタック (Call Stack) の数が表示されます。上記の例では、
customer-service:GET /ownersスパンに対して18個のコールスタックがあることがわかります。(4)
次のセクションでプロファイリングを見ていきます。
Service Centric View
Splunk APMは、エンジニア (engineer) に1つの集中ビュー (view) でサービスパフォーマンス (performance) の深い理解を提供するService Centric Viewsを提供します。すべてのサービスにわたって、エンジニアはサービスの基盤となるインフラストラクチャ (infrastructure) からのエラー (error) やボトルネック (bottleneck) を迅速に特定し、新しいデプロイ (deploy) によるパフォーマンス低下を特定し、すべてのサードパーティ依存関係の健全性を可視化できます。
api-gatewayのこのダッシュボード (dashboard) を表示するには、左側のメニューからAPMをクリックし、リストのapi-gatewayサービスをクリックします。これにより、Service Centric Viewダッシュボードが表示されます:

インストルメント (instrument) された各サービスで利用可能なこのビューは、Service metrics、Error breakdown、Runtime metrics (Java)、Infrastructure metricsの概要を提供します。