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)
次のセクションでプロファイリングを見ていきます。
