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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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