コンテンツにスキップ

OpenTelemetry .NET

OTEL を使用して Trace を DataKit に送信する前に、まずコレクターを構成済みであることを確認してください。

バージョン対応

.NET バージョン 関連する Instrumentation release Release notes / 公式互換性の説明 推定されるサポート
.NET 10 v1.13.0 “Support for .NET 10” .NET 10 のサポートが明示的に追加された (GitHub)
.NET 9 v1.13.0 “Fixed rule engine check for .NET 9 to reflect longer support for STS channel” rule engine のサポート判定に .NET 9 が含まれている (GitHub)
.NET 8 v1.2.0 “Add support for .NET 8” .NET 8 のサポートが明示的に追加された (GitHub)
.NET 7 v0.6.0-beta.2、v1.0.1、v1.4.0 v0.6.0-beta.2: “Updated the shared store to correctly support framework roll-forward from net6.0 to net7.0
v1.0.1: “Fixed Rule checking System.Diagnostics.DiagnosticSource version for net7.0 failing on correct configuration”
v1.4.0: “Fix ASP.NET Core traces instrumentation for .NET7”
.NET 7 に関する適応/修正の記録が複数あるため、.NET 7 環境を以前からサポートしていたと判断できる。さらに v1.4.0 では ASP.NET Core traces instrumentation for .NET7 が明示的に修正されている (GitHub) (GitHub)
.NET Framework 4.6.2+ 一般的な互換性の説明 “The minimal supported version of .NET Framework is 4.6.2.” .NET Framework 4.6.2 以上をサポート。4.6.2 未満は非対応 (GitHub)

インストール

$module_url = "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/download/v1.2.0/OpenTelemetry.DotNet.Auto.psm1"
$download_path = Join-Path $env:temp "OpenTelemetry.DotNet.Auto.psm1"
Invoke-WebRequest -Uri $module_url -OutFile $download_path -UseBasicParsing

Import-Module $download_path -Force
Install-OpenTelemetryCore

設定パラメーター

複数の方法でパラメーターを設定できます

グローバル環境変数の構成

管理者 PowerShell で実行してください:

[Environment]::SetEnvironmentVariable("OTEL_SERVICE_NAME", "yishaweb2", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_TRACES_EXPORTER", "otlp", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_METRICS_EXPORTER", "none", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_LOGS_EXPORTER", "none", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_EXPORTER_OTLP_PROTOCOL", "http/protobuf", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_LOG_LEVEL", "debug", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_DOTNET_AUTO_LOGGER", "file", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_DOTNET_AUTO_LOG_DIRECTORY", "C:\ProgramData\OpenTelemetry .NET AutoInstrumentation\logs", "Machine")
[Environment]::SetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT", "http://127.0.0.1:9529/otel", "Machine")

実行後、書き込みが成功したか確認します:

$names = @(
  "OTEL_SERVICE_NAME",
  "OTEL_TRACES_EXPORTER",
  "OTEL_METRICS_EXPORTER",
  "OTEL_LOGS_EXPORTER",
  "OTEL_EXPORTER_OTLP_PROTOCOL",
  "OTEL_LOG_LEVEL",
  "OTEL_DOTNET_AUTO_LOGGER",
  "OTEL_DOTNET_AUTO_LOG_DIRECTORY",
  "OTEL_EXPORTER_OTLP_ENDPOINT"
)

foreach ($name in $names) {
  "{0} = {1}" -f $name, [Environment]::GetEnvironmentVariable($name, "Machine")
}

IIS アプリの場合は、新しいグローバル変数を読み込むために、アプリケーション プールまたは IIS を再起動する必要があります:

Restart-WebAppPool -Name "yishaweb2"

または:

iisreset

IIS で直接構成

powershell notepad C:\Windows\System32\inetsrv\config\applicationHost.config

対応するサイト ノードの下に追加します。この方法は、特定のサイトにのみトレース構成を収集したい場合に適しています。

xml <add name="ys" /> <add name="yishaweb2"> <environmentVariables> <add name="OTEL_SERVICE_NAME" value="yishaweb2" /> <add name="OTEL_TRACES_EXPORTER" value="otlp" /> <add name="OTEL_METRICS_EXPORTER" value="none" /> <add name="OTEL_LOGS_EXPORTER" value="none" /> <add name="OTEL_EXPORTER_OTLP_PROTOCOL" value="http/protobuf" /> <add name="OTEL_LOG_LEVEL" value="debug" /> <add name="OTEL_DOTNET_AUTO_LOGGER" value="file" /> <add name="OTEL_DOTNET_AUTO_LOG_DIRECTORY" value="C:\ProgramData\OpenTelemetry .NET AutoInstrumentation\logs" /> <add name="OTEL_EXPORTER_OTLP_ENDPOINT" value="http://127.0.0.1:9529/otel" /> </environmentVariables> </add>

注意:applicationHost.config / AppPool にも同名の環境変数が設定されている場合、アプリケーション プール レベルの変数が通常 Machine レベルの変数を上書きします。全体をグローバル設定に統一したい場合は、AppPool 内の同名 OTEL_* 設定を削除または変更してください。

フィードバック

このページは役に立ちましたか?