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를 사용하여 추적을 활성화하려면 다음 단계를 따르세요:
- 프로젝트에 NuGet 패키지를
Instana.Tracing.Core.Sdk추가하세요. 애플리케이션 코드에서 사용자 정의 스팬을 생성하려면:
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 }선택 사항: 애플리케이션 시작 코드(일반적으로
Program.cs)에서 ` Instana ` 추적기를 구성하여 추적 결과에 표시될 기본 서비스 및 엔드포인트 이름을 설정합니다:using Instana.Tracing.Sdk; // Configure Instana Tracer TracerConfiguration.ServiceName = "your-service-name"; TracerConfiguration.EndpointName = "your-endpoint-name";- 애플리케이션을 배포하고 실행합니다. 애플리케이션 엔드포인트로 트래픽을 생성합니다.
트레이스가 수집되고 있는지 확인하십시오:
- Go Instana UI의 [애플리케이션] > [서비스] 로 이동합니다.
- 서비스 이름을 찾아 해당 서비스의 추적 정보와 메트릭을 확인하세요.
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를 사용하여 추적을 활성화하려면 다음 단계를 따르십시오:
프로젝트에 필요한 OpenTelemetry NuGet 패키지를 추가하세요:
OpenTelemetry.Extensions.HostingOpenTelemetry.Exporter.OpenTelemetryProtocolOpenTelemetry.Exporter.Console(콘솔 기반 로깅이 필요한 경우)OpenTelemetry.Instrumentation.AspNetCore( ASP.NET Core 웹 애플리케이션용)OpenTelemetry.Instrumentation.Http( HTTP 클라이언트 계측용)
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"); }); });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")); }- 애플리케이션을 배포하고 실행합니다. 애플리케이션 엔드포인트로 트래픽을 생성합니다.
트레이스가 수집되고 있는지 확인하십시오:
- Go Instana UI의 [애플리케이션] > [서비스] 로 이동합니다.
- 서비스 이름을 찾아 해당 서비스의 추적 정보와 메트릭을 확인하세요.