Compartir a través de


integración .NET AspireSeq

incluye: integración de hospedaje de e integración de Client

Seq es un servidor de búsqueda y análisis autohospedado que controla los registros de aplicaciones estructurados y los archivos de seguimiento. Incluye un almacén de eventos JSON y un lenguaje de consulta sencillo que facilita el uso. Puede usar la integración de .NET AspireSeq para enviar datos del Protocolo OpenTelemetry (OTLP) a Seq. La integración admite registros y seguimientos persistentes en los reinicios de la aplicación.

Durante el desarrollo, .NET.NET Aspire se ejecuta y conecta a la imagen del contenedor datalust/seq.

Integración de hospedaje

La integración de alojamiento de Seq modela el servidor como el tipo SeqResource. Para acceder a este tipo y a la API, agregue el paquete NuGet 📦Aspire.Hosting.Seq en el proyecto host de la aplicación.

dotnet add package Aspire.Hosting.Seq

Para obtener más información, consulte dotnet add package o Gestionar las dependencias de paquetes en .NET applications.

Añade un recurso Seq

En el proyecto host de la aplicación, utilice AddSeq para agregar y devolver un constructor de recursos Seq.

var builder = DistributedApplication.CreateBuilder(args);

var seq = builder.AddSeq("seq")
                 .ExcludeFromManifest()
                 .WithLifetime(ContainerLifetime.Persistent)
                 .WithEnvironment("ACCEPT_EULA", "Y");

var myService = builder.AddProject<Projects.ExampleProject>()
                       .WithReference(seq)
                       .WaitFor(seq);

// After adding all resources, run the app...

Nota

El contenedor de Seq puede ser lento para iniciar, por lo que es mejor utilizar una vida útil persistente para evitar reinicios innecesarios. Para obtener más información, consulte duración de vida del recurso de contenedor.

Aceptar el contrato de licencia de usuario final (CLUF) de Seq

Para comenzar, debe aceptar el Seq CLUF de Seq. Para aceptar el contrato en el código, pase la variable de entorno ACCEPT_EULA al contenedor de Seq y establezca su valor en Y. El código anterior pasa esta variable en la invocación encadenada a WithEnvironment.

Seq en el manifiesto .NET Aspire

Seq no debe formar parte del manifiesto de despliegue de .NET Aspire, de ahí la llamada encadenada a ExcludeFromManifest. Se recomienda configurar un servidor de Seq de producción seguro fuera de .NET Aspire para el entorno de producción.

Registros y seguimientos persistentes

Registre el Seq mediante un directorio de datos en el proyecto host de la aplicación para conservar los datos y la configuración de Seqen todos los reinicios de la aplicación.

var seq = builder.AddSeq("seq", seqDataDirectory: "./seqdata")
                 .ExcludeFromManifest()
                 .WithLifetime(ContainerLifetime.Persistent);

El directorio especificado ya debe existir.

Agregar un recurso Seq con un volumen de datos

Para agregar un volumen de datos al recurso de Seq, llame al método WithDataVolume en el recurso Seq:

var builder = DistributedApplication.CreateBuilder(args);

var seq = builder.AddSeq("seq")
                 .WithDataVolume()
                 .ExcludeFromManifest()
                 .WithLifetime(ContainerLifetime.Persistent);

var myService = builder.AddProject<Projects.ExampleProject>()
                       .WithReference(seq)
                       .WaitFor(seq);

El volumen de datos se usa para conservar los datos de Seq fuera del ciclo de vida del contenedor. El volumen de datos se monta en la ruta /data en el contenedor Seq y, cuando no se proporciona un parámetro name, el nombre se genera aleatoriamente. Para obtener más información sobre los volúmenes de datos y los detalles sobre por qué se prefieren a montajes enlazados, consulte los Docker documentos: Volúmenes.

Adición del recurso Seq con montaje vinculante de datos

Para agregar un montaje de enlace para datos al recurso de Seq, llame al método WithDataBindMount.

var builder = DistributedApplication.CreateBuilder(args);

var seq = builder.AddSeq("seq")
                 .WithDataBindMount(source: @"C:\Data")
                 .ExcludeFromManifest()
                 .WithLifetime(ContainerLifetime.Persistent);

var myService = builder.AddProject<Projects.ExampleProject>()
                       .WithReference(seq)
                       .WaitFor(seq);

Importante

Los montajes de enlace de datos tienen una funcionalidad limitada en comparación con los volúmenes, que ofrecen un mejor rendimiento, portabilidad y seguridad, lo que los hace más adecuados para entornos de producción. Sin embargo, los montajes de vinculación permiten el acceso directo y la modificación de archivos en el sistema host, lo que es ideal para el desarrollo y las pruebas donde se requieren cambios inmediatos.

Los montajes de enlace de datos dependen del sistema de archivos de la máquina anfitriona para conservar los datos de Seq durante los reinicios del contenedor. El montaje de enlace de datos está montado en la ruta de acceso C:\Data en Windows (o /Data en Unix) en la máquina anfitriona en el contenedor Seq. Para obtener más información sobre los montajes vinculados de datos, consulte la documentación Docker: Montajes vinculados.

integración Client

Para empezar a trabajar con la integración del cliente de .NET AspireSeq, instale el paquete NuGet 📦Aspire.Seq en el proyecto consumidor del cliente, es decir, el proyecto de la aplicación que usa el cliente de Seq.

dotnet add package Aspire.Seq

Agregar un cliente de Seq

En el archivo Program.cs del proyecto que consume el cliente, llame al método de extensión AddSeqEndpoint para registrar exportadores de protocolo OpenTelemetry para enviar registros y seguimientos a Seq y al panel de .NET Aspire. El método toma un parámetro de nombre de conexión.

builder.AddSeqEndpoint(connectionName: "seq");

Propina

El parámetro connectionName debe coincidir con el nombre usado al agregar el recurso Seq en el proyecto host de la aplicación. Es decir, cuando se llama a AddSeq y se proporciona un nombre de seq ese mismo nombre se debe usar al llamar a AddSeqEndpoint. Para obtener más información, consulte Añadir Seq un recurso.

Configuración

La integración de .NET AspireSeq proporciona varias opciones para configurar la conexión a Seq en función de los requisitos y convenciones del proyecto.

Uso de proveedores de configuración

La integración de .NET AspireSeq admite Microsoft.Extensions.Configuration. Carga el SeqSettings desde la configuración mediante la clave Aspire:Seq. El fragmento de código siguiente es un ejemplo de un archivo appsettings.json que configura algunas de las opciones:

{
  "Aspire": {
    "Seq": {
      "DisableHealthChecks": true,
      "ServerUrl": "http://localhost:5341"
    }
  }
}

Para obtener el esquema de integración completo del cliente SeqJSON, consulte Aspire.Seq/ConfigurationSchema.json.

Utiliza delegados en línea

También puede pasar el delegado Action<SeqSettings> configureSettings para configurar algunas o todas las opciones en línea, por ejemplo, para deshabilitar desde el código las comprobaciones de salud:

builder.AddSeqEndpoint("seq", static settings => 
{
    settings.DisableHealthChecks  = true;
    settings.ServerUrl = "http://localhost:5341"
});

Client comprobaciones de salud de integración

De forma predeterminada, las integraciones de cliente .NET.NET Aspire tienen las comprobaciones de estado habilitadas para todos los servicios. Del mismo modo, muchas .NET.NET Aspireintegraciones de hosting también habilitan los endpoints de verificación de estado. Para obtener más información, consulte:

La integración de .NET AspireSeq controla lo siguiente:

  • Agrega la comprobación de estado cuando SeqSettings.DisableHealthChecks es false, que intenta conectarse al punto de conexión de Seq del servidor de /health.
  • Se integra con el punto de conexión HTTP de /health, que especifica que todas las verificaciones de estado registradas deben superarse para que la aplicación se considere lista para recibir tráfico.

Observabilidad y telemetría

.NET .NET Aspire integraciones configuran automáticamente las configuraciones de registro, seguimiento y métricas, que a veces se conocen como los pilares de la observabilidad. Para obtener más información sobre la observabilidad de integración y la telemetría, consulte información general sobre las integraciones de .NET.NET Aspire. En función del servicio de respaldo, algunas integraciones solo pueden admitir algunas de estas características. Por ejemplo, algunas integraciones admiten el registro y el seguimiento, pero no las métricas. Las características de telemetría también se pueden deshabilitar mediante las técnicas presentadas en la sección Configuración.

Registro

La integración de .NET AspireSeq usa las siguientes categorías de registro:

  • Seq

Seguimiento y métricas

La integración de .NET AspireSeq no emite actividades de seguimiento ni métricas porque actúa como receptor de telemetría, no como un origen de telemetría.

Consulte también