IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Introducción

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 18 de enero de 2026

La creación de documentos PDF dinámicos, impulsados por datos y ricos es una demanda típica en muchos sectores del desarrollo de software moderno. Las empresas dependen en gran medida de su capacidad para generar rápidamente PDF de alta calidad, ya sea para crear facturas, informes o documentación. Sin embargo, rastrear y comprender la efectividad de los procesos de producción de PDF se vuelve esencial para preservar la salud de las aplicaciones y garantizar la satisfacción del usuario a medida que se vuelven más complicadas y a gran escala.

Este artículo tiene como objetivo discutir cómo los desarrolladores pueden mejorar las operaciones de generación de PDF y proporcionar información importante sobre el rendimiento de las aplicaciones utilizando las características de IronPDF y OpenTelemetry.NET. Exploraremos las características y ventajas de ambas tecnologías y mostraremos cómo pueden trabajar juntas armoniosamente para optimizar la creación y el monitoreo de PDF en aplicaciones .NET.

¿Qué es OpenTelemetry?

OpenTelemetry es un marco de observabilidad neutral creado especialmente para aplicaciones nativas de la nube. La instrumentación automática de OpenTelemetry proporciona una única API para recopilar información de telemetría, incluidos registros, trazas y métricas. Con el uso de estos datos extensos, los desarrolladores pueden depurar problemas de manera efectiva, identificar cuellos de botella de rendimiento y obtener una comprensión completa del comportamiento del programa. OpenTelemetry admite tanto la instrumentación automática como manual para una recopilación de datos de telemetría completa y flexible.

Componentes clave de OpenTelemetry

API: Para instrumentar aplicaciones y generar datos de telemetría, OpenTelemetry especifica un conjunto estandarizado de API. Esto simplifica el proceso de instrumentación y garantiza la coherencia entre diversos lenguajes de programación.

  • SDK: para instrumentar aplicaciones, OpenTelemetry ofrece SDK adaptados a determinados lenguajes. Los desarrolladores pueden incorporar fácilmente la funcionalidad de OpenTelemetry en sus proyectos .NET con la ayuda del SDK de .NET.
  • Exportadores: Estas partes son las encargadas de transmitir los datos de telemetría que se han recopilado a los sistemas backend para que puedan ser almacenados y examinados. OpenTelemetry admite muchos exportadores de sistemas de backend ampliamente usados, como Zipkin (trazado), Prometheus (métricas) y Jaeger (trazado).
  • Instrumentación automática: este método simplifica el proceso para aplicaciones .NET Core . Las bibliotecas de OpenTelemetry pueden capturar automáticamente datos para operaciones comunes dentro de su aplicación o servicio web. Esto elimina las modificaciones manuales del código, agilizando el proceso de integración.
  • Instrumentación manual: para un control granular sobre la recopilación de datos, OpenTelemetry proporciona una API sólida para la instrumentación manual. Este enfoque le permite capturar métricas y trazas específicas relacionadas con la lógica única de su aplicación. Es particularmente útil para aplicaciones de .NET Framework o escenarios donde la instrumentación automática no cubre sus necesidades específicas.

Beneficios del uso de OpenTelemetry en .NET

Integrar OpenTelemetry en sus aplicaciones .NET ofrece varias ventajas:

  • Neutralidad del proveedor: OpenTelemetry ofrece flexibilidad y prepara su aplicación para el futuro integrándose sin esfuerzo con una variedad de sistemas backend. Su código de instrumentación no necesita ser cambiado para cambiar de sistemas de backend.
  • Enfoque estandarizado: la instrumentación de varias áreas de su aplicación se hace más fácil gracias a la API uniforme. Los desarrolladores pueden usar la misma API para recopilar registros, trazas y métricas, lo que resulta en un código más fácil de leer y mantener.
  • Análisis de rendimiento en profundidad: OpenTelemetry ofrece una gran cantidad de datos (métricas, seguimientos y registros) para un análisis de rendimiento integral. Con esta perspectiva integral, puede identificar áreas de optimización y determinar la fuente subyacente de los problemas.
  • Mejor resolución de problemas: los desarrolladores pueden detectar y solucionar problemas más fácilmente siguiendo la ruta de las solicitudes a través de su aplicación utilizando los completos datos de seguimiento que captura OpenTelemetry.
  • Escalabilidad mejorada: la complejidad de su aplicación no obstaculizará la capacidad de escalabilidad de OpenTelemetry. Nuevas funciones o servicios pueden ser instrumentados fácilmente sin requerir grandes modificaciones en el código.

Crear y configurar OpenTelemetry

Configurar OpenTelemetry en la aplicación ASP.NET

OpenTelemetry necesita ser configurado en su aplicación; para aplicaciones ASP.NET Core, esto generalmente se realiza en el método ConfigureServices de su archivo Startup.cs. Esta es una ilustración de una configuración de exportador 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...
}

Reemplace "YourServiceName" con el nombre real de su servicio. Ajuste el host y el puerto del agente Jaeger según las opciones de configuración de Jaeger.

Añadir OpenTelemetry Middleware

Debe incluir el middleware de OpenTelemetry en aplicaciones ASP.NET Core para obtener una instrumentación automática de las solicitudes HTTP entrantes. En el método Configure de su archivo Startup.cs, añada el middleware:

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

Iniciar rastreo

Después de configurar todo, OpenTelemetry comenzará a rastrear las solicitudes HTTP entrantes y enviará información de telemetría al backend de Jaeger configurado automáticamente.

Verificar y supervisar

Puede verificar trazas en su backend de Jaeger para confirmar que OpenTelemetry está funcionando correctamente. Abra la interfaz de usuario de Jaeger (generalmente disponible en http://localhost:16686 para Jaeger UI) y busque trazas asociadas con su servicio.

Elija un sistema backend (opcional)

OpenTelemetry no es imprescindible para la instrumentación básica, pero se integra con otros sistemas operativos de backend para almacenar y procesar datos de telemetría. Las opciones populares incluyen los sistemas operativos oficialmente compatibles:

  • Jaeger (trazado)
  • Prometheus (métricas)
  • Zipkin (trazado)

Empezando

¿Qué es IronPDF?

El popular paquete .NET IronPDF le permite crear, editar y renderizar documentos PDF dentro de programas .NET. Las funciones para trabajar con PDF son numerosas e incluyen convertir páginas HTML a PDF, extraer texto e imágenes de PDF, agregar texto, imágenes y formas a documentos PDF preexistentes, y producir PDF a partir de contenido HTML, fotos o datos sin procesar.

Dos de las principales ventajas de IronPDF son su facilidad de uso y simplicidad. Los desarrolladores pueden comenzar a crear PDF fácilmente dentro de sus proyectos .NET debido a su API intuitiva y documentación completa. La eficiencia y la velocidad de IronPDF son características adicionales que ayudan a los desarrolladores a crear documentos PDF de alta calidad de forma rápida y eficiente.

Algunos de los beneficios de IronPDF:

  • Producción de PDFs a partir de HTML, imágenes y datos sin procesar
  • Extracción de texto e imágenes de archivos PDF
  • Incorporar marcas de agua, encabezados y pies de página en archivos PDF
  • Los archivos PDF están protegidos por cifrado y una contraseña
  • La capacidad de firmar electrónicamente y completar formularios

Instalar el paquete NuGet

Múltiples paquetes NuGet están disponibles para diferentes componentes de OpenTelemetry. Dependiendo de sus necesidades, puede instalar los paquetes requeridos. Para enviar datos de telemetría a un backend de observabilidad (como Jaeger, Zipkin o Prometheus), al menos necesitará el paquete OpenTelemetry, paquetes de instrumentación para su marco de aplicación (como ASP.NET Core) y un paquete exportador. Además, asegúrese de que el paquete IronPDF esté instalado en su proyecto. Para instalarlo, use la Consola del Administrador de Paquetes NuGet:

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

Uso de OpenTelemetry con IronPDF

Abra el archivo Startup.cs de su aplicación ASP.NET Core para acceder al método ConfigureServices. Para configurar IronPDF, incluya el siguiente código.

using IronPdf;

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

Este código asegura que se cree y utilice una instancia de HtmlToPdf en la aplicación solo configurando el servicio HtmlToPdf de IronPDF como un singleton.

Puede rastrear y observar los procesos de generación de PDF en sus aplicaciones .NET integrando OpenTelemetry.NET con IronPDF. Veamos el ejemplo de código en profundidad, revisando cada paso paso a paso:

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

En este ejemplo:

  • Inyectamos el HtmlToPdf, ILogger, y TracerProvider en el DemoController.
  • El método Generate inicia una descarga de archivo, devolviendo un PDF creado dinámicamente con el contenido 'Hello, IronPDF!'.
  • El método GeneratePdf utiliza el HtmlToPdf.RenderHtmlAsPdf para renderizar el PDF y produce los datos binarios del PDF.
  • El código usa OpenTelemetry para rastrear el proceso de generación de PDF y registra los datos de trazado.

Salida de PDF generada a partir del código fuente anterior:

OpenTelemetry .NET (Cómo Funciona Para Desarrolladores): Figura 1 - Salida generada del código anterior utilizando IronPDF y OpenTelemetry

Pantalla de la traza generada desde la interfaz de Jaeger:

OpenTelemetry .NET (Cómo Funciona Para Desarrolladores): Figura 2 - Trazas generadas desde Jaeger UI

Conclusión

OpenTelemetry es un cambio de juego para la optimización del rendimiento de las aplicaciones .NET y el monitoreo de la salud. Proporciona a los desarrolladores una comprensión profunda de los entresijos de sus aplicaciones al ofrecer un método neutral y estandarizado para recopilar, analizar y exportar datos de telemetría (métricas, trazas y registros).

Al integrar OpenTelemetry.NET con IronPDF, los desarrolladores pueden mejorar los flujos de trabajo para crear PDF y obtener información sobre el rendimiento de sus aplicaciones. Al aprovechar la implementación de OpenTelemetry.NET para instrumentar manualmente los procesos de generación de PDF, los desarrolladores pueden rastrear caminos de ejecución, monitorear métricas de rendimiento e identificar áreas que requieren optimización. Además, la recopilación y el análisis de métricas de monitoreo centralizado son posibles al exportar datos de telemetría a plataformas de observabilidad, brindando a los desarrolladores la capacidad de preservar la salud de sus aplicaciones y proporcionar una experiencia de usuario impecable.

La integración de la implementación de OpenTelemetry.NET con IronPDF puede mejorar los flujos de trabajo de los desarrolladores para crear PDF y garantizar escalabilidad, rendimiento y confiabilidad en aplicaciones .NET. La integración de estas tecnologías ayuda a los desarrolladores a cumplir con las necesidades del desarrollo de software moderno y producir resultados sobresalientes, ya sea creando facturas, informes o documentación.

Cuando se compra como un paquete, IronPDF tiene un precio razonable e incluye una licencia de por vida. El paquete ofrece un gran valor a solo $999, que es una tarifa única para muchos sistemas. Ofrece a los titulares de licencias soporte de ingeniería en línea las 24 horas, los 7 días de la semana. Por favor visite el sitio web de Iron Software para obtener más detalles sobre el cargo. Explore los productos de Iron Software para obtener más información sobre las soluciones que ofrecen.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta