Splunk Observability Cloud 用に .NET アプリケーションを手動でインストルメンテーションする
スパンにカスタム属性を追加してスパンを手動で生成する場合は、.NET アプリケーションを手動でインストルメンテーションしてください。Splunk Observability Cloud 用に .NET アプリケーションを手動でインストルメンテーションする方法については、続きをお読みください。
Splunk Distribution of OpenTelemetry .NET ゼロコード インストルメンテーションは、独自の手動インストルメンテーションを追加することで構築可能なベースを提供します。ゼロコードと手動のインストルメンテーションの両方を使用することで、アプリケーション、クライアント、およびフレームワークのロジックと機能をより適切にインストルメンテーションできます。
カスタムトレースの作成
カスタムのスパンとトレースを作成するには、以下の手順に従ってください:
-
Splunk Distribution of OpenTelemetry .NET をインストールします。「.NET アプリケーションのインストルメンテーション」を参照してください。
-
System.Diagnostics.DiagnosticSourceの依存関係をプロジェクトに追加します:<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" /> -
ActivitySourceインスタンスを作成します:private static readonly ActivitySource RegisteredActivity = new ActivitySource("Examples.ManualInstrumentations.Registered"); -
Activity(スパン)を作成します。必要に応じて次のタグを設定します。using (var activity = RegisteredActivity.StartActivity("Custom Span Name")) { // Check if the activity is sampled and if full data collection is enabled. // This ensures that tags and other custom attributes are only set when the activity is being recorded. // Note: Ensure that skipping logic based on sampling does not interfere with essential business operations. if(activity?.IsAllDataRequested) { // your logic for custom activity activity.SetTag("foo", "bar1"); } } OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES環境変数を設定してActivitySourceを登録します。値をExamples.ManualInstrumentations.*またはExamples.ManualInstrumentations.Registeredに設定します。この値によってプレフィックス全体が登録されます。Activityを生成するアクションを呼び出し、Activityのトレース ID を書き留め、Splunk APM でトレースを見つけます。トレースツリーに「カスタムスパン名」という表示名を持つスパンが表示されます。
追加情報と例については、「OpenTelemetry 公式ドキュメント」を参照してください。
カスタムメトリクスの作成
カスタムメトリクスを作成するには、以下の手順に従います:
-
System.Diagnostics.DiagnosticSourceの依存関係をプロジェクトに追加します:<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" /> -
Meterインスタンスを作成します:using var meter = new Meter("My.Application", "1.0"); -
Instrumentインスタンスを作成します:var counter = meter.CreateCounter<long>("custom.counter", description: "Custom counter's description"); -
Instrumentの値を更新します:counter.Add(1); -
OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES環境変数を設定して、Meterを OpenTelemetry.AutoInstrumentation に登録します:OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES=My.Application
追加情報と例については、公式の OpenTelemetry ドキュメントの「OpenTelemetry 公式ドキュメント」を参照してください。