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
참고: .NET Framework 및 .NET Standard에서는 HTTP -Protobuf 프로토콜만 지원됩니다. gRPC 프로토콜은 .NET 5.0 버전 이상에서 사용할 수 있습니다.

익스포터 설치

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 (모든 플랫폼에서 사용 가능)
참고: .NET Framework 및 .NET Standard에서는 가 지정되어 있더라도 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
참고: 환경 변수는 해당 옵션이 코드에서 명시적으로 설정되지 않은 경우에만 적용됩니다. 명시적으로 설정된 옵션은 환경 변수보다 우선합니다.

예: 환경 변수 사용

  1. 응용 프로그램을 시작하기 전에 환경 변수를 설정하십시오:

    • 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
  2. 명시적인 옵션을 지정하지 않고 익스포터를 구성하려면:

    var tracerProvider = Sdk.CreateTracerProviderBuilder()
        .AddSource("MyApplication")
        .AddInstanaOtlpExporter()
        .Build();