OpenTelemetry 와 .NET 애플리케이션 통합
Instana 의 OTLP Exporter 패키지를 사용하면 .NET 및 .NET Framework 애플리케이션에서 OpenTelemetry 를 Instana 와 연동할 수 있습니다. 이 익스포터는 OpenTelemetry 계측 기능과 Instana 의 기본 추적 기능을 원활하게 통합해 줍니다. 이 기능은 OpenTelemetry 추적 정보와 Instana 추적 정보를 자동으로 연동하여, 애플리케이션 전반에 걸쳐 통합된 분산 추적을 제공합니다. 이 제품은 Instana ( AutoTracing, )와 연동되도록 설계되어, OpenTelemetry 의 계측 기능과 Instana 의 자동 추적 기능을 결합하여 사용할 수 있게 해줍니다.
또는, OpenTelemetry 페이지에 설명된 대로 표준 OTLP 익스포터를 구성하여 데이터를 Instana 에이전트로 직접 전송하도록 설정할 수 있습니다. 그러나 Instana OTLP 내보내기 기능은 적절한 추적 정보 연동을 보장하므로, .NET 및 .NET Framework 애플리케이션에서는 이 방법을 사용하는 것이 좋습니다.
개요
Instana OTLP Exporter는 OpenTelemetry 의 전문용 익스포터로, OpenTelemetry 계측 도구와 Instana 간의 원활한 연동을 제공합니다. 다음과 같은 기능을 제공합니다.
- 자동 트레이스 상호 연관성: OpenTelemetry 트레이스와 Instana 트레이스를 상호 연관시킵니다
- 유연한 프로토콜 지원 : gRPC 및 HTTP -Protobuf 프로토콜을 모두 지원합니다
- 설정 가능한 내보내기 모드 : 단순 내보내기 또는 일괄 내보내기 처리 중에서 선택할 수 있습니다
- 환경 변수 설정 : 환경 변수를 통한 설정을 지원합니다
- 사용자 정의 헤더 지원 : OTLP 내보내기 요청에 사용자 정의 헤더를 추가할 수 있습니다
- 일괄 처리 옵션 : 최적의 성능을 위해 일괄 처리 크기, 대기열 크기 및 스케줄링 지연 시간 설정을 지원합니다
InstanaOTLP Exporter는 다음과 같은 이점을 제공합니다:
- 통합 추적 : OpenTelemetry 의 스팬은 Instana 의 추적 정보와 자동으로 연동되어 분산 시스템에 대한 전체적인 시각을 제공합니다
- 원활한 통합 : 코드 변경 없이 기존 OpenTelemetry 계측 도구와 연동됩니다
- 완벽한 가시성 : 모든 추적 데이터가 Instana UI에서 서비스 간 적절한 상관관계와 함께 확인 가능합니다
- 유연한 배포 : 고객의 인프라에 맞춰 다양한 프로토콜과 구성 옵션을 지원합니다
OpenTelemetry 통합에 대한 자세한 내용은 OpenTelemetry 문서를 참조하십시오.
지원 플랫폼
Instana OTLP Exporter는 다음 .NET 플랫폼을 지원합니다:
| 플랫폼 | 지원 상태 |
|---|---|
| .NET Framework 4.6.2 그리고 나중에 | GA |
| .NET 표준 2.0 | GA |
| .NET 5.0 그리고 나중에 | GA |
익스포터 설치
Instana OTLP Exporter NuGet 패키지는 다음 방법 중 하나로 설치할 수 있습니다:
- .NET 프로젝트에 다음을 설치하세요:
dotnet add package Instana.OpenTelemetry.Otlp.Exporter - 프로젝트 파일에 패키지를 추가하세요:
<PackageReference Include="Instana.OpenTelemetry.Otlp.Exporter" Version="<latest-version>" />
익스포터 구성
애플리케이션에서 Instana OTLP 익스포터를 구성하려면, OpenTelemetryTracerProvider 구성에 이를 추가하십시오:
기본 구성
using OpenTelemetry;
using OpenTelemetry.Trace;
using Instana.OpenTelemetry.Otlp.Exporter;
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("MyApplication")
.AddInstanaOtlpExporter()
.Build();
옵션을 포함한 구성
using OpenTelemetry;
using OpenTelemetry.Trace;
using Instana.OpenTelemetry.Otlp.Exporter;
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("MyApplication")
.AddInstanaOtlpExporter(options =>
{
options.Endpoint = new Uri("http://instana-agent:4317");
options.Protocol = InstanaOtlpProtocol.Grpc;
})
.Build();
이 InstanaOtlpExportOptions 클래스는 다음과 같은 구성 속성을 제공합니다:
| 특성 | 유형 | 기본값 | 설명 |
|---|---|---|---|
Endpoint |
Uri |
http://localhost:4317 (5세 이상, .NET )http://localhost:4318/v1/traces (.NET Framework 또는 .NET 표준) |
OTLP 엔드포인트 URL. Instana 에이전트 URL 로 를 대체하십시오 localhost . 설정되지 않은 경우, 환경 변수나 기본값이 사용됩니다. |
Protocol |
InstanaOtlpProtocol |
Grpc (5세 이상, .NET )HttpProtobuf (.NET Framework 또는 .NET 표준) |
사용할 프로토콜: Grpc 또는 HttpProtobuf. 설정되지 않은 경우, 환경 변수나 기본값이 사용됩니다. |
Headers |
IDictionary<string, string> |
빈 사전 | 내보내기 요청에 포함할 사용자 지정 헤더. |
TimeoutMilliseconds |
int |
10000 |
내보내기 요청의 시간 초과 값(밀리초 단위). |
ExportProcessorType |
InstanaExportProcessorType |
Batch |
내보내기 프로세서 유형: Simple 또는 Batch. |
MaxQueueSize |
int |
2048 |
일괄 처리를 위한 최대 대기열 크기. |
MaxExportBatchSize |
int |
512 |
일괄 처리를 위한 최대 일괄 크기. |
ScheduledDelayMilliseconds |
int |
5000 |
배치 내보내기 간격(밀리초 단위). |
Endpoint 구성할 때, 를 사용 중인 Instana 에이전트의 호스트 이름이나 IP 주소로 대체하십시오 localhost . 예를 들어, .NET 5+의 경우 gRPC, 를 사용하고 http://instana-agent:4317 , .NET Framework 또는 http://instana-agent:4318/v1/traces .NET Standard의 경우 HTTP -Protobuf를 사용하십시오.프로토콜 옵션
이 InstanaOtlpProtocol 열거형은 다음 값들을 제공합니다:
Grpc: gRPC 프로토콜을 사용하십시오(.NET5.0 이상에서 지원됨)HttpProtobuf: Protobuf 인코딩을 사용하는 HTTP (모든 플랫폼에서 사용 가능)
Grpc 내보내기 도구가 자동으로 를 사용합니다 HttpProtobuf .내보내기 프로세서 유형
이 InstanaExportProcessorType 열거형은 다음 값들을 제공합니다:
Simple: 작업이 완료되는 즉시 스팬이 생성됩니다Batch: 스팬을 일괄 처리하여 주기적으로 내보냅니다(프로덕션 환경에서 권장됨)
환경 변수를 통한 구성
Instana OTLP Exporter는 환경 변수를 통한 구성을 지원합니다:
| 환경 변수 | 설명 | 예 |
|---|---|---|
| INSTANA_EXPORTER_OTLP_ENDPOINT | OTLP 엔드포인트 URL | http://instana-agent:4317 |
| INSTANA_EXPORTER_OTLP_PROTOCOL | 사용할 프로토콜: grpc 또는 http/protobuf |
grpc |
예: 환경 변수 사용
응용 프로그램을 시작하기 전에 환경 변수를 설정하십시오:
Windows (PowerShell):
$env:INSTANA_EXPORTER_OTLP_ENDPOINT = "http://instana-agent:4317" $env:INSTANA_EXPORTER_OTLP_PROTOCOL = "grpc"Linux/macOS:
export INSTANA_EXPORTER_OTLP_ENDPOINT=http://instana-agent:4317 export INSTANA_EXPORTER_OTLP_PROTOCOL=grpc
명시적인 옵션을 지정하지 않고 익스포터를 구성하려면:
var tracerProvider = Sdk.CreateTracerProviderBuilder() .AddSource("MyApplication") .AddInstanaOtlpExporter() .Build();