APM Service Map

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

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

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

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

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

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