Partager via


intégration de .NET AspireSeq

inclut : d’intégration d’hébergement et Client intégration

Seq est un serveur de recherche et d’analyse auto-hébergé qui gère les journaux d’application structurés et les fichiers de trace. Il inclut un magasin d’événements JSON et un langage de requête simple qui facilite l’utilisation. Vous pouvez utiliser l’intégration .NET AspireSeq pour envoyer des données OTLP (OpenTelemetry Protocol) à Seq. L’intégration prend en charge les journaux et traces persistants entre les redémarrages de l’application.

Pendant le développement, .NET.NET Aspire s’exécute et se connecte à l'image de conteneur datalust/seq.

Intégration de l’hébergement

L'intégration de l'hébergement Seq modélise le serveur comme étant de type SeqResource. Pour accéder à ce type et à l’API, ajoutez le .Hosting. package NuGet dans le projet hôte de l’application .

dotnet add package Aspire.Hosting.Seq

Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de packages dans les applications .NET.

Ajouter une ressource Seq

Dans votre projet hôte d’application, appelez AddSeq pour ajouter et retourner un générateur de ressources 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...

Note

Le conteneur Seq peut être lent à démarrer. Il est donc préférable d’utiliser une durée de vie persistante pour éviter les redémarrages inutiles. Pour plus d’informations, consultez durée de vie des ressources du conteneur.

Accepter le contrat de licence utilisateur final Seq (CLUF)

Vous devez accepter le CLUF Seq pour Seq commencer. Pour accepter le contrat dans le code, transmettez la variable d’environnement ACCEPT_EULA au conteneur Seq et définissez sa valeur sur Y. Le code ci-dessus passe cette variable dans l'appel en chaîne à WithEnvironment.

Seq dans le manifeste de .NET Aspire

Seq ne doit pas faire partie du manifeste de déploiement .NET Aspire, d'où l’appel chaîné à ExcludeFromManifest. Il est recommandé de configurer un serveur de production sécurisé Seq en dehors de .NET Aspire pour votre environnement de production.

Journaux persistants et traces

Enregistrez Seq dans un répertoire de données dans votre projet hôte d'application pour conserver les données et la configuration de Seqà travers les redémarrages de l’application.

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

Le répertoire spécifié doit déjà exister.

Ajouter une ressource Seq avec un volume de données

Pour ajouter un volume de données à la ressource Seq, appelez la méthode WithDataVolume sur la ressource 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);

Le volume de données est utilisé pour conserver les données Seq en dehors du cycle de vie de son conteneur. Le volume de données est monté sur le chemin /data dans le conteneur Seq et lorsqu’un paramètre name n’est pas fourni, le nom est généré aléatoirement. Pour plus d’informations sur les volumes de données et sur la raison pour laquelle ils sont préférés par rapport aux montages de liaison , consultez Docker documentation : Volumes.

Ajouter la ressource Seq avec montage de liaison de données

Pour ajouter un montage de liaison de données à la ressource Seq, appelez la méthode 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);

Important

Les montages de liaison de données ont des fonctionnalités limitées par rapport aux volumes , qui offrent de meilleures performances, portabilité et sécurité, les rendant ainsi plus adaptés aux environnements de production. Toutefois, les montages de liaison autorisent un accès direct et la modification des fichiers sur le système hôte, ce qui est idéal pour le développement et les tests lorsque des modifications en temps réel sont nécessaires.

Les montages de liaison des données s’appuient sur le système de fichiers de l’ordinateur hôte pour conserver les données Seq même en cas de redémarrages des conteneurs. Le point de montage de données est monté au chemin C:\Data sur Windows (ou /Data sur Unix) de la machine hôte dans le conteneur Seq. Pour plus d’informations sur les montages de liaison de données, consultez Docker docs : Liaison de montages.

intégration de Client

Pour commencer à utiliser l’intégration du client .NET AspireSeq, installez le 📦Aspire.Seq package NuGet dans le projet consommant le client, c’est-à-dire le projet pour l’application qui utilise le client Seq.

dotnet add package Aspire.Seq

Ajouter un client Seq

Dans le fichier Program.cs de votre projet client, appelez la méthode d’extension AddSeqEndpoint pour enregistrer les exportateurs de protocole OpenTelemetry afin d'envoyer les journaux et les traces à Seq et au tableau de bord .NET Aspire. La méthode prend un paramètre de nom de connexion.

builder.AddSeqEndpoint(connectionName: "seq");

Pourboire

Le paramètre connectionName doit correspondre au nom utilisé lors de l’ajout de la ressource Seq dans le projet hôte de l’application. En d’autres termes, lorsque vous appelez AddSeq et fournissez un nom de seq ce même nom doit être utilisé lors de l’appel de AddSeqEndpoint. Pour plus d’informations, consultez Ajouter une ressource Seq.

Configuration

L’intégration .NET AspireSeq fournit plusieurs options pour configurer la connexion à Seq en fonction des exigences et des conventions de votre projet.

Utiliser des fournisseurs de configuration

L’intégration .NET AspireSeq prend en charge Microsoft.Extensions.Configuration. Il charge le SeqSettings depuis la configuration à l’aide de la clé Aspire:Seq. L’extrait de code suivant est un exemple de fichier appsettings.json qui configure certaines des options :

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

Pour obtenir le schéma complet Seq l’intégration du client JSON, consultez Aspire.Seq/ConfigurationSchema.json.

Utiliser des délégués inline

Vous pouvez également transmettre le délégué Action<SeqSettings> configureSettings pour configurer certaines ou toutes les options en ligne, par exemple pour désactiver les vérifications de santé depuis le code :

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

Vérifications d’intégrité

Par défaut, .NET.NET Aspire intégrations permettent contrôles de santé pour tous les services. Pour plus d’informations, consultez .NET.NET Aspire vue d’ensemble des intégrations.

L’intégration .NET AspireSeq gère les éléments suivants :

  • Ajoute le contrôle d’intégrité lorsque SeqSettings.DisableHealthChecks est false, tentant de se connecter au point de terminaison /health du serveur Seq.
  • S’intègre au point de terminaison HTTP /health, qui spécifie que tous les contrôles de santé enregistrés doivent réussir pour que l’application soit considérée comme prête à accepter le trafic.

Observabilité et télémétrie

.NET .NET Aspire intégrations configurent automatiquement la journalisation, le suivi et les métriques, parfois appelés les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.

Exploitation forestière

L’intégration .NET AspireSeq utilise les catégories de logs suivantes :

  • Seq

Suivi et métriques

L’intégration .NET AspireSeq n’émet pas d’activités de suivi et ou de métriques, car il s’agit d’un récepteur de télémétrie, et non d’une source de télémétrie.

Voir aussi