IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Giriş

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 18 Ocak 2026

Dinamik, veri odaklı, zengin PDF belgeleri oluşturmak, modern yazılım geliştirme sektörünün birçok alanında tipik bir taleptir. İşletmeler, faturalar, raporlar veya belgeler oluşturmak için olsun, hızlı bir şekilde yüksek kaliteli PDF'ler oluşturabilme kapasitelerine büyük ölçüde bağlıdır. Ancak, PDF üretim süreçlerinin etkinliğini takip etmek ve anlamak, uygulamaların sağlığını korumak ve kullanıcı memnuniyetini sağlamak için daha karmaşık ve büyük ölçekli hale geldikçe önemli hale gelir.

Bu makale, geliştiricilerin IronPDF ve OpenTelemetry.NET özelliklerini kullanarak PDF oluşturma işlemlerini nasıl iyileştirebileceğini ve uygulama performansı hakkında önemli içgörüler sağlayabileceğini tartışmayı amaçlamaktadır. Her iki teknolojinin özelliklerini ve avantajlarını keşfedeceğiz ve .NET uygulamalarında PDF'lerin oluşturulması ve izlenmesinin optimize edilmesi için nasıl uyum içinde çalışabileceklerini göstereceğiz.

OpenTelemetry Nedir?

OpenTelemetry, özellikle bulut yerel uygulamalar için oluşturulmuş tedarikçi bağımsız bir gözlemlenebilirlik çerçevesidir. OpenTelemetry otomatik enstrümentasyonu, loglar, izleme ve metrikler dahil olmak üzere telemetri bilgilerini toplamak için tek bir API sağlar. Bu kapsamlı verilerin kullanımıyla, geliştiriciler sorunları etkili bir şekilde hata ayıklayabilir, performans darboğazlarını tespit edebilir ve program davranışını tam olarak anlayabilir. OpenTelemetry, kapsamlı ve esnek telemetri veri toplama için hem otomatik hem de manuel enstrümentasyonu destekler.

OpenTelemetry'nin Temel Bileşenleri

  • API: Uygulamaları enstrümante etmek ve telemetri verileri oluşturmak için OpenTelemetry, standartlaştırılmış bir API seti belirtir. Bu, enstrümantasyon prosedürünü basitleştirir ve çeşitli programlama dilleri arasında tutarlılığı garanti eder.
  • SDK'lar: Uygulamaları enstrümante etmek için OpenTelemetry, belirli dillere göre hazırlanmış SDK'lar sunar. Geliştiriciler, .NET SDK sayesinde OpenTelemetry işlevselliğini kolayca .NET projelerine entegre edebilirler.
  • Exporters: Bu bileşenler, toplanan telemetri verilerini depolamak ve incelemek için arka uç sistemlere iletmekle sorumludur. OpenTelemetry, Zipkin (izleme), Prometheus (metrikler) ve Jaeger (izleme) gibi yaygın olarak kullanılan arka uç sistemlerin birçok export'ını destekler.
  • Otomatik Enstrümentasyon: Bu yöntem .NET Core uygulamaları için süreci basitleştirir. OpenTelemetry kütüphaneleri, web uygulamanız veya hizmetiniz içindeki yaygın işlemler için otomatik olarak veri toplayabilir. Bu, manuel kod değişikliklerini ortadan kaldırır, entegrasyon sürecini hızlandırır.
  • Manuel Enstrümentasyon: Veri toplamanın ayrıntılı kontrolü için, OpenTelemetry manuel enstrümentasyon için güçlü bir API sağlar. Bu yaklaşım, özel uygulama mantığınızla ilgili belirli metrik ve izleri yakalamanıza izin verir. Özellikle, otomatik enstrümentasyonun belirli ihtiyaçlarınızı karşılamadığı senaryolarda veya .NET Framework uygulamaları için faydalıdır.

.NET'te OpenTelemetry Kullanmanın Avantajları

.NET uygulamalarınıza OpenTelemetry'yi entegre etmek birkaç avantaj sunar:

  • Vendor Tarafsızlığı: OpenTelemetry, çeşitli arka uç sistemlerle kolayca entegre olarak uygulamanızı esnekleştirir ve gelecek ayarlarını yapar. Enstrümantasyon kodunuzu arka uç sistemlerini değiştirmek için değiştirmeniz gerekmez.
  • Standartlaştırılmış Yaklaşım: Uygulamanızın farklı alanlarını enstrümante etmek, tekdüze API sayesinde daha kolay hale gelir. Geliştiriciler, loglar, izler ve metrikler toplamak için aynı API'yi kullanabilir, bu da okunması ve bakımı kolay kodlar elde edilmesine yol açar.
  • Derinlemesine Performans Analizi: OpenTelemetry, kapsamlı bir performans analizi için veri (metrikler, izler ve loglar) zenginliği sunar. Bu kapsamlı bakış açısı ile optimizasyon için alanları bulabilir ve sorunların altında yatan kaynağı belirleyebilirsiniz.
  • Daha İyi Sorun Giderme: Geliştiriciler, OpenTelemetry'nin kaydettiği zengin izleme verilerini kullanarak uygulamanız üzerinden isteklerin yolunu takip ederek sorunları daha kolay tespit edip düzeltebilir.
  • Geliştirilmiş Ölçeklenebilirlik: OpenTelemetry'nin ölçeklenme kapasitesi, uygulamanızın karmaşıklığına engel olmayacaktır. Büyük kod değişiklikleri gerektirmeden yeni özellikler veya hizmetler kolayca enstrümante edilebilir.

OpenTelemetry'yi Yaratın ve Yapılandırın

OpenTelemetry'yi ASP.NET Uygulamasında Yapılandırın

OpenTelemetry uygulamanızda yapılandırılmalıdır; ASP.NET Core uygulamaları için bu genellikle Startup.cs dosyanızın ConfigureServices yönteminde yapılır. Bu, bir Jaeger ihracatçısı yapılandırmasının bir örneğidir:

using OpenTelemetry.Trace;
using OpenTelemetry.Exporter.Jaeger;
using OpenTelemetry.Resources;

public void ConfigureServices(IServiceCollection services)
{
    // Configure OpenTelemetry
    services.AddOpenTelemetry().WithTracing(builder =>
    {
        // Configure Jaeger exporter. The 'serviceName' can be read from environment variables
        builder
            .SetResourceBuilder(
                ResourceBuilder.CreateDefault()
                    .AddService("YourServiceName"))
            .AddAspNetCoreInstrumentation()
            .AddJaegerExporter(opt =>
            {
                opt.AgentHost = "localhost"; // Jaeger agent host
                opt.AgentPort = 14250; // Jaeger agent port
            });
    });
    // Other service configurations...
}

"YourServiceName" değerini hizmetinizin gerçek adıyla değiştirin. Jaeger yapılandırma seçeneklerinize göre Jaeger agent ana bilgisayarı ve portunu ayarlayın.

OpenTelemetry Middleware Ekle

Gelen HTTP isteklerinin otomatik enstrümantasyonu için ASP.NET Core uygulamalarına OpenTelemetry middleware eklemeniz gerekir. Startup.cs dosyanızın Configure yöntemine ara katmanı ekleyin:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // Add Prometheus metrics middleware if using Prometheus
    app.UseHttpMetrics();
    // Other middleware configurations...
}

İzlemeye Başlayın

Her şeyi ayarladıktan sonra, OpenTelemetry gelen HTTP isteklerini izlemeye ve yapılandırılmış Jaeger backende telemetri bilgisini otomatik olarak göndermeye başlayacaktır.

Doğrula ve İzle

OpenTelemetry'nin doğru bir şekilde çalıştığını doğrulamak için Jaeger backenden izleri kontrol edebilirsiniz. Jaeger kullanıcı arayüzünü açın (genellikle Jaeger UI için http://localhost:16686 adresinden erişilebilir) ve hizmetinizle ilişkili olan izleri arayın.

Bir Arka Uç Sistemi Seçin (Opsiyonel)

OpenTelemetry, temel enstrümantasyon için zorunlu olmasa da, diğer arka uç işletim sistemleriyle entegrasyon yaparak telemetri verilerini depolar ve işler. Popüler seçenekler, resmi olarak desteklenen işletim sistemleri içermektedir:

  • Jaeger (izleme)
  • Prometheus (metrikler)
  • Zipkin (izleme)

Başlarken

IronPDF Nedir?

Popüler bir .NET paketi olan IronPDF, .NET programları içerisindeki PDF belgelerinin oluşturulmasına, düzenlenmesine ve işlenmesine olanak tanır. PDF'lerle çalışmak için işlevler, HTML sayfalarını PDF'ye dönüştürmek, PDF'lerden metin ve resim çıkarmak, mevcut PDF belgelerine metin, resim ve şekil eklemek ve HTML içeriğinden, fotoğraflardan veya ham verilerden PDF'ler üretmek dahil olmak üzere çok çeşitlidir.

IronPDF'nin iki temel avantajı, kullanım kolaylığı ve sadeliktir. Geliştiriciler, kullanıcı dostu API'si ve kapsamlı belgeleri sayesinde kolayca .NET projelerinde PDF oluşturmaya başlayabilirler. IronPDF'nin verimliliği ve hızı, geliştiricilerin yüksek kaliteli PDF belgelerini hızlı ve verimli bir şekilde oluşturmalarına yardımcı olan ek özelliklerdir.

IronPDF'nin bazı avantajları:

  • HTML, resimler ve ham verilerden PDF üretimi
  • PDF dosyalarından metin ve resim çıkarmak
  • PDF dosyalarına filigranlar, üstbilgiler ve altbilgiler eklemek
  • PDF dosyaları şifreleme ve parola ile korunur
  • Elektronik imza ve form doldurma yeteneği

NuGet Paketini Kurun

OpenTelemetry'deki farklı bileşenler için birden çok NuGet paketi mevcuttur. İhtiyaçlarınıza bağlı olarak, gerekli paketleri yükleyebilirsiniz. Telemetri verilerini bir gözlemlenebilirlik arka ucuna göndermek için (Jaeger, Zipkin veya Prometheus gibi), en azından OpenTelemetry paketi, uygulama çerçeveniz için (ASP.NET Core gibi) enstrümantasyon paketleri ve bir export paketi gerekecektir. Ayrıca, projenizde IronPDF paketinin yüklü olduğundan emin olun. Bunu yüklemek için, NuGet Paket Yöneticisi Konsolunu kullanın:

Install-Package OpenTelemetry
Install-Package OpenTelemetry.Instrumentation.AspNetCore
Install-Package OpenTelemetry.Exporter.Jaeger
Install-Package IronPdf
PowerShell

OpenTelemetry'yi IronPDF ile Kullanma

ASP.NET Core uygulamanızın Startup.cs dosyasını açarak ConfigureServices yöntemine erişin. IronPDF'yi ayarlamak için sonraki kodu ekleyin.

using IronPdf;

public void ConfigureServices(IServiceCollection services)
{
    // Configure IronPDF
    services.AddSingleton<HtmlToPdf>();
    // Other service configurations...
}

Bu kod, IronPDF'nin HtmlToPdf hizmetini singleton olarak yapılandırarak uygulama tarafından yalnızca bir HtmlToPdf örneğinin oluşturulmasını ve kullanılmasını sağlar.

IronPDF ile OpenTelemetry.NET entegrasyonunu kullanarak .NET uygulamalarınızda PDF oluşturma süreçlerini izleyebilir ve gözlemleyebilirsiniz. Kod örneğini derinlemesine inceleyelim, her adımı adım adım inceleyerek:

using Microsoft.AspNetCore.Mvc;
using OpenTelemetry.Trace;
using System.Diagnostics;
using Microsoft.Extensions.Logging;
using IronPdf;

namespace DemoWebApplication.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class DemoController : ControllerBase
    {
        private readonly HtmlToPdf _htmlToPdf;
        private readonly ILogger<DemoController> _logger;
        private readonly Tracer _tracer;

        public DemoController(ILogger<DemoController> logger, HtmlToPdf htmlToPdf, TracerProvider tracerProvider)
        {
            _tracer = tracerProvider.GetTracer("Demo");
            _htmlToPdf = htmlToPdf;
            _logger = logger;
        }

        [HttpGet]
        public FileContentResult Generate()
        {
            // Define the PDF file name
            string fileName = "Sample.pdf";

            // Generate PDF from HTML content
            _logger.LogInformation("Generating PDF...");
            var pdfBytes = GeneratePdf("Hello, IronPDF!");

            // Return the PDF as a file result
            return new FileContentResult(pdfBytes, "application/pdf")
            {
                FileDownloadName = fileName
            };
        }

        private byte[] GeneratePdf(string htmlContent)
        {
            // Start a tracing activity for PDF generation
            using (var activity = _tracer.StartActiveSpan("PDF Generation"))
            {
                var pdfDocument = _htmlToPdf.RenderHtmlAsPdf(htmlContent);

                // Log PDF generation
                _logger.LogInformation("PDF generated successfully.");

                return pdfDocument.BinaryData;
            }
        }
    }
}

Bu örnekte:

  • HtmlToPdf, ILogger, ve TracerProvider öğesini DemoController içerisine enjekte ediyoruz.
  • Generate yöntemi bir dosya indirmesi başlatır ve "Hello, IronPDF!" içeriğine sahip dinamik olarak oluşturulmuş bir PDF döndürür.
  • GeneratePdf yöntemi, PDF'yi render etmek için HtmlToPdf.RenderHtmlAsPdf kullanır ve PDF'nin ikili verilerini çıktı olarak verir.
  • Kod, PDF oluşturma sürecini izlemek ve izleme verilerini kaydetmek için OpenTelemetry'yi kullanır.

Yukarıdaki kaynak koddan üretilen PDF çıktısı:

OpenTelemetry .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - IronPDF ve OpenTelemetry kullanarak yukarıdaki koddan üretilen çıktı

Aşağıda Jaeger kullanıcı arayüzünden oluşturulan iz ekranı bulunmaktadır:

OpenTelemetry .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Jaeger UI'dan oluşturulan çıktı izleri

Sonuç

OpenTelemetry, .NET uygulama performansı optimizasyonu ve sağlık takibi için bir oyunun kurallarını değiştiren bir araçtır. Tedarikçi-bağımsız ve standartlaştırılmış bir yöntem sunarak telemetri verilerini (metrikler, izler ve loglar) toplamak, analiz etmek ve ihraç etmek için geliştiricilere uygulamalarının iç işleyişini tam anlaması sağlar.

OpenTelemetry.NET ve IronPDF entegrasyonunu kullanarak, geliştiriciler PDF oluşturma iş akışlarını iyileştirebilir ve uygulamalarının performansı hakkında içgörüler elde edebilirler. OpenTelemetry.NET uygulamasını PDF oluşturma süreçlerini manuel olarak enstrümante etmek için kullanarak, geliştiriciler yürütme yollarını izleyebilir, performans metriklerini izleyebilir ve optimizasyon gerektiren bölgeleri belirleyebilir. Ayrıca, telemetri verilerini gözlemlenebilirlik platformlarına ihraç etmek merkezi izleme metriklerinin toplanmasını ve analizini mümkün kılar, geliştiricilere uygulamalarının sağlığını koruma ve kusursuz bir kullanıcı deneyimi sağlama yeteneği verir.

OpenTelemetry.NET uygulaması ve IronPDF entegrasyonu, geliştiricilerin PDF oluşturmaya yönelik iş akışlarını iyileştirebilir ve .NET uygulamalarında ölçeklenebilirlik, performans ve güvenilirliği garanti edebilir. Bu teknolojilerin entegrasyonu, geliştiricilerin modern yazılım geliştirme ihtiyaçlarını karşılamalarına ve olağanüstü sonuçlar üretmelerine yardımcı olur, ister faturalar, raporlar veya belgeler oluştursunlar.

Bir paket olarak satın alındığında, IronPDF uygun fiyatlı ve ömür boyu bir lisans içerir. Paket, birçok sistem için tek seferlik bir ücret olan sadece $999 ile büyük değer sunar. Lisans sahiplerine 7/24 çevrimiçi mühendislik desteği sunar. Ücret hakkında daha fazla bilgi için lütfen Iron Software web sitesini ziyaret edin. Iron Software'ın ürünlerini keşfederek sundukları çözümler hakkında daha fazla bilgi edinin.

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