Overview
La librería CodeDesignPlus.Net.Observability
proporciona un conjunto de herramientas y extensiones para simplificar la configuración y el uso de la telemetría en aplicaciones .NET. Su objetivo principal es facilitar la implementación de la observabilidad a través de OpenTelemetry, permitiendo a los desarrolladores recopilar métricas y trazas para monitorear el rendimiento y el comportamiento de sus aplicaciones.
Propósito y alcance
Esta librería se centra en encapsular las configuraciones y las integraciones necesarias para habilitar la observabilidad en aplicaciones .NET. El alcance abarca la recopilación de métricas y trazas de varios componentes como ASP.NET Core, gRPC, SQL, Redis, Kafka y componentes personalizados de la librería CodeDesignPlus. Su propósito es proporcionar una forma consistente y sencilla de instrumentar aplicaciones para mejorar la capacidad de monitoreo y depuración.
Principales características
- Configuración Simplificada de OpenTelemetry: Facilita la configuración de OpenTelemetry para la recopilación de métricas y trazas.
- Integración con ASP.NET Core: Habilita la instrumentación para métricas y trazas de ASP.NET Core.
- Soporte para gRPC: Proporciona instrumentación para clientes gRPC.
- Soporte para bases de datos SQL: Permite la recopilación de trazas de bases de datos SQL.
- Integración con Redis: Habilita la recopilación de trazas de Redis.
- Soporte para Kafka: Proporciona instrumentación para productores y consumidores de Kafka.
- Instrumentación Personalizada: Ofrece la posibilidad de instrumentar componentes específicos de la librería CodeDesignPlus.
- Exportación a OTLP: Configura la exportación de telemetría utilizando el protocolo OTLP.
- Salida a Consola: Permite la visualización de telemetría en la consola durante el desarrollo.
Casos de uso típicos
- Proyectos que implementan microservicios en .NET.
- Aplicaciones que requieren monitoreo y seguimiento de rendimiento.
- Sistemas que utilizan gRPC, SQL, Redis y Kafka para la comunicación y el almacenamiento.
- Desarrolladores que desean una solución sencilla para instrumentar sus aplicaciones con OpenTelemetry.
- Proyectos que requieren la recopilación y el análisis de métricas y trazas.
Componentes Principales
ServiceCollectionExtensions.cs
: Proporciona métodos de extensión para la interfazIServiceCollection
, facilitando la configuración de la telemetría.AddObservability
: Método de extensión principal que configura OpenTelemetry para métricas y trazas, también permite la configuración personalizada a través de actions.ConfigureMetrics
: Método que configura la instrumentación y el exportador de métricas de OpenTelemetry.ConfigureTracing
: Método que configura la instrumentación y el exportador de trazas de OpenTelemetry, también los instrumentadores para diferentes frameworks.AddMetricsAspNetCoreInstrumentation
: Método que configura la instrumentación de métricas para ASP.NET Core.AddTraceAspNetCoreInstrumentation
: Método que configura la instrumentación de trazas para ASP.NET Core.AddTraceGrpcClientInstrumentation
: Método que configura la instrumentación de trazas para clientes gRPC.AddTraceSqlClientInstrumentation
: Método que configura la instrumentación de trazas para clientes SQL.AddTraceCodeDesignPlusSdkInstrumentation
: Método que configura la instrumentación de trazas para componentes de CodeDesignPlus.AddTraceRedisInstrumentation
: Método que configura la instrumentación de trazas para Redis.AddTraceKafkaInstrumentation
: Método que configura la instrumentación de trazas para Kafka.
Directorysrc
DirectoryCodeDesignPlus.Net.Observability
DirectoryExceptions
- ObservabilityException.cs
DirectoryExtensions
- ServiceCollectionExtensions.cs
DirectoryCodeDesignPlus.Net.Observability.Abstractions
DirectoryOptions
- Metrics.cs
- ObservabilityOptions.cs
- Trace.cs
Primeros Pasos
En esta sección, aprenderás a instalar y configurar la librería CodeDesignPlus.Net.Observability
en tu proyecto de .NET. Explorarás los servicios, métodos de extensión y componentes principales que proporciona la librería para configurar la telemetría en tus aplicaciones.
Requisitos previos
- .NET 8 o superior.
- Conocimiento básico de OpenTelemetry.
- Familiaridad con ASP.NET Core y/o gRPC.
- Familiaridad con la configuración de opciones en .NET.
Instalación
Para instalar la librería CodeDesignPlus.Net.Observability
, puedes utilizar el administrador de paquetes NuGet o la CLI de .NET. A continuación, se muestra un ejemplo de cómo instalar la librería utilizando la CLI de .NET:
dotnet add package CodeDesignPlus.Net.Observability
Install-Package CodeDesignPlus.Net.Observability
<PackageReference Include="CodeDesignPlus.Net.Observability" Version="1.0.0" />
Ejemplo rápido
La solución CodeDesignPlus.Net.Observability.Sample muestra cómo configurar la telemetría en una aplicación .NET Core. A continuación, se muestra un ejemplo de cómo configurar la telemetría en tu proyecto:
using CodeDesignPlus.Net.Observability.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddObservability(builder.Configuration, builder.Environment);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
-
Agregar configuración en
appsettings.json
{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","Core": {"Business": "CodeDesignPlus","AppName": "sample-observability","Version": "v1","Description": "Sample of CodeDesignPlus.Net.Core","Contact": {"Name": "CodeDesignPlus","Email": "custom@outlook.com"}},"Observability": {"Enable": true,"ServerOtel": "http://localhost:4317","Metrics": {"Enable": true,"AspNetCore": true},"Trace": {"Enable": true,"AspNetCore": true,"GrpcClient": true,"SqlClient": true,"CodeDesignPlusSdk": true,"Redis": true,"Kafka": true}}} -
Registramos los servicios en
Startup.cs
oProgram.cs
builder.Services.AddObservability(builder.Configuration, builder.Environment);
Métodos de extensión
La librería CodeDesignPlus.Net.Observability
proporciona métodos de extensión para configurar y añadir comportamiento a los servicios de telemetría. A continuación, se describen los métodos de extensión más importantes:
AddObservability
Método de extensión principal que configura OpenTelemetry, permite la configuración de metricas y trazas de manera customizada mediante actions.
Opciones de configuración
CodeDesignPlus.Net.Observability
utiliza una sección de configuración llamada “Observability” para definir el comportamiento de la telemetría. Las opciones incluyen:
Conclusiones
La librería CodeDesignPlus.Net.Observability
simplifica la configuración y la integración de OpenTelemetry en aplicaciones .NET. Al proporcionar métodos de extensión y opciones de configuración predefinidas, reduce la complejidad y el tiempo necesario para habilitar la telemetría en aplicaciones. Su capacidad de instrumentar varios componentes la convierte en una herramienta esencial para construir aplicaciones observabless y fácilmente monitoreables.
Recursos externos
- Documentación oficial de OpenTelemetry
- Documentación oficial de ASP.NET Core
- Documentación oficial de gRPC
- Documentación oficial de Redis
- Documentación oficial de Kafka
- Documentación oficial de SqlClient
- Documentación de CodeDesignPlus.Net.Core.Abstractions
- Documentación de CodeDesignPlus.Net.Observability