Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud (OpenTelemetry) 用 .NET アプリケーションのインストルメンテーション » SignalFx Instrumentation for .NET(非推奨) » Splunk Observability Cloud 用 .NET アプリケーション

注意

SignalFx Instrumentation for .NETは、2024年2月21日をもって非推奨となり、2025年2月21日にサポート終了となります。それまでは、重要なセキュリティ修正とバグ修正のみが提供されます。それ以降は、ライブラリはアーカイブされ、保守されなくなります。

新規に .NET エコシステムをインストルメンテーションするお客様は、Splunk Distribution of OpenTelemetry .NET をご利用ください。既存のお客様は、同様の機能を提供する Splunk Distribution of OpenTelemetry .NET への移行をご検討ください。移行方法については、SignalFx .NET Instrumentationからの移行 を参照してください。

Splunk Observability Cloud 用 .NET アプリケーション 🔗

SignalFx Instrumentation for .NETは、.NETアプリケーション、.NETアプリケーションを実行するWindowsサービス、IIS上にデプロイされたASP.NETアプリケーション、およびAzure App Serviceアプリケーションを自動的にインストルメンテーションします。

開始するには、SignalFx Instrumentation for .NET を手動でインストールする手順に従ってください。

SignalFx Instrumentation for .NETを手動でインストールします。 🔗

ガイド付きセットアップを使用しない場合は、以下の手順に従って SignalFx Instrumentation for .NET を手動でインストールしてください:

.NETアプリケーションのインストルメンテーション 🔗

以下の手順に従って、アプリケーションを自動的にインストルメンテーションしてください:

  1. 条件を満たしているか確認してください。.NETインストルメンテーションの互換性と要件 を参照してください。

  2. お使いのオペレーティング・システムに対応したSignalFx Instrumentation for .NETの最新リリースは、GitHub のReleasesページか らダウンロードしてください。

  3. お使いのオペレーティングシステム用のパッケージをインストールしてください:

    msiexec /i signalfx-dotnet-tracing-<version-here>-x64.msi /quiet
    
  4. 以下の環境変数を設定します:

    # Set the following variables in the process scope
    $Env:COR_ENABLE_PROFILING = "1"
    $Env:COR_PROFILER = "{B4C89B0F-9908-4F73-9F59-0D77C5A06874}"
    $Env:CORECLR_ENABLE_PROFILING = "1"
    $Env:CORECLR_PROFILER = "{B4C89B0F-9908-4F73-9F59-0D77C5A06874}"
    $Env:SIGNALFX_SERVICE_NAME = "<my-service-name>"
    $Env:SIGNALFX_ENV = "<your-environment>"
    
    • 恒久的な自動インストルメンテーションが必要な場合を除き、Windowsのシステム・スコープやユーザー・スコープに環境変数を設定するのは避けます。自動インストルメンテーションにプロセスを含めたり除外したりする方法については、SignalFx Instrumentation for .NETの設定 を参照してください。

  5. (オプション) 自動メトリクス収集を有効にするには、メトリクス・コレクションを有効にする を参照してください。

  6. アプリケーションを実行します。

APM にデータが表示されない場合は、Splunk Observability Cloud の .NET インストルメンテーションのトラブルシューティング を参照してください。

スパンにカスタム属性を追加する必要がある場合、またはスパンを手動で生成する場合は、.NETアプリケーションまたはサービスを手動でインストルメンテーションしてください。Splunk Observability Cloud 用に .NET アプリケーションを手動でインストルメンテーションする を参照してください。

AlwaysOn Profilingの有効化 🔗

AlwaysOn Profiling を有効にするには、環境変数 SIGNALFX_PROFILER_ENABLEDtrue に設定します。

メモリプロファイリングを有効にするには、AlwaysOn Profilingを有効にした後、SIGNALFX_PROFILER_MEMORY_ENABLED 環境変数を true に設定します。

詳細は Splunk APMのAlwaysOn Profilingにデータを取り込む を参照してください。その他の設定については、AlwaysOn Profilingの .NET 設定 を参照してください。

メトリクス・コレクションを有効にする 🔗

自動メトリクス収集を有効にするには、SIGNALFX_TRACE_METRICS_ENABLED 環境変数を true に設定します。

ランタイム・メトリクスを有効にするには、SIGNALFX_RUNTIME_METRICS_ENABLED 環境変数を true に設定します。

インストルメンテーションによって収集されるメトリクスの詳細については、SignalFx Instrumentation for .NETによって収集されたメトリクス を参照してください。その他のメトリクス設定については、メトリクス設定 を参照してください。

注釈

AlwaysOn Profiling が有効になっている場合、ランタイム・メトリクスは常に収集されます。

.NETアプリケーションを実行しているWindowsサービスをインストルメンテーションする 🔗

Windowsサービスをインストルメントするには、インストルメントをインストールし、以下の環境変数を設定します:

$svcName = "MySrv"    # Name of the Windows service you want to instrument
[string[]] $vars = @(
   "COR_ENABLE_PROFILING=1",                                  # Activate .NET Framework Profiler
   "COR_PROFILER={B4C89B0F-9908-4F73-9F59-0D77C5A06874}",     # Select .NET Framework Profiler
   "CORECLR_ENABLE_PROFILING=1",                              # Activate .NET (Core) Profiler
   "CORECLR_PROFILER={B4C89B0F-9908-4F73-9F59-0D77C5A06874}", # Select .NET (Core) Profiler
   "SIGNALFX_SERVICE_NAME=<my-service-name>",                 # Set service name
   "SIGNALFX_ENV=<environment-name>"                          # Set environment name
)
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\$svcName -Name Environment -Value $vars
# Every time you start the service, it will be auto-instrumented.

デフォルトのサービス名の詳細については、デフォルトのサービス名の変更 を参照してください。

IISにデプロイされたASP.NETアプリケーションをインストルメンテーションする 🔗

IIS上で動作するASP.NETアプリケーションをインストルメンテーションするには、インストルメンテーションをインストールし、web.configファイルを編集して以下の設定を追加します。詳細については、設定方法 を参照してください。

web.configファイルの <appSettings> ブロック内に以下の設定を追加します:

<add key="SIGNALFX_SERVICE_NAME" value="service-name" />
<add key="SIGNALFX_ENV" value="environment-name" />

web.configファイルに変更を適用した後、以下のコマンドを実行してIISを再起動します:

Start-Process "iisreset.exe" -NoNewWindow -Wait

場合によっては、マシンを再起動する必要がある可能性があります。

注釈

デフォルトでは、インストーラーは、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services フォルダにある W3SVC と WAS サービス用の Environment レジストリキーを設定することで、.NET Framework 用の IIS インストルメンテーションを有効にします。

Azure App Serviceでアプリケーションをインストルメンテーションする 🔗

Azure App Serviceでアプリケーションやサービスをインストルメンテーションするには、以下の手順に従います:

  1. SignalFx .NET Tracing 拡張機能を探し、アプリケーションにインストールします。詳細は、Azure ドキュメントの Adding Extensions to Web Apps in Azure App Service を参照してください。

  2. 以下のアプリケーション設定を追加します。詳細については、Azure ドキュメントの Configure Apps を参照してください。

    Name

    SIGNALFX_ACCESS_TOKEN

    Splunk アクセストークン。アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。

    SIGNALFX_REALM

    realm は Splunk Observability Cloud レルムで、例えば us0 です。Splunk レルムを見つけるには、レルムに関する注意 を参照してください。

    SIGNALFX_SERVICE_NAME

    サービスまたはアプリケーションの名前。

    SIGNALFX_ENV

    アプリケーションをインストルメンテーションする環境名。

  3. アプリケーションを再起動します。

注釈

待ち時間を短縮し、OTel Collectorの機能を利用するには、エンドポイントURLをAzure VNet上のAzure VMで実行されているCollectorインスタンスに設定します。

Azure App Serviceでバックグラウンドタスクをインストルメンテーションする 🔗

App Service で Azure WebJob をインストルメンテーションする場合、以下の設定を追加します。v0.2.0 システムパスの <extension-version> を .NET インストルメンテーションのバージョンに置き換えます:

Name

SIGNALFX_ACCESS_TOKEN

Splunk アクセストークン。アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。

SIGNALFX_REALM

realm は Splunk Observability Cloud のレルムで、例えば us0 です。アカウントのレルム名を確認するには、Splunk Observability Cloud のナビゲーションメニューを開き、Settings を選択し、ユーザー名を選択します。レルム名は Organizations セクションに表示されます。

SIGNALFX_SERVICE_NAME

サービスまたはアプリケーションの名前。

SIGNALFX_ENV

アプリケーションをインストルメンテーションする環境名。

COR_ENABLE_PROFILING

1

COR_PROFILER

{B4C89B0F-9908-4F73-9F59-0D77C5A06874}

COR_PROFILER_PATH

C:\home\signalfx\tracing\<extension-version>\win-x64\SignalFx.Tracing.ClrProfiler.Native.dll

COR_PROFILER_PATH_32

C:\home\signalfx\tracing\<extension-version>\win-x86\SignalFx.Tracing.ClrProfiler.Native.dll

COR_PROFILER_PATH_64

C:\home\signalfx\tracing\<extension-version>\win-x64\SignalFx.Tracing.ClrProfiler.Native.dll

CORECLR_ENABLE_PROFILING

1

CORECLR_PROFILER

{B4C89B0F-9908-4F73-9F59-0D77C5A06874}

CORECLR_PROFILER_PATH_32

C:\home\signalfx\tracing\<extension-version>\win-x86\SignalFx.Tracing.ClrProfiler.Native.dll

CORECLR_PROFILER_PATH_64

C:\home\signalfx\tracing\<extension-version>\win-x64\SignalFx.Tracing.ClrProfiler.Native.dll

SIGNALFX_DOTNET_TRACER_HOME

C:\home\signalfx\tracing\<extension-version>

SIGNALFX_PROFILER_EXCLUDE_PROCESSES

SnapshotUploader.exe;workerforwarder.exe

SIGNALFX_TRACE_LOG_PATH

C:\home\LogFiles\signalfx\tracing\<extension-version>\dotnet-profiler.log

SIGNALFX_AZURE_APP_SERVICES

0

注意

WebJobをインストルメンテーションする際は、SIGNALFX_AZURE_APP_SERVICES0 に設定してください。アプリケーションとバックグラウンドサービスのために別々の設定を使用できるように、WebJobのために別々のApp Serviceを保持します。

AlwaysOn Profilingの有効化 🔗

AlwaysOn Profilingには、.NET 6.0以上が必要です。

以下のレガシーバージョンの.NETには限定的なサポートしかありません:

  • CPUのプロファイリング:.NET Core 3.1および.NET 5.x

  • メモリのプロファイリング:.NET Core 5.x

AlwaysOn Profiling を有効にするには、以下の手順を実行します:

  • .NETプロセスの SIGNALFX_PROFILER_ENABLED 環境変数を true に設定して、プロファイラーを有効化します。

  • SIGNALFX_PROFILER_MEMORY_ENABLED 環境変数を true に設定して、メモリのプロファイリングを有効化します。

プロファイリングデータ用に別のエンドポイントを設定するなど、その他の設定オプションについては、AlwaysOn Profilingの .NET 設定 を参照してください。

Kubernetesに.NETインストルメンテーションをデプロイする 🔗

.NETインストルメンテーションをKubernetesにデプロイするには、KubernetesダウンワードAPIを設定して、環境変数をKubernetesリソースに公開します。

次の例は、.spec.template.spec.containers.env セクションにエージェント設定を追加して、環境変数を公開するようにデプロイを更新する方法を示しています:

apiVersion: apps/v1
kind: Deployment
spec:
  selector:
    matchLabels:
      app: your-application
  template:
    spec:
      containers:
        - name: myapp
          env:
            - name: SPLUNK_OTEL_AGENT
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: SIGNALFX_ENDPOINT_URL
              value: "http://$(SPLUNK_OTEL_AGENT):9411/api/v2/spans"
            - name: SIGNALFX_SERVICE_NAME
              value: '<name-of-your-service>'
            - name: SIGNALFX_ENV
              value: '<name-of-your-environment>'
            - name: CORECLR_ENABLE_PROFILING
              value: "1"
            - name: CORECLR_PROFILER
              value: '{B4C89B0F-9908-4F73-9F59-0D77C5A06874}'
            - name: CORECLR_PROFILER_PATH
              value: '/opt/signalfx/SignalFx.Tracing.ClrProfiler.Native.so'
            - name: SIGNALFX_DOTNET_TRACER_HOME
              value: '/opt/signalfx'

Splunk Observability Cloud に直接データを送信する 🔗

デフォルトでは、インストルメンテーションはすべてのテレメトリを Splunk Distribution of OpenTelemetry Collectorのローカルインスタンスに送信します。

OTel Collector をバイパスして Splunk Observability Cloud に直接データを送信するには、以下の環境変数を設定します:

$env:SIGNALFX_ACCESS_TOKEN=<access_token>
$env:SIGNALFX_REALM=<realm>

アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。

インジェスト・エンドポイント URL の realm は Splunk Observability Cloud のレルムで、例えば us0 となります。アカウントのレルム名を確認するには、以下の手順に従ってください:

  1. Splunk Observability Cloud のナビゲーションメニューを開きます。

  2. Settings を選択します。

  3. ユーザー名を選択します。

レルム名は Organizations セクションに表示されます。

取り込みAPIエンドポイントの詳細については、APMのトレースの送信 を参照してください。

注意

この手順はスパンとトレースに適用されます。AlwaysOn Profiling データを送信するには、OTel Collector を使用する必要があります。

ソースホストの指定 🔗

エージェントが使用するホストを上書きするには、環境変数 OTEL_RESOURCE_ATTRIBUTES を使用して、ホストの名前を希望するソースに設定します:

$env:OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>

This page was last updated on 2024年05月14日.