Splunk APMでデプロイ環境を設定する 🔗
デプロイ環境とは、システムまたはアプリケーションの個別のデプロイメントであり、同じアプリケーションの他のデプロイメントの設定と重複しないように構成を設定できます。開発、ステージング、本番環境など、開発プロセスのさまざまな段階に異なるデプロイ環境が使用されることがよくあります。
一般的なアプリケーションのデプロイメントパターンとして、複数の異なるアプリケーション環境があり、それらは互いに直接影響し合わないが、Splunk APMによってすべて監視されている、というものがあります。例えば、品質保証(QA)環境と本番環境、あるいは、異なるデータセンター、地域、クラウドプロバイダーにある複数の異なるデプロイメントなどです。
APMで deployment.environment
スパンタグを使用すると、各スパンが関連付けられているデプロイ環境を識別できます。
deployment.environment
スパンタグの設定 🔗
Splunk APMに送信するスパンのスパンタグとしてデプロイ環境を設定することで、APMのエクスペリエンスを環境別または関心のある環境別でフィルタリングできます。スパンにスパンタグを追加する方法には、アプリケーションの自動インストルメンテーション中にアプリケーションごとに追加する方法と、Splunk Distribution of OpenTelemetry Collector経由で追加する方法の2つがあります。
deployment.environment
タグをスパンに追加すると、このタグは自動的にインデックス化され、Troubleshooting MetricSetsとMonitoring MetricSetsの両方のディメンションになります。APMのMetricSetの詳細については、APMのMetricSetsについて を参照してください。
deployment.environment
タグが設定されていないスパンでは、Splunk APMは、deployment.environment = <unknown>
を想定します。
スパンにスパンタグを追加する方法の詳細は、Splunk APMでスパンタグを使ってスパンにコンテキストを追加する を参照してください。
注釈
どこでスパンタグを追加するかの判断
アプリケーションのインストルメンテーション経由でスパンにスパンタグを追加する場合、アプリケーションレベルのコントロールを最も高めることができます。この場合のトレードオフは、アプリケーションごとのインストルメンテーションを介して属性を追加するために、より時間がかかる可能性があるということです。
ダウンストリームのOpenTelemetry Collectorでスパンタグを追加すると、粒度を犠牲にして時間を節約できます。タグを追加するOpenTelemetry Collectorが受信するデータの100%にタグが適用される場合は、OpenTelemetry Collectorの設定ファイルでタグを追加するのが最速です。ただし、OpenTelemetry Collector経由でタグを受信するスパンを区別するロジックを適用する必要がある場合は、インストルメンテーション経由でアプリケーションレベルでタグを追加する方が速いでしょう。
例えば、K8sのデプロイメントにおいて、複数のアプリケーションが同じホスト上に存在するが、異なる環境(例えば、production
、development
、staging
)にあるという場合、インストルメンテーションライブラリを使用して deployment.environment
タグを設定することで、同じホストからのスパン間で環境を区別することができます。
自動インストルメンテーション経由で deployment.environment
を設定する 🔗
自動インストルメンテーション中にスパンタグを追加する方法の詳細は、アプリケーションコードをインストルメントしてスパンにタグを追加する を参照してください。
Splunk Distribution of OpenTelemetry Collectorで deployment.environment
を設定する 🔗
Splunk Distribution of OpenTelemetry Collectorエージェント設定ファイル には、resource
タグを追加するための deployment.environment
プロセッサーが含まれますが、デフォルトではコメントアウトされています。インストルメンテーション経由ではなくSplunk Distribution of OpenTelemetry Collector経由で resource/add_environment
スパンタグを設定したい場合は、このセクションのコメントアウトを解除して、deployment.environment
プロセッサーをパイプラインに追加してください:
resource/add_environment:
attributes:
action: insert
value: staging/production/...
key: deployment.environment
標準の属性とは異なり、OpenTelemetryでは deployment.environment
タグが resource
プロセッサーで設定されることに注意してください。このタグは通常、アプリケーションが実行されているホストやコンテナに関連付けられているためです。
resource/add_environment
リソースは、設定ファイルの service
セクションの任意のパイプラインに追加することができます。設定サンプル で、この他の例を参照してください。
service:
pipelines:
metrics:
processors: [resource/add_environment]
logs:
processors: [resource/add_environment]
traces:
processors: [resource/add_environment]
Splunk Distribution of OpenTelemetry Collector経由でスパンタグを追加する方法の詳細は、Splunk Distribution of OpenTelemetry Collectorを使用してスパンタグを追加する を参照してください。
特定の環境に対するアラート 🔗
特定の環境に対してディテクターや個別のアラート閾値を設定することで、各環境におけるアプリケーションの動作を監視できます。APMでのディテクターとアラートの使用方法については、Splunk APMでディテクターとアラートを設定する を参照してください。