콘텐츠로 이동

OpenTelemetry .NET

OTEL을 사용해 Trace를 DataKit으로 보내기 전에, 먼저 수집기 구성이 완료되었는지 확인해 주세요.

버전 지원

.NET 버전 관련 Instrumentation release Release notes / 공식 호환성 설명 추론 가능한 지원
.NET 10 v1.13.0 “.NET 10 지원” .NET 10 지원이 명시적으로 추가됨 (GitHub)
.NET 9 v1.13.0 “STS 채널의 더 긴 지원을 반영하도록 .NET 9에 대한 rule engine 확인을 수정함” rule engine의 지원 판단에 .NET 9가 포함됨 (GitHub)
.NET 8 v1.2.0 “.NET 8 지원 추가” .NET 8 지원이 명시적으로 추가됨 (GitHub)
.NET 7 v0.6.0-beta.2、v1.0.1、v1.4.0 v0.6.0-beta.2: “net6.0에서 net7.0으로의 framework roll-forward를 올바르게 지원하도록 shared store를 업데이트함”
v1.0.1: “net7.0에서 올바른 설정에서도 실패하던 System.Diagnostics.DiagnosticSource 버전 검증 Rule 문제를 수정함”
v1.4.0: “.NET7의 ASP.NET Core traces instrumentation 수정”
.NET 7 관련 적응/수정 기록이 여러 차례 있음; .NET 7 시나리오를 지원했던 것으로 판단할 수 있으며, v1.4.0에서 .NET7의 ASP.NET Core traces instrumentation 수정이 명시됨 (GitHub) (GitHub)
.NET Framework 4.6.2+ 일반 호환성 설명 “.NET Framework의 최소 지원 버전은 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

해당 사이트 노드 아래에 추가합니다. 이 방식은 일부 사이트에 대해서만 Trace 구성을 수집할 때 적합합니다.

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_* 구성을 삭제하거나 수정하세요.

문서 평가

이 페이지가 도움이 되었나요?