z/OS 에서 .NET 추적 설정하기

수동 계측을 사용하여 z/OS 시스템에서 .NET 추적을 설정할 수 있습니다. 플랫폼의 제한 사항으로 인해 z/OS 에서는 자동 인스트루멘테이션 기능을 사용할 수 없습니다.

.NET 모니터링의 작동 방식에 대한 자세한 내용은 ‘.NET ’ 모니터링 작동 방식을 참조하십시오.

시작하기 전에

z/OS 에서 .NET Core 추적을 설정하려면 다음 단계를 따르십시오:

  • z/OS 시스템에서 Instana 에이전트가 실행 중인지 확인하십시오. Instana 문서의 “ z/OS 에 에이전트 설치” 섹션을 참조하십시오.
  • 사용 중인 ‘.NET Core ’ 버전이 지원되는지 확인하십시오.
  • 지원 정보를 확인하세요.

.NET 추적 활성화

z/OS 시스템에서는 CoreCLR 프로파일링 API 기능이 지원되지 않습니다. 따라서 이 플랫폼에서는 IL 재작성 및 네이티브 프로파일러 연결을 통한 자동 계측 기능을 사용할 수 없습니다.

이러한 아키텍처상의 제약으로 인해, z/OS 에서 .NET 애플리케이션에 대한 추적을 활성화하려면 수동 계측을 사용해야 합니다.

Instana z/OS 에서 수동 계측을 위한 두 가지 방법을 지원합니다:

  • 방법 1: Instana SDK 사용 : Instana 모니터링만 필요한 경우 이 SDK를 사용하세요. 직접 통합이 가능하며 설정도 더 간편합니다.
  • 방법 2: OpenTelemetry SDK 사용 : 벤더에 구애받지 않는 계측 기능이 필요하거나 서로 다른 가시성 백엔드 간에 유연하게 전환할 수 있는 기능이 필요한 경우 이 SDK를 사용하십시오.

방법 1: Instana SDK 사용

Instana 추적 SDK를 사용하여 사용자 지정 스팬과 추적을 생성하세요.

Instana SDK를 사용하여 추적을 활성화하려면 다음 단계를 따르세요:

  1. 프로젝트에 NuGet 패키지를 Instana.Tracing.Core.Sdk 추가하세요.
  2. 애플리케이션 코드에서 사용자 정의 스팬을 생성하려면:

    using Instana.Tracing.Sdk.Spans;
    
    // Create an entry span for incoming requests
    using (var span = CustomSpan.Create(SpanType.ENTRY, "operation-name"))
    {
        span.SetServiceName("your-service-name");
        span.SetEndpointName("endpoint-name");
        span.SetData("custom.key", "custom-value");
    
        // Your application logic here
    }
    
    // Create an intermediate span for internal operations
    using (var span = CustomSpan.Create(SpanType.INTERMEDIATE, "internal-operation"))
    {
        span.SetServiceName("your-service-name");
        span.SetEndpointName("operation-name");
    
        // Your internal logic here
    }
  3. 선택 사항: 애플리케이션 시작 코드(일반적으로 Program.cs)에서 ` Instana ` 추적기를 구성하여 추적 결과에 표시될 기본 서비스 및 엔드포인트 이름을 설정합니다:

    using Instana.Tracing.Sdk;
    
    // Configure Instana Tracer
    TracerConfiguration.ServiceName = "your-service-name";
    TracerConfiguration.EndpointName = "your-endpoint-name";
  4. 애플리케이션을 배포하고 실행합니다. 애플리케이션 엔드포인트로 트래픽을 생성합니다.
  5. 트레이스가 수집되고 있는지 확인하십시오:

    1. Go Instana UI의 [애플리케이션] > [서비스] 로 이동합니다.
    2. 서비스 이름을 찾아 해당 서비스의 추적 정보와 메트릭을 확인하세요.

Instana .NET Core 추적 SDK에 대한 자세한 내용은 .NET 또는 .NET Core 추적 SDK를 참조하십시오.

방법 2: OpenTelemetry SDK 사용

OpenTelemetry SDK와 OTLP 익스포터를 사용하여 Instana 으로 트레이스를 전송하세요.

<agent-root-path>/agent/etc/instana/configuration.yamlOpenTelemetry SDK를 사용하기 전에, 에이전트 구성 파일에서 다음 설정을 활성화하여 Instana 에이전트가 OpenTelemetry 데이터를 수신하도록 구성하십시오:

# Enable OpenTelemetry
com.instana.plugin.opentelemetry:
  grpc:
    enabled: true
  http:
    enabled: true

# Enable .NET Core AutoTracing
com.instana.plugin.netcore:
  tracing:
    enabled: true

OpenTelemetry SDK를 사용하여 추적을 활성화하려면 다음 단계를 따르십시오:

  1. 프로젝트에 필요한 OpenTelemetry NuGet 패키지를 추가하세요:

    • OpenTelemetry.Extensions.Hosting
    • OpenTelemetry.Exporter.OpenTelemetryProtocol
    • OpenTelemetry.Exporter.Console (콘솔 기반 로깅이 필요한 경우)
    • OpenTelemetry.Instrumentation.AspNetCore ( ASP.NET Core 웹 애플리케이션용)
    • OpenTelemetry.Instrumentation.Http ( HTTP 클라이언트 계측용)
  2. Program.cs애플리케이션 시작 코드(일반적으로 )에서 ` OpenTelemetry `를 구성하십시오:

    using OpenTelemetry.Resources;
    using OpenTelemetry.Trace;
    
    var builder = WebApplication.CreateBuilder(args);
    
    // Configure OpenTelemetry
    builder.Services.AddOpenTelemetry()
        .ConfigureResource(resource =>
        {
            resource.AddService(
                serviceName: "your-service-name",
                serviceVersion: "1.0.0",
                serviceInstanceId: Environment.ProcessId.ToString());
        })
        .WithTracing(tracing =>
        {
            tracing
                .AddSource("your-service-name")
                .AddAspNetCoreInstrumentation()
                .AddHttpClientInstrumentation()
                .AddOtlpExporter(options =>
                {
                    // Configure OTLP endpoint to point to Instana Agent
                    options.Endpoint = new Uri("http://localhost:4317");
                });
        });
  3. OpenTelemetry 를 사용하여 사용자 정의 스팬 생성하기 ActivitySource:

    using System.Diagnostics;
    
    // Create an ActivitySource
    private static readonly ActivitySource ActivitySource = new ActivitySource("your-service-name", "1.0.0");
    
    // Create custom spans
    using (var activity = ActivitySource.StartActivity("operation-name"))
    {
        activity?.SetTag("custom.key", "custom-value");
        activity?.SetTag("operation.type", "business-logic");
    
        // Your application logic here
    
        activity?.AddEvent(new ActivityEvent("Operation completed"));
    }
  4. 애플리케이션을 배포하고 실행합니다. 애플리케이션 엔드포인트로 트래픽을 생성합니다.
  5. 트레이스가 수집되고 있는지 확인하십시오:

    1. Go Instana UI의 [애플리케이션] > [서비스] 로 이동합니다.
    2. 서비스 이름을 찾아 해당 서비스의 추적 정보와 메트릭을 확인하세요.