Splunk APM の機能とユースケースの実装
機能を最大限に活用するには、設定と最適化に時間をかけたい価値の高い機能がいくつかあります。 Splunk Application Performance Monitoring 。Span タグにインデックスを付けると、そのタグを最大限に活用できます。 Tag Spotlight また、ビジネスワークフローを設定することで、分散環境全体でこれらの重要なフローをよりシームレスに監視し、トラブルシューティングできるようになります。
スパンタグのインデックス作成
span タグを使ってサービスのパフォーマンスを掘り下げてみましょう。スパンタグは、スパンが表す操作に関する追加のコンテキストを提供します。デフォルトのスパンタグには、スパンに関連するエンドポイント、オペレーション、HTTP メソッドなどが含まれます。これらのタグを使用すると、特定のスパンタグを含むスパンのリクエスト、エラー、レイテンシーを分析できます。このコンテキストにより、サービスのパフォーマンスを一目で把握でき、問題の根本原因をより早く発見できます。
スパンタグにインデックスを付けて、以下の方法でサービスを分析します。
- トラブルシューティングサービスマップのインデックス付きタグ別にサービスパフォーマンスを分類してください。
- インデックス付きスパンタグ別にサービスパフォーマンスメトリックのチャートを表示 Tag Spotlight .
- 特定のアクティビティの複数のトレースを次の方法で追跡します ビジネスワークフロー 。
- ► どのスパンタグをインデックスするか、スパンタグにインデックスを付ける方法
-
インフラストラクチャのパフォーマンスに関する洞察を得たり、特定のインシデントに対処したりするために、掘り下げたいスパンタグのみにインデックスを付けます。スパンタグの中には、ある程度のカーディナリティがあっても役に立たないものもあります。たとえば、索引付けなどです。
query_id
ユニークなクエリごとにMetricSetが生成されますが、ほとんどの場合、このレベルのカーディナリティには理由がありません。また、次のような一時的なリソースを表す span タグのインデックス作成は避けてください。container_id
。APMが自動的にインデックスを作成するスパンタグは次のとおりです 。
どのスパンタグにMetricSetを作成する価値があるかを検討してください。環境について尋ねることができる質問をいくつかご紹介します。
-
インシデントが発生したときに確認できる属性はありますか?
Kubernetes を実行している場合は、インデックスを作成できます
k8s.pod.name
特定の Kubernetes ポッドごとのサービスのパフォーマンスを表示できます。 -
複数のバージョンまたはコードのビルドを同時に実行できますか?
タグにインデックスを付けることができます
version
またはbuild_id
アプリケーションの特定のバージョンやビルドに従ってインフラストラクチャーを細分化できます。 -
複数のリージョンまたはフォールトドメインにサービスをデプロイしますか?
特定のサービスのメトリックを表示すると便利な場合があります
region
スパンタグを使うと、特定のリージョンやゾーンのリソースに関する問題を特定できます。
スパンタグを追加するには 2 つの方法があります。1 つはアプリケーションにスパンタグを作成させる方法で、もう 1 つはトレースデータをに送信するときにスパンタグをスパンに追加する方法です。 Splunk OpenTelemetry Collector 。
スパンタグを作成するようにアプリケーションをインストルメントする
スパンタグを作成するためにコードをどのようにインストゥルメントするかは、コードの言語によって異なります。インストルメンテーションレベルでスパンタグを追加する方法について詳しくは、インストルメンテーションしている言語のリソースを参照してください。
OpenTelemetry コレクターによるスパンタグの追加
の設定にスパンタグを含めてください。
batch
OpenTelemetry Collector 設定 YAML ファイル内のプロセッサ。スパンタグは次の方法で作成できます。attributes/newenvironment
これにより、まだタグが付いていないすべてのスパンにスパンタグが追加されます。またはattributes/copyfromexistingkey
これは既存の span タグ値を上書きします。 -
インシデントが発生したときに確認できる属性はありますか?
Kubernetes を実行している場合は、インデックスを作成できます
ビジネスワークフローの確立
ビジネスワークフローとは、特定のアクティビティまたはトランザクションに関連するトレースを集めて開始から終了までの道のりです。各トレースは複数のスパンで構成され、各スパンには識別タグが付いています。
ソフトウェアエンジニア、サイトリライアビリティエンジニア (SRE)、または経営幹部は、ビジネスワークフローを使用してシステム内のトランザクションをエンドツーエンドで監視およびトラブルシューティングできます。たとえば、小売業界では、トレースによってキャプチャされるように、最初の問い合わせから注文処理まで、エンドツーエンドのトランザクションが含まれる場合があります。
特定のサービスまたは同じグローバルスパンタグを含む複数のサービスからのトレースを関連付けるルールを作成できます。ビジネスワークフロールールを設定するには、管理者である必要があります。
- ► ビジネスワークフロールールの設定方法
-
から新しいルールを設定するには Splunk Application Performance Monitoring 次の手順に従ってください。ルールを有効にすることと適用することには違いがあります。有効化/無効化スイッチは、ルールをオンまたはオフにすることで個々のルールに影響します。1 つまたは複数のルールを変更したら、ルールセット全体に作用するボタンを使用して、それらの変更を保存または破棄します。変更は、保存しない限り適用されません。
に移動 [組織の設定] (ナビゲーションメニューの一番下にあります) > [ビジネスワークフロー設定] .クリック 新しい規則 。から次のオプションのいずれかを選択します。 ルールタイプ ドロップダウン:- グローバルタグ。 トレースに関連付けられたスパンのグローバルタグの値に基づいてワークフローを定義します。これにより、スパンを含むトレースとグローバルタグが関連付けられます。
- サービス。 指定したサービスを含むトレースに基づいてワークフローを定義します。トレースがルールに一致すると、サービスのトレースに関連付けられている指定のタグ値またはエンドポイントも表示されます。
- ターゲットグローバルタグ インデックス付きのグローバルタグを選択するよう求められます。タグを選択すると、ルールはすべてのトレースをグローバルタグと関連付けます。ルール名は、選択したグローバルタグに基づいています。
- 対象サービス サービスを選択して、以下を指定するよう求められます。 ワークフロー名のソース これはワークフローについて表示するための追加メタデータです。サービスのトレースを、開始スパンまたはスパンタグ値のエンドポイントごとに関連付けるように選択できます。
ビジネスワークフロールールの設定についてもっと読む こちら 、だけでなく ルール設定の例。 で説明されているビジネスワークフローに関するアラートも作成できます。 Splunk APM でのアラートの管理 。