IRONSOFTWAREHOME
開發者更新

介紹

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年1月18日

建立動態、資料驅動、豐富的PDF文件是在現代軟體開發的許多領域中的典型需求。 企業極大地依賴於能夠快速生成高品質的PDF,無論是用於建立賬單、報告還是文件。 然而,追蹤和理解PDF生成過程的效率變得至關重要,以維持應用程式的健康並確保使用者滿意度,因為它們變得更加複雜和大規模。

本文旨在討論開發人員如何利用IronPDF和OpenTelemetry.NET的功能來改善PDF生成操作,並提供有關應用程式效能的重要見解。 我們將探索這兩種技術的特性和優勢,並展示它們如何和諧地合作,以優化在.NET應用程式中的PDF建立和監控。

什麼是OpenTelemetry?

OpenTelemetry是一個專為雲原生應用程式設計的供應商中立的可觀察性框架。OpenTelemetry自動化儀器提供了一個單一的API,用於收集遙測資訊,包括日誌、追蹤和度量。 借助這些廣泛的資料,開發人員可以有效地除錯問題、識別效能瓶頸,並充分理解程式行為。 OpenTelemetry支持自動和手動儀器,以進行全面且靈活的遙測資料收集。

OpenTelemetry的主要組成部分

  • API: 要儀器應用程式並生成遙測資料,OpenTelemetry指定了一組標準化的API。這簡化了儀器過程,並保證在不同的程式語言中的一致性。
  • SDKs: OpenTelemetry為一些特定語言提供了儀器應用的SDK。 開發人員可以在其.NET項目中輕鬆整合OpenTelemetry功能,使用.NET SDK的幫助。
  • Exporters: 這些組件負責將收集到的遙測資料傳輸到後端系統,以便儲存和分析。 OpenTelemetry支持許多廣泛使用的後端系統導出器,如Zipkin(追蹤)、Prometheus(度量)和Jaeger(追蹤)。
  • Automatic Instrumentation: 這一方法簡化了.NET Core應用程式的過程。 OpenTelemetry庫可以自動捕獲您的Web應用程式或服務中的常見操作資料。這消除了手動程式碼修改,簡化了整合過程。
  • Manual Instrumentation: 為了對資料收集進行精細控制,OpenTelemetry提供了一個強大的API,用於手動儀器。 這種方法允許您捕獲與您獨特應用程式邏輯相關的特定度量和追蹤。 這對於.NET Framework應用程式或自動儀器不涵蓋特定需求的情境特別有用。

在.NET中使用OpenTelemetry的優勢

將OpenTelemetry整合到您的.NET應用程式中可帶來多個優勢:

  • 供應商中立性: OpenTelemetry通過與各種後端系統輕鬆整合,提供了靈活性並使您的應用程式具備面向未來的特性。 您的儀器程式碼無需更改即可更換後端系統。
  • 標準化方法: 通過統一的API,使應用程式的各個領域更易於儀器化。 開發人員可以使用相同的API來收集日志、追蹤和度量,從而導致更易閱讀和維護的程式碼。
  • 深入的性能分析: OpenTelemetry提供豐富的資料(度量、追蹤和日志),以便進行全面的性能分析。 您可以通過這個全面的視角來定位需要優化的區域並確定問題的根本原因。
  • 更好的故障排除: 開發人員可以通過OpenTelemetry抓取的豐富跟踪資料, 更容易地檢測和修復通過應用程式的請求路徑。
  • 改進的擴展性: 您的應用程式的複雜性不會影響OpenTelemetry的擴展能力。 可以隨時儀器新功能或服務,無需大範圍程式碼修改。

建立和配置OpenTelemetry

在ASP.NET應用程式中配置OpenTelemetry

需要在您的應用程式中配置OpenTelemetry; 對於ASP.NET Core應用程式,這通常在您的Startup.cs文件中。這是一個Jaeger導出器配置的例子:

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"替換為您的服務的實際名稱。根據您的Jaeger配置選項調整Jaeger代理主機和端口。

新增OpenTelemetry中介件

您必須在ASP.NET Core應用中包含OpenTelemetry中介件,以獲取自動儀器化進入的HTTP請求。 在您的Startup.cs 文件的Configure方法中新增中介件:

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

開始追蹤

完成所有設置後,OpenTelemetry將開始跟踪進入的HTTP請求,並自動將遙測資訊發送到配置的Jaeger後端。

驗證和監控

您可以在Jaeger後端查找追蹤以確認OpenTelemetry是否運行正常。 打開Jaeger使用者介面(通常在http://localhost:16686獲得Jaeger UI),尋找與您的服務相關的追蹤。

選擇後端系統(可選)

對於基本儀器,OpenTelemetry不是必須品,但它可以與其他後端操作系統整合以儲存和處理遙測資料。 受歡迎的選擇包含官方支持的操作系統:

  • Jaeger(追蹤)
  • Prometheus(度量)
  • Zipkin(追蹤)

快速入門

什麼是IronPDF?

流行的.NET封裝IronPDF允許您在.NET程式中建立、編輯和渲染PDF文件。 用於處理PDF的功能多種多樣,包括將HTML頁面轉換為PDF,從PDF中提取文字和圖像,向現有PDF文件中新增文字、圖像和形狀,以及從HTML內容、照片或原始資料生成PDF。

IronPDF的兩個關鍵優勢是它的易用性和簡單性。 由於其直觀的API和全面的文件,開發人員可以輕鬆地在其.NET項目中開始建立PDF。 IronPDF的效率和速度是幫助開發人員快速有效地建立優質PDF文件的其他特點。

IronPDF的一些好處:

  • 從HTML、圖片和原始資料生成PDF
  • 從PDF文件中提取文字和圖片
  • 將水印,頁眉和頁腳合併到PDF文件中
  • PDF文件通過加密和密碼保護
  • 能夠電子簽名和完成表單

安裝NuGet包

OpenTelemetry的不同組件有多個NuGet包可用。 根據您的需求,您可以安裝所需的包。 要將遙測資料發送到一個可觀察性後端(如Jaeger、Zipkin或Prometheus),您至少需要OpenTelemetry包、您的應用程式框架的儀器包(例如ASP.NET Core),及一個導出器包。 此外,確保IronPDF包已安裝在您的專案中。 要安裝它,請使用NuGet包管理控制台:

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

將OpenTelemetry與IronPDF結合使用

打開您的ASP.NET Core應用程式的ConfigureServices方法。 要設置IronPDF,請包括以下程式碼。

using IronPdf;

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

此程式碼通過將IronPDF的HtmlToPdf實例。

您可以通過將OpenTelemetry.NET與IronPDF整合來跟踪和觀察您的.NET應用程式中的PDF生成過程。 讓我們深入檢查程式碼範例,逐步地討論每一步:

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

在此範例中:

  • 我們將DemoController。
  • Generate方法啟動文件下載,返回一個動態建立的PDF,內容為"Hello, IronPDF!"。
  • HtmlToPdf.RenderHtmlAsPdf來渲染PDF並輸出PDF的二進制資料。
  • 該程式碼使用OpenTelemetry來追踪PDF生成過程並記錄跟踪資料。

從上述源程式碼生成的PDF輸出:

OpenTelemetry .NET (對開發人員的工作原理):圖1 - 利用IronPDF和OpenTelemetry從上述程式碼生成的輸出圖1 - 利用IronPDF和OpenTelemetry從上述程式碼生成的輸出

下面是Jaeger UI生成的追蹤螢幕:

OpenTelemetry .NET (對開發人員的工作原理):圖2 - 從Jaeger UI生成的輸出追蹤圖2 - 從Jaeger UI生成的輸出追蹤

結論

OpenTelemetry是.NET應用程式性能優化和健康監測的遊戲改變者。 它為開發人員提供了一種供應商中立和標準化的方法來收集、分析和導出遙測資料(度量、追蹤和日誌),從而全面了解其應用的內部工作。

通過將OpenTelemetry.NET與IronPDF整合,開發人員可以改善建立PDF的工作流程,並獲得有關其應用性能的見解。 通過利用OpenTelemetry.NET實施手動儀器化PDF生成過程,開發人員可以追踪執行路徑、監控性能指標和定位需要優化的區域。 此外,通過將遙測資料出口到可觀察性平台,實現集中監控度量收集和分析,賦予開發人員維持其應用健康並提供無縫使用者體驗的能力。

OpenTelemetry.NET實施和IronPDF的整合可以提高開發人員建立PDF的工作流程,並保證在.NET應用程式中的可擴展性、性能和可靠性。 這些技術的整合有助於開發人員滿足現代軟體開發的需求,無論是建立發票、報告還是文件,並產生卓越的結果。

當作為套件購買時,IronPDF價格合理,並包含終身授權。 該套餐僅需一次性支付$999,就可以為多個系統提供了很高的價值。 它為授權持有人提供全天候的線上工程支援。 請存取Iron Software網站以獲取有關收費的更多詳細資訊。 探索Iron Software的產品,以了解更多他們提供的解決方案。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起