IRONSOFTWAREHOME
개발자 업데이트

Opentelemetry C# (개발자를 위한 작동 방식)

제이콥 멜러, 팀 아이언 최고기술책임자
Jacob Mellor
Updated: 2026년 4월 21일

OpenTelemetry는 애플리케이션에서 트레이스, 메트릭 및 로그와 같은 텔레메트리 데이터를 수집, 처리 및 내보내기 위해 함께 작동하는 도구, API 및 SDK 모음입니다. 이 튜토리얼은 확장 메서드를 사용하여 C# 애플리케이션에 OpenTelemetry를 통합하는 방법을 초보자들이 이해할 수 있도록 돕는 것을 목표로 하며, .NET 애플리케이션을 효과적으로 모니터링하기 위한 내장 메트릭 수집에 중점을 둡니다. C#에서의 PDF 생성용 IronPDF 라이브러리에 대해서도 배울 것입니다.

OpenTelemetry 소개

오픈텔레메트리 C# (개발자를 위한 작동 방식): 그림 1 - 오픈텔레메트리

OpenTelemetry는 애플리케이션에서 모든 종류의 데이터를 수집하는 통일된 방법을 제공합니다. .NET 개발자에게 OpenTelemetry를 통합하는 것은 애플리케이션을 더 면밀히 모니터링하고 실시간으로 성능을 이해하며 문제를 신속하게 식별할 수 있음을 의미합니다. OpenTelemetry의 계측 라이브러리는 .NET 앱을 위한 트레이싱 및 메트릭 수집을 자동으로 활성화합니다.

OpenTelemetry 프레임워크로 수집한 메트릭을 통해 개발자는 .NET 런타임 환경에 대한 귀중한 통찰력을 얻게 됩니다. OpenTelemetry .NET 구현은 .NET Core 및 .NET Framework를 포함하는 .NET 런타임을 지원합니다. 표준화된 텔레메트리 데이터 수집을 위한 OpenTelemetry 프로토콜을 준수합니다.

환경 설정하기

시작하려면 컴퓨터에 .NET SDK가 설치되어 있어야 합니다. Visual Studio를 사용 중이라면 아마 .NET SDK가 함께 설치되었을 것입니다. 현재 .NET SDK 버전을 확인하려면 명령줄을 열고 다음을 실행하십시오:

dotnet --version

다음으로, 다음을 실행하여 새 .NET 웹 프로젝트를 생성하십시오:

dotnet new web -o MyTelemetryApp
cd MyTelemetryApp
SHELL

이 명령은 MyTelemetryApp이라는 디렉토리에 새 ASP.NET Core 프로젝트를 생성합니다.

OpenTelemetry 통합하기

필요한 패키지 추가

먼저, 프로젝트에 필요한 OpenTelemetry 패키지를 추가하세요. 터미널을 열고 프로젝트 디렉터리로 이동합니다. 그런 다음, NuGet 패키지 관리자 CLI를 사용하여 다음 패키지들을 설치하세요:

dotnet add package OpenTelemetry -Version <version>
dotnet add package OpenTelemetry.Extensions.Hosting -Version <version>
dotnet add package OpenTelemetry.Instrumentation.AspNetCore -Version <version>
dotnet add package OpenTelemetry.Exporter.Console -Version <version>
SHELL

**<version>**을 각 패키지의 최신 버전으로 교체하세요.

애플리케이션에서 OpenTelemetry 구성하기

필요한 패키지를 추가한 후, 애플리케이션에서 OpenTelemetry를 구성해야 합니다. 이는 OpenTelemetry SDK를 설정하고 수집할 텔레메트리 데이터를 지정하는 것을 포함합니다. OpenTelemetry는 .NET 애플리케이션과 원활한 통합을 위한 기구 라이브러리를 제공합니다.

프로젝트 내 Startup.cs 파일을 열고 ConfigureServices 메서드를 수정하여 다음 코드 스니펫에 표시된 대로 OpenTelemetry를 포함시키세요:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddOpenTelemetryTracing(builder =>
    {
        builder.AddAspNetCoreInstrumentation()
               .AddHttpClientInstrumentation()
               .AddConsoleExporter();
    });
}

이 코드 스니펫은 ASP.NET Core 애플리케이션 및 HTTP 클라이언트 호출로부터 텔레메트리 데이터를 수집하고, 이 데이터를 콘솔로 내보내는 방법을 보여줍니다. AddAspNetCoreInstrumentation 메서드는 ASP.NET Core 앱에 대한 들어오는 HTTP 요청에 대한 기구를 자동으로 활성화합니다.

메트릭 수집

메트릭을 수집하려면 추적보다는 메트릭에 초점을 맞추어 OpenTelemetry Metrics API를 구성해야 합니다.

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddOpenTelemetryMetrics(builder =>
    {
        builder.AddAspNetCoreInstrumentation()
               .AddHttpClientInstrumentation()
               .AddConsoleExporter(options => options.Targets = ConsoleExporterOutputTargets.Console);
    });
}

이 설정은 ASP.NET Core 및 HTTP 클라이언트 기구에서 내장 메트릭을 수집하여 쉽게 볼 수 있도록 콘솔로 내보낼 수 있게 해줍니다.

사용자 지정 메트릭 만들기

OpenTelemetry는 많은 유용한 메트릭을 자동으로 수집하지만, 애플리케이션에 특정한 사용자 지정 메트릭을 수집하고자 할 수 있습니다. 기구 라이브러리에서 제공하는 확장 메서드를 사용하여 텔레메트리를 자동으로 수집할 뿐만 아니라 개발자가 더 세밀하게 제어할 수 있도록 합니다. 이는 사용자 지정 메트릭을 만들고 기록하기 위해 코드를 수동으로 기구화함으로써 달성할 수 있습니다.

var meter = new Meter("MyCustomMetrics", "1.0");
var counter = meter.CreateCounter<int>("custom_request_count", description: "Counts custom requests");
app.Use((context, next) =>
{
    counter.Add(1, new KeyValuePair<string, object>("path", context.Request.Path));
    return next();
});

이 코드 스니펫은 애플리케이션에 대한 요청을 세고, 요청 경로를 각 메트릭에 태그로 추가하는 사용자 지정 메트릭을 만드는 방법을 보여줍니다. OpenTelemetry에서 제공하는 확장 메서드를 활용하여 개발자는 텔레메트리 데이터 수집 과정을 보다 세밀하게 제어할 수 있습니다.

통합 테스트

명령어 라인이나 Visual Studio를 사용하여 애플리케이션을 실행합니다. 애플리케이션의 URL로 웹 브라우저에서 접속하거나 curl 같은 도구를 사용하여 요청을 합니다. 콘솔 출력에 추적 및 메트릭을 포함한 텔레메트리 데이터가 출력되는 것을 확인할 수 있어야 합니다.

curl http://localhost:5000
SHELL

IronPDF 소개

오픈텔레메트리 C# (개발자를 위한 작동 방식): 그림 2 - IronPDF

IronPDF는 C# 개발자를 위한 강력한 라이브러리로, .NET 애플리케이션 내에서 PDF 문서를 생성하고 조작하며 렌더링할 수 있게 합니다. 이 기능은 특히 보고서, 청구서 또는 HTML, 서비스, 데스크톱 앱을 사용한 문서 기반 출력을 생성하는 데 유용합니다. OpenTelemetry와 IronPDF를 결합하여 개발자는 애플리케이션 내에서 PDF 생성 프로세스의 성능과 신뢰성을 모니터링하여 원활한 사용자 경험을 보장할 수 있습니다.

IronPDF는 원래 레이아웃과 스타일을 정확히 보존하여 HTML을 PDF로 변환하는 데 탁월합니다. 보고서, 송장 및 설명서와 같은 웹 기반 콘텐츠에서 PDF를 생성하는 데 완벽합니다. HTML 파일, URL 및 원시 HTML 문자열에 대한 지원으로 IronPDF는 고품질의 PDF 문서를 쉽게 생성합니다.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

IronPDF 설정하기

먼저 IronPDF를 .NET 프로젝트에 추가해야 합니다. NuGet 패키지 관리자를 사용하여 이 작업을 수행할 수 있습니다. 터미널을 열고 프로젝트 디렉터리로 이동합니다. 그런 다음, 다음 명령어를 실행하여 IronPDF를 설치합니다:

dotnet add package IronPDF
SHELL

IronPDF로 PDF 생성 및 OpenTelemetry로 모니터링하기

아래는 간단한 PDF 문서를 생성하고 OpenTelemetry를 사용하여 작업을 모니터링하는 방법에 대한 예제입니다. 다음 예제는 앞서 설명한 대로 애플리케이션에서 OpenTelemetry를 이미 구성했다고 가정합니다.

using IronPdf;
using OpenTelemetry.Trace;

public class PdfService
{
    private readonly Tracer _tracer;

    public PdfService(Tracer tracer)
    {
        _tracer = tracer;
    }

    public void GeneratePdf()
    {
        // Create a new activity for this operation
        using var activity = _tracer.StartActivity("Generate PDF");
        
        // Simulate adding some attributes related to the operation
        activity?.SetTag("pdf.size", "A4");
        activity?.SetTag("pdf.content", "Hello World");
        
        try
        {
            // Initialize the PDF generator
            var renderer = new ChromePdfRenderer();
            
            // Generate a PDF from HTML
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
            
            // Save the PDF to a file
            var outputPath = "output.pdf";
            pdf.SaveAs(outputPath);
            
            // Log success
            activity?.SetTag("pdf.status", "Success");
            activity?.SetTag("pdf.outputPath", outputPath);
        }
        catch (Exception ex)
        {
            // Log any exceptions that occur during PDF generation
            activity?.SetTag("pdf.status", "Error");
            activity?.SetTag("pdf.error", ex.Message);
            throw;
        }
    }
}

이 예제에서는 PDF 문서를 생성할 수 있는 PdfService라는 새로운 서비스 클래스와 GeneratePdf라는 메서드를 포함합니다. IronPDF의 ChromePdfRenderer 클래스를 사용하여 HTML을 PDF 문서로 렌더링합니다. OpenTelemetry로 "PDF 생성"이라는 새로운 활동을 시작하여 이 작업을 모니터합니다. PDF 생성 과정에 대한 추가적인 정보를 제공하기 위해 활동에 사용자 지정 태그를 추가합니다. 여기에는 PDF의 크기, 콘텐츠 타입, 출력 경로 등이 포함됩니다. 또한 동일한 활동 내에서 적절하게 오류를 기록할 수 있도록 예외를 포착합니다.

결론

.NET 애플리케이션에 OpenTelemetry를 통합하면 애플리케이션의 성능과 동작에 대한 통찰력을 제공하는 귀중한 텔레메트리 데이터를 수집할 수 있습니다. 이 튜토리얼에서 설명된 단계를 따르면 .NET 웹 애플리케이션에 대한 기본적인 추적 및 메트릭 수집이 설정됩니다. 더 고급 OpenTelemetry 기능을 탐색하려면, 텔레메트리 데이터를 외부 모니터링 도구로 내보내거나 로그를 추적 및 메트릭과 함께 수집하는 방법을 실험하세요.

IronPDF는 생산에 대한 IronPDF의 무료 체험을 제공하여 그 모든 기능을 시험해 볼 수 있습니다. 라이센스는 $399부터 시작합니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.