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 を再起動する必要があります:
または:
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_* 設定を削除または変更してください。