Docs » Splunk APMでサービス、スパン、トレースを管理する

Splunk APMでサービス、スパン、トレースを管理する 🔗

スパンとトレースは、Splunk APMにおけるアプリケーション監視の支柱を形成します。以下のトピックを使用してスパンとトレースについて理解し、スパンとトレースを効果的に管理することで、APMの完全忠実トレースを最大限に活用できるようになります:

What are services?

サービスは、Splunk APMで監視できるシステムの重要な構成要素です。

What are traces and spans?

トレースは、アプリケーションとその構成サービスによって処理される一意のトランザクションを表す操作の集まりです。スパンは、トレース内の単一の操作を表します。

Splunk APMは、受信したスパンをトレースに収集し、それらを分析して、アプリケーションデータへの完全忠実のアクセスを提供します。トレースのすべてのスパンが取り込まれ分析されると、APMのすべての場所でトレースを表示できるようになります。

次の画像は、トレースとスパンの関係を説明したものです:

この画像は、A、B、C、D、Eの文字でラベル付けされ異なる色がついた一連の棒で表されたトレースを示しています。スパンは、階層関係を視覚的に示すように構成されており、スパンAが親スパン、それに続くスパンが子スパンとなっています。

スパンは、他のスパンを親として参照し、トレースに関与する操作間の関係を示すことがあります。上記の画像では、スパンAが親スパンであり、スパンBは子スパンです。この関係は、例えば、スパンBがキャプチャする操作をトリガーするサービスコールをスパンAが実行するということを示している可能性があります。この画像では、スパンCはさらにスパンBの子で…というように続いています。

Span metadata

各スパンは、そのスパンがキャプチャする操作と、その操作が行われたサービスに関するメタデータを含みます。

スパンのメタデータには、サービスや操作などの情報を含む基本的なメタデータのセットが含まれます。スパンには、その他の操作固有のメタデータを提供するスパンタグも含まれます。詳細については、このトピックの「スパンタグ」のセクションを参照してください。

各スパンは以下の基本的なメタデータを含みます:

スパンタグキー

値の例

説明

サービス

checkoutservice

スパンに関連するサービスの名前

操作

cart/checkout

スパンが表す操作の名前

スパンID

976gh68e482k8s0m

特定のスパンに対する16文字の一意識別子

親ID(該当する場合)

756e643so999cl4

スパンの親スパン(親スパンがある場合)の16文字の一意識別子

時間(開始 - 終了)

2022-01-05T11:51:56.360229 - 2022-01-05T11:51:56.932772

スパンの開始タイムスタンプと終了タイムスタンプ

期間

573ms

スパンの継続時間(秒、ミリ秒、マイクロ秒のいずれか)

相対開始時刻

+972µs

親トレースの開始からこの特定のスパンの開始までのディレイ

Span tags

スパンタグは、キーと値のペアであり、スパンが表す操作に関する追加情報とコンテキストを提供します。キーと値はどちらも文字列で、単一のスパンのスパンタグのキーは一意でなければなりません。スパンタグを使用して、トレースのクエリやフィルタリングを行ったり、トラブルシューティング中にトレースのスパンに関する情報を取得したりすることができます。

OpenTelemetry Collector経由で、またはアプリケーションをインストルメントする際に、カスタムスパンタグを追加できます。スパンタグを使用してサービスのパフォーマンスを分析する方法の詳細は、Splunk APMでスパンタグとMetricSetsを使ってサービスを分析する を参照してください。

スパンタグは、シンプルで信頼できる命名規則に従うと最も使いやすくなります。OpenTelemetryのスパンタグの命名規則に関する詳細は スパンタグの命名規則に従う を参照してください。

注釈

Splunk APMのスパンタグは、Splunk Infrastructure Monitoringのメタデータタグとは異なり、キーと値のペアではなく文字列の形式でメトリクスディメンションに割り当てることができる検索可能なラベルまたはキーワードであることに注意してください。メタデータタグの詳細については、Infrastructure Monitoringタグ を参照してください。

Identities

IDは、Splunk APMのオブジェクトのインデックス化されたスパンタグの一意なセットを表し、常に少なくとも一つのサービスを含みます。

APMのオブジェクトは、同じAPMオブジェクトに対応する複数のIDを生成することがあります。あるAPMオブジェクトに対応するあるスパンのインデックス化されたスパンタグのセットが一意である場合、そのAPMオブジェクトは、そのインデックス化されたスパンタグの一意のセットに対して新しいIDを生成します。

例えば、あるサービス myService は、エンドポイント /foo/bar についてテナントスパンタグ something を報告し、エンドポイント /another/endpoint についてはテナントスパンタグを報告しないとします。 myService は、あるエンドポイントのテナントスパンタグを報告し、別のエンドポイントのテナントスパンタグは報告しないため、指定されたテナントスパンタグを持たないエンドポイントに、強制的にテナントスパンタグ値 unknown を持たせます。 その結果、このサービスは、一意のスパンタグセットを2つ持ち、2つのIDを持つことになります。

IDは、以下のAPMオブジェクトのいずれかを表すことができます:

APMオブジェクト

説明

サービス

Service-1

インストルメント済みでトレースの収集元であるサービスの名前

エンドポイント

Service-1.Endpoint-1

あるサービスの最初のスパン

操作

Service-1.Operation-1

単一サービス内のスパン

エッジ

Service-1.Endpoint-1->Service-2.Endpoint-2

2つのサービスの間のスパン

ワークフロー

Service-1.InitEndpoint-1

トレースが開始するエンドポイント

This page was last updated on 2024年04月25日.