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。这简化了检测流程,并保证了不同编程语言之间的一致性。
  • SDK: OpenTelemetry 提供针对特定语言的 SDK,用于对应用程序进行检测。 开发人员可以轻松利用.NET SDK将OpenTelemetry功能集成到他们的.NET项目中。 -**输出器:**这些部件负责将收集到的遥测数据传输到后端系统,以便进行存储和检查。 OpenTelemetry支持许多广泛使用的后端系统导出器,如Zipkin(追踪)、Prometheus(指标)和Jaeger(追踪)。 -**自动检测:**此方法简化了 .NET Core 应用程序的开发过程。 OpenTelemetry库可以自动获取Web应用程序或服务内常见操作的数据。这消除了手动代码修改,简化了集成过程。 -**手动仪器化:**为了对数据收集进行精细控制,OpenTelemetry 提供了一个强大的 API 用于手动仪器化。 这种方法允许您捕获与特定应用程序逻辑相关的特定指标和追踪。 它对于.NET Framework应用程序或自动检测无法涵盖您的特定需求的场景特别有用。

在.NET中使用OpenTelemetry的好处

将OpenTelemetry集成到您的.NET应用程序中提供了若干优势:

-厂商中立性: OpenTelemetry 具有灵活性,并且能够轻松地与各种后端系统集成,从而使您的应用程序面向未来。 您的检测代码不需要更改即可切换后端系统。 -**标准化方法:**统一的 API 使对应用程序的各个方面进行检测变得更加容易。 开发人员可以使用同一API收集日志、追踪和指标,结果是代码更易于阅读和维护。 -深入的性能分析: OpenTelemetry 提供丰富的数据(指标、跟踪和日志),用于全面的性能分析。 您可以通过这个全面的视角找到优化的区域并确定问题的根本原因。 -**更好的故障排除:**开发人员可以使用 OpenTelemetry 捕获的丰富跟踪数据,通过跟踪请求在应用程序中的路径,更轻松地检测和修复问题。 -**增强可扩展性:**应用程序的复杂性不会阻碍 OpenTelemetry 的可扩展性。 无需大幅修改代码即可轻松检测新功能或服务。

创建和配置OpenTelemetry

在ASP.NET应用程序中配置OpenTelemetry

需要在您的应用程序中配置OpenTelemetry; 对于ASP.NET Core应用程序,这通常是在您的ConfigureServices方法中完成的。这是一个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请求。 在您的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的两个主要优点是易用性和简单性。 开发人员可以毫不费力地在他们的.NET项目中开始创建PDF,因为其直观的API和全面的文档。 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生成的输出

以下是Jaeger UI中生成的追踪屏幕:

OpenTelemetry .NET(开发者的工作原理):图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 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

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 起