メインコンテンツへスキップ

Splunk Lantern

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

スパンタグを作成するようにアプリケーションをインストルメントする

スパンタグを作成するためにコードをどのようにインストゥルメントするかは、コードの言語によって異なります。インストルメンテーションレベルでスパンタグを追加する方法について詳しくは、インストルメンテーションしている言語のリソースを参照してください。

ドキュメンテーション インストルメンテーション SDK
Java アプリケーションをインストゥルメントする オープンテレメトリ Java の Splunk ディストリビューション
Node.js アプリケーションをインストルメントする JavaScript 用の SignalFX トレーシングライブラリ
.NET アプリケーションをインストルメントする .NET 用 SignalFX トレーシングライブラリ
Python アプリケーションをインストゥルメントする OpenTelemetry Python の Splunk ディストリビューション
Ruby アプリケーションをインストルメントする Ruby 用 SignalFX トレーシングライブラリ
PHP アプリケーションをインストゥルメントする PHP 用 SignalFX トレーシングライブラリ

OpenTelemetry コレクターによるスパンタグの追加

の設定にスパンタグを含めてください。 batch OpenTelemetry Collector 設定 YAML ファイル内のプロセッサ。スパンタグは次の方法で作成できます。 attributes/newenvironment これにより、まだタグが付いていないすべてのスパンにスパンタグが追加されます。または attributes/copyfromexistingkey これは既存の span タグ値を上書きします。

ビジネスワークフローの確立

ビジネスワークフローとは、特定のアクティビティまたはトランザクションに関連するトレースを集めて開始から終了までの道のりです。各トレースは複数のスパンで構成され、各スパンには識別タグが付いています。

ソフトウェアエンジニア、サイトリライアビリティエンジニア (SRE)、または経営幹部は、ビジネスワークフローを使用してシステム内のトランザクションをエンドツーエンドで監視およびトラブルシューティングできます。たとえば、小売業界では、トレースによってキャプチャされるように、最初の問い合わせから注文処理まで、エンドツーエンドのトランザクションが含まれる場合があります。

特定のサービスまたは同じグローバルスパンタグを含む複数のサービスからのトレースを関連付けるルールを作成できます。ビジネスワークフロールールを設定するには、管理者である必要があります。

► ビジネスワークフロールールの設定方法

から新しいルールを設定するには Splunk Application Performance Monitoring 次の手順に従ってください。ルールを有効にすることと適用することには違いがあります。有効化/無効化スイッチは、ルールをオンまたはオフにすることで個々のルールに影響します。1 つまたは複数のルールを変更したら、ルールセット全体に作用するボタンを使用して、それらの変更を保存または破棄します。変更は、保存しない限り適用されません。

に移動 [組織の設定] (ナビゲーションメニューの一番下にあります) > [ビジネスワークフロー設定] .クリック 新しい規則 。から次のオプションのいずれかを選択します。 ルールタイプ ドロップダウン:
  • グローバルタグ。 トレースに関連付けられたスパンのグローバルタグの値に基づいてワークフローを定義します。これにより、スパンを含むトレースとグローバルタグが関連付けられます。
  • サービス。 指定したサービスを含むトレースに基づいてワークフローを定義します。トレースがルールに一致すると、サービスのトレースに関連付けられている指定のタグ値またはエンドポイントも表示されます。
を選択する ターゲットグローバルタグ または 対象サービス 選択したルールタイプに従います。
  • ターゲットグローバルタグ インデックス付きのグローバルタグを選択するよう求められます。タグを選択すると、ルールはすべてのトレースをグローバルタグと関連付けます。ルール名は、選択したグローバルタグに基づいています。
  • 対象サービス サービスを選択して、以下を指定するよう求められます。 ワークフロー名のソース これはワークフローについて表示するための追加メタデータです。サービスのトレースを、開始スパンまたはスパンタグ値のエンドポイントごとに関連付けるように選択できます。
変更を保存してルールを作成するには、をクリックします。 [作成] 。ルールリストを表示して、作成したルールが有効になっていることを確認します。デフォルトでは、最新のルールが最も優先されます。つまり Splunk Application Performance Monitoring 他のルールを適用する前に新しいルールを適用します。最初に適用したいルールが他にある場合は、新しいルールの優先度を調整してください。新しいルールと優先度リストを適用するには、をクリックします。 [変更を保存]

ビジネスワークフロールールの設定についてもっと読む こちら 、だけでなく ルール設定の例。 で説明されているビジネスワークフローに関するアラートも作成できます。 Splunk APM でのアラートの管理

ユースケースの実装

活用したいと思われる価値の高いユースケースとしては、次のようなものがあります。

また、トラブルシューティングやモニタリングに関する他のユースケースも確認できます。 こちら