Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Seq är en sök- och analysserver med egen värd som hanterar strukturerade programloggar och spårningsfiler. Den innehåller ett JSON händelsearkiv och ett enkelt frågespråk som gör det enkelt att använda. Du kan använda AspireSeq-integreringen för att skicka OpenTelemetry Protocol-data (OTLP) till Seq. Integreringen stöder beständiga loggar och spårningar mellan programomstarter.
Under utvecklingen körs Aspire och sedan ansluts det till datalust/seq containeravbildningen.
Värdskap integrering
Seq-integrationen modellerar servern som en SeqResource-typ. Om du vill komma åt den här typen och API:et, lägger du till 📦Aspire.Hosting.Seq NuGet-paketet i AppHost-projektet.
dotnet add package Aspire.Hosting.Seq
Mer information finns i dotnet lägg till paket eller Hantera paketberoenden i .NET applikationer.
Lägga till en Seq resurs
I ditt AppHost-projekt använder du AddSeq för att lägga till och returnera en Seq resurskompilator.
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...
Obs!
Den Seq container kan vara långsam att starta, så det är bäst att använda en beständig driftstid för att undvika onödiga omstarter. För mer information, se containerresursens livslängd.
Godkänn licensavtalet för Seq slutanvändare (EULA)
Du måste godkänna Seq EULA- för att Seq ska starta. Om du vill godkänna avtalet i koden skickar du miljövariabeln ACCEPT_EULA till containern Seq och anger dess värde till Y. Koden ovan skickar den här variabeln i det länkade anropet till WithEnvironment.
Seq i Aspire-manifestet
Seq bör inte ingå i Aspiredistributionsmanifestet, därav det länkade anropet till ExcludeFromManifest. Vi rekommenderar att du konfigurerar en säker produktionsserver Seq utanför Aspire för produktionsmiljön.
Beständiga loggar och spårningar
Registrera Seq med en datamapp i ditt AppHost-projekt för att behålla Seqs data och konfiguration mellan programomstarter.
var seq = builder.AddSeq("seq", seqDataDirectory: "./seqdata")
                 .ExcludeFromManifest()
                 .WithLifetime(ContainerLifetime.Persistent);
Den angivna katalogen måste redan finnas.
Lägga till en Seq resurs med en datavolym
Om du vill lägga till en datavolym i resursen Seq anropar du metoden WithDataVolume på den Seq resursen:
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);
Datavolymen används för att bevara Seq data utanför containerns livscykel. Datamängden monteras på sökvägen /data i Seq-containern och om en name-parameter inte anges, genereras namnet slumpmässigt. Mer information om datavolymer och om varför de föredras framför bind mountsfinns i Docker dokument: Volymer.
Lägg till Seq resurs med databindnings-fäste
För att lägga till ett data bind mount till resursen Seq, anropa metoden 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);
Viktig
Data bind mounts har begränsade funktioner jämfört med volymer, som erbjuder bättre prestanda, portabilitet och säkerhet, vilket gör dem mer lämpliga för produktionsmiljöer. Bindningsmonteringar tillåter dock direkt åtkomst och ändring av filer i värdsystemet, perfekt för utveckling och testning där realtidsändringar behövs.
Databindningar förlitar sig på värddatorns filsystem för att bevara Seq data mellan containeromstarter. Databindningen monteras på sökvägen C:\Data på Windows (eller /Data på Unix) på värddatorn i containern Seq. Mer information om bindmonteringar av data finns i dokumentationen om bindmonteringar.
Client integration
Kom igång med AspireSeq-klientintegrering genom att installera 📦Aspire.Seq NuGet-paket i det klientkrävande projektet, d.v.s. projektet för programmet som använder Seq-klienten.
dotnet add package Aspire.Seq
Lägga till en Seq-klient
I Program.cs-filen för ditt klientprojekt anropar du AddSeqEndpoint-metoden för att registrera OpenTelemetry-protokollexportörer som skickar loggar och spår till Seq och Aspire-instrumentpanelen. Metoden tar en parameter för anslutningsnamn.
builder.AddSeqEndpoint(connectionName: "seq");
Tips
Parametern connectionName måste matcha det namn som används när du lägger till resursen Seq i AppHost-projektet. Med andra ord, när du anropar AddSeq och anger ett namn på seq ska samma namn användas när du anropar AddSeqEndpoint. För mer information, se Lägg till en Seq resurs.
Konfiguration
Den AspireSeq integreringen innehåller flera alternativ för att konfigurera anslutningen till Seq baserat på kraven och konventionerna i ditt projekt.
Använda konfigurationsprovidrar
              Aspire
              Seq-integreringen stöder Microsoft.Extensions.Configuration. Den läser in SeqSettings från konfigurationen med hjälp av Aspire:Seq-nyckeln. Följande kodfragment är ett exempel på en appsettings.json fil som konfigurerar några av alternativen:
{
  "Aspire": {
    "Seq": {
      "DisableHealthChecks": true,
      "ServerUrl": "http://localhost:5341"
    }
  }
}
Det fullständiga Seq klientintegreringsschemat JSON finns i Aspire.Seq/ConfigurationSchema.json.
Använda namngiven konfiguration
Integreringen AspireSeq stöder namngiven konfiguration, vilket gör att du kan konfigurera flera instanser av samma resurstyp med olika inställningar. Den namngivna konfigurationen använder anslutningsnamnet som en nyckel under huvudkonfigurationsavsnittet.
{
  "Aspire": {
    "Seq": {
      "seq1": {
        "ServerUrl": "http://seq1:5341",
        "DisableHealthChecks": true
      },
      "seq2": {
        "ServerUrl": "http://seq2:5341",
        "DisableHealthChecks": false
      }
    }
  }
}
I det här exemplet kan anslutningsnamnen seq1 och seq2 användas när du anropar AddSeqEndpoint:
builder.AddSeqEndpoint("seq1");
builder.AddSeqEndpoint("seq2");
Den namngivna konfigurationen har företräde framför konfigurationen på den översta nivån. Om båda anges åsidosätter inställningarna från den namngivna konfigurationen inställningarna på den översta nivån.
Använd inbäddade delegeringar
Du kan också använda Action<SeqSettings> configureSettings delegering för att konfigurera vissa eller alla alternativ i koden, till exempel för att inaktivera hälsokontroller i koden.
builder.AddSeqEndpoint("seq", static settings => 
{
    settings.DisableHealthChecks  = true;
    settings.ServerUrl = "http://localhost:5341"
});
Client hälsokontroller för integrering
Som standard Aspire har klientintegreringarhälsokontroller aktiverade för alla tjänster. På samma sätt möjliggör många Aspirehostingintegrationer även hälsokontrolländpunkter. Mer information finns i:
Integreringen AspireSeq hanterar följande:
- Lägger till hälsokontrollen när SeqSettings.DisableHealthChecks är false, som försöker ansluta till Seq-serverns/healthslutpunkt.
- Integrerar med /healthHTTP-slutpunkten, som anger att alla registrerade hälsokontroller måste godkännas för att appen ska anses redo att ta emot trafik.
Observerbarhet och telemetri
Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i Aspire översikten över integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.
Skogsavverkning
Aspire Seq-integreringen använder följande loggkategorier:
- Seq
Spårning och mått
Den AspireSeq integreringen genererar inte spårningsaktiviteter och eller mått eftersom det är en telemetrimottagare, inte en telemetrikälla.