integrace .NET AspireSeq
zahrnuje: integraci hostování a
Client integraci
Seq je server pro vyhledávání a analýzu v místním prostředí, který zpracovává protokoly strukturovaných aplikací a trasovací soubory. Obsahuje JSON úložiště událostí a jednoduchý dotazovací jazyk, který usnadňuje použití. Integraci .NET AspireSeq můžete použít k odesílání dat OpenTelemetry Protocol (OTLP) do Seq. Integrace podporuje trvalé záznamy a trasování při opětovném spouštění aplikace.
Během vývoje se .NET.NET Aspire spustí a připojí k kontejnerovému obrazu datalust/seq
.
Integrace hostování
Integrace hostování Seq modeluje server jako typ SeqResource. Pokud chcete získat přístup k tomuto typu a rozhraní API, přidejte balíček NuGet 📦Aspire.Hosting.Seq do projektu aplikačního hostitele .
dotnet add package Aspire.Hosting.Seq
Další informace najdete v tématu dotnet add package nebo Řízení závislostí balíčků v aplikacích .NET.
Přidejte prostředek Seq
V projektu hostitele aplikace zavolejte AddSeq pro přidání a vrácení sestavovače prostředků 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...
Poznámka
Kontejner Seq může být pomalý při startu, takže je nejlepší použít trvalý životní cyklus , abyste se vyhnuli zbytečným restartům. Další informace naleznete v oddíle Doba životnosti kontejnerových prostředků.
Přijměte licenční smlouvu s koncovým uživatelem (EULA) Seq.
Musíte přijmout Seq EULA, aby Seq začalo. Pokud chcete přijmout smlouvu v kódu, předejte proměnnou prostředí ACCEPT_EULA
kontejneru Seq a nastavte její hodnotu na Y
. Výše uvedený kód předá tuto proměnnou v zřetězeném volání WithEnvironment.
Seq v manifestu .NET Aspire
Seq by nemělo být součástí .NET Aspiremanifestu nasazení, proto následuje řetězené volání ExcludeFromManifest. Doporučujeme nastavit zabezpečený produkční Seq server mimo .NET Aspire pro produkční prostředí.
Stálé protokoly a sledování
Zaregistrujte Seq v datovém adresáři v hostitelském projektu aplikace, abyste si zachovali data a konfiguraci Seqpři restartování aplikace:
var seq = builder.AddSeq("seq", seqDataDirectory: "./seqdata")
.ExcludeFromManifest()
.WithLifetime(ContainerLifetime.Persistent);
Zadaný adresář již musí existovat.
Přidat prostředek Seq s datovým svazkem
Pokud chcete do prostředku Seq přidat datový svazek, zavolejte metodu WithDataVolume prostředku 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);
Objem dat se používá k zachování Seq dat mimo životní cyklus kontejneru. Datový svazek se připojí k cestě /data
v kontejneru Seq a když není zadaný parametr name
, název se náhodně vygeneruje. Další informace o datových svazcích a podrobnosti o tom, proč se upřednostňují před vázanými úchyty, najdete v dokumentaci: Docker Svazky.
Přidat zdroj Seq s připojením dat
Chcete-li k prostředku Seq přidat datovou vazbu, zavolejte metodu 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);
Důležitý
Vazební připojení dat mají v porovnání se svazky omezené funkce, svazky nabízejí lepší výkon, přenositelnost a zabezpečení, což je činí vhodnějšími pro produkční prostředí. Vázané připojení však umožňuje přímý přístup a úpravy souborů na hostitelském systému, což je ideální pro vývoj a testování, kde jsou vyžadovány změny v reálném čase.
Datové připojovací body využívají systém souborů hostitelského počítače k zachování Seq dat při opakovaných restartech kontejneru. Připojení vazby dat je na hostitelském počítači připojeno na cestu C:\Data
ve Windows (nebo /Data
na Unix) v kontejneru Seq. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.
Client integrace
Pokud chcete začít s integrací klienta .NET AspireSeq, nainstalujte 📦Aspire.Seq balíček NuGet v projektu, který využívá klienta, to znamená projekt aplikace, která používá klienta Seq.
dotnet add package Aspire.Seq
Přidejte klienta Seq
V souboru Program.cs vašeho projektu využívajícího klienta zavolejte rozšiřující metodu AddSeqEndpoint pro registraci exportérů Protokolu OpenTelemetry pro odesílání protokolů a trasování do Seq a do Dashboardu .NET Aspire. Metoda přebírá parametr názvu připojení.
builder.AddSeqEndpoint(connectionName: "seq");
Spropitné
Parametr connectionName
se musí shodovat s názvem použitým při přidávání prostředku Seq do hostitelského projektu aplikace. Jinými slovy, když voláte AddSeq
a zadáte název seq
, tento stejný název by měl být použit při volání AddSeqEndpoint
. Další informace naleznete v tématu Přidání zdroje Seq.
Konfigurace
Integrace .NET AspireSeq nabízí několik možností konfigurace připojení k Seq na základě požadavků a konvencí projektu.
Použití zprostředkovatelů konfigurace
Integrace .NET AspireSeq podporuje Microsoft.Extensions.Configuration. Načte SeqSettings z konfigurace pomocí klíče Aspire:Seq
. Následující fragment kódu je příkladem souboru appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Seq": {
"DisableHealthChecks": true,
"ServerUrl": "http://localhost:5341"
}
}
}
Kompletní schéma integrace klienta SeqJSON naleznete v části Aspire.Seq/ConfigurationSchema.json.
Použití vložených delegátů
Můžete také předat delegáta Action<SeqSettings> configureSettings
k tomu, abyste přímo nastavili jednotlivé nebo všechny možnosti, například zakázat kontroly stavu z kódu.
builder.AddSeqEndpoint("seq", static settings =>
{
settings.DisableHealthChecks = true;
settings.ServerUrl = "http://localhost:5341"
});
Client testy stavu integrace
Ve výchozím nastavení mají .NET.NET Aspireklientské integracekontroly stavu povoleny pro všechny služby. Podobně mnoho .NET.NET Aspirehostovacích integrací také povoluje koncové body kontroly stavu. Další informace najdete tady:
Integrace .NET AspireSeq zpracovává následující:
- Přidá kontrolu stavu, když je SeqSettings.DisableHealthChecks ve stavu
false
, která se pokusí připojit k serveru Seq ke koncovému bodu/health
. - Integruje se s HTTP koncovým bodem
/health
, který určuje, že všechny registrované kontroly stavu musí být úspěšně dokončeny, aby byla aplikace považována za připravenou přijímat síťový provoz.
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfigurace protokolování, trasování a metrik, které jsou někdy označovány jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.
Protokolování
Integrace .NET AspireSeq používá následující kategorie protokolů:
Seq
Trasování a metriky
Integrace .NET AspireSeq negeneruje aktivity trasování a/nebo metriky, protože se jedná o jímku telemetrie, nikoli zdroj telemetrie.