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

.NET アプリケーションを Splunk Observability Cloud (OpenTelemetry) にインストルメンテーションする 🔗

Splunk Distribution of OpenTelemetry .NETは、.NET アプリケーション、.NET アプリケーションを実行している Windows サービス、IIS 上にデプロイされた ASP.NET アプリケーションを自動的にインストルメンテーションします。

To get started, use the guided setup, follow the instructions manually, or automatically instrument your application. See Discover telemetry sources automatically for more information.

ガイド付きセットアップを使用してカスタマイズされた指示を生成する 🔗

お使いの環境とアプリケーションの基本的なインストールコマンドをすべて生成するには、.NET OpenTelemetryガイド付きセットアップを使用します。.NET OpenTelemetryガイド付きセットアップにアクセスするには、以下の手順に従ってください:

  1. Splunk Observability Cloud にログインします。

  2. .NET OpenTelemetry ガイド付きセットアップ を開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:

    1. ナビゲーションメニューで、Data Management を選択します。

    2. Go to the Available integrations tab, or select Add Integration in the Deployed integrations tab.

    3. インテグレーションフィルターーメニューで、By Product を選択します。

    4. APM 製品を選択します。

    5. .NET (OpenTelemetry) タイルを選択し、.NET OpenTelemetry ガイド付きセットアップを開きます。

Splunk Distribution of OpenTelemetry .NETを手動でインストールする 🔗

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

公式NuGetパッケージを使用してディストリビューションをインストールするには、NuGetパッケージを使ってOpenTelemetry .NETインストルメンテーションをインストールします。 を参照してください。

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

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

Windows 🔗

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

  2. (オプション)必要に応じて、SignalFx Instrumentation for .NETをアンインストールします。SignalFx Instrumentation for .NETをアンインストールします。 を参照してください。

  3. GitHub のReleases ページか ら Splunk Distribution of OpenTelemetry .NET をダウンロードしてインストールします。例えば

    # Download and import the PowerShell module
    $module_url = "https://github.com/signalfx/splunk-otel-dotnet/releases/latest/download/Splunk.OTel.DotNet.psm1"
    $download_path = Join-Path $env:temp "Splunk.OTel.DotNet.psm1"
    Invoke-WebRequest -Uri $module_url -OutFile $download_path
    Import-Module $download_path
    
    # Install the Splunk distribution using the PowerShell module
    Install-OpenTelemetryCore
    
  4. ディストリビューションを登録します:

    # Set up environment to start instrumentation from the current PowerShell session
    Register-OpenTelemetryForCurrentSession -OTelServiceName "<your-service-name>"
    
  5. 環境とサービスバージョンのリソース属性を設定します:

    # Configure environment and service version for current PowerShell session
    $env:OTEL_RESOURCE_ATTRIBUTES='deployment.environment=<envtype>,service.version=<version>'
    

    属性を設定したら、アプリケーションを実行します。

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

注釈

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

Linux 🔗

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

  2. (オプション)必要に応じて、SignalFx Instrumentation for .NETをアンインストールします。SignalFx Instrumentation for .NETをアンインストールします。 を参照してください。

  3. GitHub のReleases ページか ら、Splunk Distribution of OpenTelemetry .NET のインストールスクリプトをダウンロードしてインストールします。例えば

    curl -sSfL https://github.com/signalfx/splunk-otel-dotnet/releases/latest/download/splunk-otel-dotnet-install.sh -O
    # Install the distribution
    sh ./splunk-otel-dotnet-install.sh
    
  4. 自動インストルメンテーションの有効化:

    # Activate the automatic instrumentation
    . $HOME/.splunk-otel-dotnet/instrument.sh
    
  5. 環境とサービスバージョンのリソース属性を設定します:

    export OTEL_RESOURCE_ATTRIBUTES='deployment.environment=<envtype>,service.version=<version>'
    
  6. アプリケーションを実行します。

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

注釈

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

AlwaysOn Profilingの有効化 🔗

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

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

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

インストルメンテーションの設定 🔗

トレース伝播フォーマットの変更やエンドポイントURLの変更など、.NET自動インストルメンテーションの高度な設定については、Splunk Distribution of OpenTelemetry .NET を設定する を参照してください。

データベースクエリのパフォーマンス設定 🔗

バージョン 1.4.0 以降、.NET OTel インストルメンテーションは、データベースクエリパフォーマンスのためにデータベースクエリを収集します。Database Query Performanceの監視 を参照してください。

SQL文に機密情報が含まれている可能性があります。この動作を設定するには、インストルメンテーション設定OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXTOTEL_DOTNET_AUTO_ENTITYFRAMEWORKCORE_SET_DBSTATEMENT_FOR_TEXT を参照してください。

NuGetパッケージを使ってOpenTelemetry .NETインストルメンテーションをインストールします。 🔗

Splunk Distribution of OpenTelemetry .NET は、公式 NuGet パッケージを通じて自動的にデプロイできます。インストルメンテーションを行うアプリケーションのプロジェクトが NuGet パッケージをサポートしている必要があります。

以下のシナリオでNuGetパッケージを使用します:

  1. アプリケーションのビルドはコントロールできるが、アプリケーションを実行するマシンやコンテナはコントロールできません。

  2. 自己完結型アプリケーションのインストルメンテーションを行っています。.NET ドキュメントの Publish self-contained を参照してください。

  3. NuGetパッケージによる自動インストルメンテーションで開発者の実験を容易にしたいと思っています。

  4. アプリケーションで使用される依存関係と自動インストルメンテーションの間のバージョンの競合を解決する必要があります。

NuGetパッケージを使用してアプリケーションをインストルメンテーションする 🔗

NuGet パッケージを使用してアプリケーションを自動的にインストルメンテーションするには、Splunk.OpenTelemetry.AutoInstrumentation パッケージをプロジェクトに追加します。例:

dotnet add [<PROJECT>] package Splunk.OpenTelemetry.AutoInstrumentation --prerelease

ビルドが失敗し、不足しているインストルメンテーション・パッケージを追加するよう促されたら、インストルメンテーション・パッケージを追加するか、SkippedInstrumentation プロパティに追加して、リストされたパッケージのインストルメンテーションをスキップしてください。例:

<PropertyGroup>
   <SkippedInstrumentations>MongoDB.Driver.Core;StackExchange.Redis</SkippedInstrumentations>
</PropertyGroup>

ターミナルから SkippedInstrumentation プロパティを設定することもできます。; のセパレーターを %3B のように書き換えてください。例:

dotnet build -p:SkippedInstrumentations=StackExchange.Redis%3BMongoDB.Driver.Core

適切なネイティブ・ランタイム・コンポーネントを.NETアプリケーションと一緒に配布するには、dotnet build または dotnet publish を使用してアプリケーションをビルドするために、ランタイム識別子(RID)を指定します。

自己完結型アプリケーションとフレームワーク依存型アプリケーションの両方が、自動インストルメンテーションに対応しています。詳細は、.NETドキュメントの .NETアプリケーション公開の概要 を参照してください。

インストルメンテーションされたアプリケーションを実行する 🔗

ビルドの出力フォルダにあるスクリプトを使用して、自動インストルメンテーションを有効にしてアプリケーションを実行します。

  • Windows では、splunk-launch.cmd <application_executable> を使用します。

  • Linuxでは、splunk-launch.sh <application_executable> を使用します。

If you run the application using the dotnet CLI, add dotnet after the script.

  • Windows では、splunk-launch.cmd dotnet <application> を使用します。

  • Linuxでは、splunk-launch.sh dotnet <application> を使用します。

スクリプトは、あなたが提供したすべてのコマンドラインパラメータをアプリケーションに渡します。

Dockerコンテナ内で実行されているアプリケーションをインストルメンテーションする 🔗

Dockerコンテナ内で動作する.NETアプリケーションをインストルメンテーションするDockerfileの例は、GitHubの splunk/observability-content-contrib リポジトリにあります。

Azure Web Apps をインストルメンテーションする 🔗

Azure Web Apps 上で動作するアプリケーションやサービスをインストルメンテーションするには、Splunk Observability Cloud 用 .NET Azure Web App をインストルメンテーションする を参照してください。

Windows用オフラインインストール 🔗

オフラインのWindowsホストに.NET自動インストルメンテーションをインストールするには、以下の手順に従ってください:

  1. GitHub のReleases ページか ら以下のファイルをダウンロードし、オフライン・サーバーにコピーします:

    • Splunk.OTel.DotNet.psm1

    • splunk-opentelemetry-dotnet-windows.zip

  2. 以下のコマンドを実行して、PowerShellスクリプトを手動でインポートします:

    # Make sure the Download path is correct
    
    Import-Module C:\Users\Administrator\Downloads\Splunk.OTel.DotNet.psm1
    

    プロンプトが表示されたら、Run OnceR を入力します。

  3. インストールコマンドを実行します:

    # Make sure the Download path is correct
    
    Install-OpenTelemetryCore -LocalPath "C:\Users\Administrator\Downloads\splunk-opentelemetry-dotnet-windows.zip"
    

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

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

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

$env:SPLUNK_ACCESS_TOKEN=<access_token>
$env:SPLUNK_REALM=<realm>

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

Splunk レルムを見つけるには、レルムに関する注意事項 を参照してください。

ソースホストの指定 🔗

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

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

.NETインストルメンテーションをアンインストールする 🔗

.NETインストルメンテーションを無効にしてアンインストールするには、以下のコマンドを実行します:

# Run the unregister command for your situation
Unregister-OpenTelemetryForIIS
Unregister-OpenTelemetryForWindowsService
Unregister-OpenTelemetryForCurrentSession

# Uninstall OpenTelemetry for .NET
Uninstall-OpenTelemetryCore

This page was last updated on 2024年06月18日.