IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

OpenTelemetry C# (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

OpenTelemetry, izler, metrikler ve loglar gibi telemetri verilerini toplamak, işlemek ve aktarmak üzere birlikte çalışan bir dizi araç, API ve SDK'dır. Bu eğitici, yeni başlayanlara C# uygulamalarında OpenTelemetry entegrasyonunu anlamalarına yardımcı olmayı amaçlamakta, yerleşik metrikler toplama metoduna odaklanarak .NET uygulamalarını etkili bir şekilde izlemeyi hedeflemektedir. Ayrıca C#'ta PDF oluşturma için IronPDF kütüphanesini öğreneceğiz.

OpenTelemetry'ye Giriş

Opentelemetry C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - OpenTelemetry

OpenTelemetry, uygulamalarınızdan her türlü veriyi toplamak için birleşik bir yol sağlar. .NET geliştiricileri için, OpenTelemetry entegrasyonu, uygulamalarınızı daha yakından izlemenizi, gerçek zamanlı olarak nasıl performans gösterdiğini anlamanızı ve sorunları hızlı bir şekilde tanımlamanızı sağlar. OpenTelemetry'nin enstrümantasyon kütüphanesi, .NET uygulamaları için izleme ve metrik toplamayı otomatik olarak etkinleştirir.

OpenTelemetry çerçevesi tarafından toplanan metriklerle, geliştiriciler .NET çalışma zamanı ortamı hakkında değerli içgörüler elde eder. OpenTelemetry .NET uygulaması, .NET runtime, .NET Core ve .NET Framework dahil olmak üzere destekler. Standardize edilmiş telemetri veri toplamayı sağlamak için OpenTelemetry protokolüne uyar.

Çevrenizi Kurma

Başlamak için, makinenizde .NET SDK'sının yüklü olması gerekir. Visual Studio kullanıyorsanız, muhtemelen .NET SDK ile gelmiştir. Şu anki .NET SDK sürümünüzü kontrol etmek için bir komut satırı açarak çalıştırabilirsiniz:

dotnet --version

Ardından, yeni bir .NET Web projesi oluşturun:

dotnet new web -o MyTelemetryApp
cd MyTelemetryApp
SHELL

Bu komut, MyTelemetryApp adlı bir dizinde yeni bir ASP.NET Core projesi oluşturur.

OpenTelemetry'yi Entegre Etme

Gerekli Paketleri Ekleme

İlk olarak, projenize gerekli OpenTelemetry paketlerini ekleyin. Terminalinizi açın ve proje dizininize gidin. Sonra, aşağıdaki paketleri NuGet Paket Yöneticisi CLI kullanarak yükleyin:

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> ile her paketin en son sürümünü değiştirin.

OpenTelemetry'yi Uygulamanızda Yapılandırma

Gerekli paketleri ekledikten sonra, OpenTelemetry'yi uygulamanızda yapılandırmanız gerekiyor. Bu, OpenTelemetry SDK'sını kurmayı ve hangi telemetri verisini toplayacağını belirtmeyi içerir. OpenTelemetry, .NET uygulamalarıyla sorunsuz bir entegrasyon için enstrümantasyon kütüphaneleri sunar.

Projenizde Startup.cs dosyanızı açın ve aşağıdaki kod parçacığında gösterildiği gibi ConfigureServices yöntemini OpenTelemetry'yi eklemek için değiştirin:

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

Bu kod parçacığı, ASP.NET Core uygulamalarından ve HTTP istemci çağrılarından telemetri verilerini toplamak ve ardından bu verileri konsola aktarmak için OpenTelemetry'yi nasıl yapılandıracağınızı gösterir. AddAspNetCoreInstrumentation yöntemi, ASP.NET Core uygulamalarına gelen HTTP istekleri için otomatik olarak enstrümantasyonu etkinleştirir.

Metrikleri Toplama

Metrik toplamak için ayrıca, izleme yerine metriklere odaklanarak OpenTelemetry Metrikler API'si yapılandırmanız gerekecek.

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

Bu kurulum, ASP.NET Core ve HTTP istemci enstrümantasyonundan yapılan yerleşik metriklerin toplanmasını sağlamakta, kolay görüntüleme için bunları konsola aktarmaktadır.

Özel Metrikler Oluşturma

OpenTelemetry otomatik olarak birçok yararlı metrik toplarken, uygulamanıza özgü özel metrikler toplamak isteyebilirsiniz. Enstrümantasyon kütüphanesi tarafından sağlanan bir genişletme metodu kullanmak, telemetriyi otomatik olarak toplamakla kalmaz, aynı zamanda geliştiricilere yayılan metrikler üzerinde daha ayrıntılı kontrol sağlar. Bu, özel metrikler oluşturmak ve kaydetmek için kodunuzu manuel olarak enstrüman ederek başarılabilir.

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();
});

Bu kod parçacığı, uygulamanıza gönderilen istekleri sayan bir özel metriği nasıl oluşturacağınızı, her metriği istek yolu ile etiketleyerek gösterir. OpenTelemetry tarafından sağlanan genişletme metodları kullanarak, geliştiriciler telemetri veri toplama süreci üzerinde daha ayrıntılı kontrol sağlayabilirler.

Entegrasyonunuzu Test Etme

Uygulamanızı komut satırı veya Visual Studio kullanarak çalıştırın. Web tarayıcınızda URL'sine giderek veya curl gibi bir araç kullanarak uygulamanıza bazı istekler yapın. Telemetri verilerinin, izler ve metrikler dahil olmak üzere konsol çıktınıza yazdırıldığını görmelisiniz.

curl http://localhost:5000
SHELL

IronPDF Tanıtımı

Opentelemetry C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - IronPDF

IronPDF, C# geliştiricileri için güçlü bir kütüphanedir, .NET uygulamalarında doğrudan PDF belgeleri oluşturma, düzenleme ve render etme olanağı sağlar. Bu yetenek, özellikle HTML, servisler veya masaüstü uygulamaları kullanarak web uygulamalarından raporlar, faturalar veya herhangi bir belge tabanlı çıktı oluştur için yararlıdır. IronPDF'i OpenTelemetry ile birleştirmek, geliştiricilerin uygulamalarındaki PDF oluşturma süreçlerinin performansını ve güvenilirliğini izlemelerine olanak tanır, sorunsuz bir kullanıcı deneyimi sağlar.

IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca üretir.

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 Kurulumu

İlk olarak, .NET projenize IronPDF'i eklemeniz gerekmektedir. Bunu NuGet Paket Yöneticisini kullanarak yapabilirsiniz. Terminalinizi açın ve proje dizininize gidin. Ardından, IronPDF'i yüklemek için aşağıdaki komutu çalıştırın:

dotnet add package IronPDF
SHELL

IronPDF ile PDF Oluşturma ve OpenTelemetry ile İzleme

Aşağıda, basit bir PDF belgesi oluşturmanın ve OpenTelemetry kullanarak işlemin nasıl izleneceğinin bir örneği vardır. Aşağıdaki örnek, uygulamanızda OpenTelemetry'yi daha önce gösterildiği şekilde yapılandırdığınızı varsaymaktadır.

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;
        }
    }
}

Bu örnekte, bir PdfService adlı yeni bir servis sınıfı oluşturuyoruz ve PDF belgesi oluşturmak için bir GeneratePdf yöntemi içerir. HTML'i bir PDF belgesi olarak işlemek için IronPDF'nin ChromePdfRenderer sınıfını kullanıyoruz. OpenTelemetry ile bu işlemi izlemek için 'Generate PDF' adında yeni bir etkinlik başlatıyoruz. PDF oluşturma sürecine ilişkin ek bağlam sağlamak için etkinliğe PDF boyutu, içerik türü ve çıktı yolu gibi özel etiketler ekliyoruz. Ayrıca, aynı etkinlik içinde hataları doğru bir şekilde kaydetmek için herhangi bir istisnayı yakalıyoruz.

Sonuç

OpenTelemetry'yi .NET uygulamalarınıza entegre etmek, uygulamanızın performansı ve davranışı hakkında içgörüler sunan değerli telemetri verilerini toplamanıza olanak tanır. Bu öğreticideki adımları takip ederek, bir .NET web uygulaması için temel izleme ve metrik toplama ayarladınız. Telemetri verilerini dış izleme araçlarına aktarma veya izler ve metriklerle birlikte log toplama gibi daha gelişmiş OpenTelemetry özelliklerini keşfederek daha fazla deney yapın.

IronPDF'nin ücretsiz deneme lisansı ile üretimde tam kapasitesini test edebilirsiniz. Lisanslar $399 gibi düşük bir fiyatla başlar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez