.NET 帮助 OpenTelemetry .NET(开发人员如何使用) Jacob Mellor 已更新:2026年1月18日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 简介 在现代软件开发的许多领域中,创建动态、数据驱动、丰富的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应用,通常在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... } 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... } $vbLabelText $csharpLabel 将"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... } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Add Prometheus metrics middleware if using Prometheus app.UseHttpMetrics(); // Other middleware configurations... } $vbLabelText $csharpLabel 开始追踪 完成所有设置后,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 将OpenTelemetry与IronPDF结合使用 打开您的ASP.NET Core应用的ConfigureServices方法。 为了设置IronPDF,请包括以下代码。 using IronPdf; public void ConfigureServices(IServiceCollection services) { // Configure IronPDF services.AddSingleton<HtmlToPdf>(); // Other service configurations... } using IronPdf; public void ConfigureServices(IServiceCollection services) { // Configure IronPDF services.AddSingleton<HtmlToPdf>(); // Other service configurations... } $vbLabelText $csharpLabel 这段代码确保通过将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; } } } } 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; } } } } $vbLabelText $csharpLabel 在此示例中: 我们将HtmlToPdf, DemoController中。 Generate方法启动文件下载,返回动态创建的内容为"Hello, IronPDF!"的PDF。 HtmlToPdf.RenderHtmlAsPdf渲染PDF并输出PDF的二进制数据。 代码使用OpenTelemetry追踪PDF生成过程并记录追踪数据。 从上述源码生成的PDF输出: 以下是Jaeger UI中生成的追踪屏幕: 结论 OpenTelemetry是.NET应用程序性能优化和健康监控的游戏规则改变者。 它通过提供一种无厂商中立和标准化的方法来收集、分析和导出遥测数据(指标、追踪和日志),给开发人员提供了对其应用程序内部工作机制的全面了解。 通过将OpenTelemetry.NET与IronPDF集成,开发人员可以改进PDF创建工作流程,并获得应用程序性能的见解。 利用OpenTelemetry.NET实现手动检测PDF生成过程,开发人员可以跟踪执行路径,监控性能指标,并确定需要优化的区域。 此外,通过将遥测数据导出到可观察性平台,实现中心化监控指标的收集与分析,使得开发者能够保持应用程序的健康,并提供无缝的用户体验。 OpenTelemetry.NET实现与IronPDF的集成可以增强开发人员的PDF创建工作流程,并保证.NET应用程序的可扩展性、性能和可靠性。 这些技术的集成帮助开发人员满足现代软件开发的需求并提供卓越的结果,无论是创建发票、报告还是文档。 当作为一个软件包购买时,IronPDF价格合理,包括终身许可证。 该套件仅售$799,这是一笔适用于多个系统的一次性费用,提供了极大的价值。 它提供持有许可证者全天候的在线工程支持。 请访问Iron Software网站了解更多关于费用的详细信息。 探索Iron Software的产品以了解他们提供的解决方案。 常见问题解答 什么是OpenTelemetry?它如何增强.NET应用程序? OpenTelemetry是一个为云原生应用设计的无厂商锁定的可观测性框架。它通过提供标准化的API和SDK来增强.NET应用程序,以捕获日志、跟踪和指标,从而帮助诊断问题、识别性能瓶颈,并获得应用程序行为的全面洞察。 如何将OpenTelemetry与ASP.NET Core集成为自动化检测? 可以通过在`Startup.cs`文件中配置服务和中间件来将OpenTelemetry与ASP.NET Core集成,以启用自动化检测。这包括设置跟踪和导出程序,如Jaeger,用于传输遥测数据和监控应用程序性能。 IronPDF在.NET应用中的PDF生成中扮演什么角色? IronPDF是一个.NET库,简化了.NET应用中的PDF创建和操作。它支持将HTML转换为PDF,从PDF中提取文本,并添加如水印和加密等功能,是处理PDF文档的多功能工具。 开发人员如何使用OpenTelemetry追踪和分析PDF生成过程? 开发人员可以通过将OpenTelemetry.NET与IronPDF集成来追踪和分析PDF生成过程。这种集成使得可以收集和分析遥测数据,为PDF生成工作流程提供见解,并帮助优化应用程序性能。 在.NET应用中使用OpenTelemetry和IronPDF有哪些好处? 在.NET应用中使用OpenTelemetry和IronPDF提供了多个好处,包括改善的应用程序可扩展性、增强的性能分析和优化的PDF生成工作流程。这种组合使开发人员能够有效地监测和改善应用程序的健康状况。 开发人员如何在ASP.NET Core应用中使用IronPDF生成PDF? 在ASP.NET Core应用程序中,开发人员可以通过将`HtmlToPdf`类注入到控制器中来生成PDF,将HTML内容呈现为PDF,然后将生成的PDF作为文件结果返回以供下载。 OpenTelemetry支持哪些后端系统导出程序? OpenTelemetry支持多种后端系统导出程序,包括用于跟踪的Jaeger、用于指标的Prometheus以及用于跟踪的Zipkin。这些导出程序使得可以在不同系统之间存储和分析遥测数据。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新2025年12月20日 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 Dotnetopenauth .NET Core(开发人员如何使用)Autofac .NET 6(开发人员如何...
已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多