.NET Aspire Seq tümleştirmesi
Içerir: Barındırma tümleştirmesi ve
Client tümleştirmesi
Seq, yapılandırılmış uygulama günlüklerini ve izleme dosyalarını işleyen şirket içinde barındırılan bir arama ve analiz sunucusudur. Bir JSON olay deposu ve kullanımı kolaylaştıran basit bir sorgu dili içerir. .NET Aspire Protokolü (OTLP) verilerini Seqgöndermek için OpenTelemetrySeq tümleştirmesini kullanabilirsiniz. Tümleştirme, uygulama yeniden başlatmaları arasında kalıcı günlükleri ve izleri destekler.
Geliştirme sırasında .NET.NET Aspire çalışır ve datalust/seq
kapsayıcı görüntüsü'e bağlanır.
Barındırma entegrasyonu
Sunucuyu Seq türü olarak modelleyen SeqResource barındırma entegrasyonu. Bu türe ve API'ye erişmek için 📦Aspire.Hosting.Seq NuGet paketini uygulama konağı projesine ekleyin.
dotnet add package Aspire.Hosting.Seq
Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.
Seq kaynağı ekleme
Uygulama ana bilgisayar projenizde AddSeq çağırarak bir Seq kaynak oluşturucu ekleyin ve döndürin.
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...
Not
Seq kapsayıcısı yavaş başlatılabilir, bu nedenle gereksiz yeniden başlatmaları önlemek için kalıcı ömrü kullanmak en iyisidir. Daha fazla bilgi için bkz. Kapsayıcı kaynak ömrü.
Seq Son Kullanıcı Lisans Sözleşmesi'ni (EULA) kabul edin
Seq başlatmak için Seq EULA'yı kabul etmeniz gerekiyor. Sözleşmeyi kodda kabul etmek için ACCEPT_EULA
ortam değişkenini Seq kapsayıcısına geçirin ve değerini Y
olarak ayarlayın. Yukarıdaki kod zincirleme çağrıda bu değişkeni WithEnvironmentaktarır.
Seq manifestosunda .NET Aspire
Kalıcı günlükler ve izler
Uygulama yeniden başlatmalarında Seqverilerini ve yapılandırmasını korumak için Seq uygulama ana bilgisayar projenizde bir veri dizinine kaydedin:
var seq = builder.AddSeq("seq", seqDataDirectory: "./seqdata")
.ExcludeFromManifest()
.WithLifetime(ContainerLifetime.Persistent);
Belirtilen dizin zaten mevcut olmalıdır.
Veri hacmiyle bir Seq kaynağı ekleyin
Seq kaynağına veri birimi eklemek için WithDataVolume kaynağında Seq yöntemini çağırın:
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);
Veri hacmi, Seq verilerini kapsayıcısının yaşam döngüsü dışında kalıcı hale getirmek için kullanılır. Veri birimi, /data
kapsayıcısının Seq yoluna bağlanır ve name
parametresi sağlanmazsa ad rastgele oluşturulur. Veri hacimleri hakkında daha fazla bilgi ve neden bağ montajlarıyerine tercih edildiklerine dair ayrıntılar için, Docker belgeler: Birimlerkısmına bakın.
Veri bağlama ile Seq kaynağı ekleme
Seq kaynağına veri bağlaması eklemek için WithDataBindMount yöntemini çağırın:
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);
Önemli
Veri
Veri bağlama bağlamaları, kapsayıcı yeniden başlatmaları arasında Seq verileri kalıcı hale getirmek için konak makinenin dosya sistemine dayanır. Veri bağlama montajı, C:\Data
kapsayıcısında konak makinedeki Windows'ta /Data
(veya Unix'de Seq) yolunda monte edilir. Veri bağlama noktaları hakkında daha fazla bilgi için Docker belgelerine bakın: Bağlamalar.
Client entegrasyonu
.NET Aspire Seq istemci tümleştirmesine başlamak için 📦Aspire'ü yükleyin.Seq NuGet paketini, Seq istemcisini kullanan uygulama projesinde, yani istemciyi tüketen projede yükleyin.
dotnet add package Aspire.Seq
Seq Müşteri ekle
İstemci tüketen projenizin Program.cs dosyasında, günlükler ve izleri Seq ve .NET Aspire Panosuna göndermek üzere OpenTelemetry Protokol ihracatçılarını kaydetmek için AddSeqEndpoint uzantı yöntemini çağırın. yöntemi bir bağlantı adı parametresi alır.
builder.AddSeqEndpoint(connectionName: "seq");
Bahşiş
connectionName
parametresi, uygulama ana bilgisayar projesine Seq kaynağı eklerken kullanılan adla eşleşmelidir. Başka bir deyişle, AddSeq
çağırdığınızda ve seq
adını sağladığınızda, AddSeqEndpoint
çağrılırken aynı adı kullanmalısınız. Daha fazla bilgi için bkz. Seq kaynağı ekleme.
Konfigürasyon
.NET Aspire Seq tümleştirmesi, projenizin gereksinimlerine ve kurallarına göre Seq bağlantısını yapılandırmak için birden çok seçenek sağlar.
Yapılandırma sağlayıcılarını kullanma
.NET Aspire
Seq tümleştirmesi Microsoft.Extensions.Configurationdestekler.
Aspire:Seq
anahtarını kullanarak yapılandırmadan SeqSettings yükler. Aşağıdaki kod parçacığı, bazı seçenekleri yapılandıran bir appsettings.json dosyası örneğidir:
{
"Aspire": {
"Seq": {
"DisableHealthChecks": true,
"ServerUrl": "http://localhost:5341"
}
}
}
Tam Seq istemci entegrasyonu JSON şeması için bkz. Aspire.Seq/ConfigurationSchema.json.
Satır içi temsilcileri kullanın
Ayrıca, bazı veya tüm seçenekleri satır içi olarak ayarlamak için Action<SeqSettings> configureSettings
temsilcisini aktarabilirsiniz; örneğin, kod üzerinden sağlık kontrollerini devre dışı bırakmak için:
builder.AddSeqEndpoint("seq", static settings =>
{
settings.DisableHealthChecks = true;
settings.ServerUrl = "http://localhost:5341"
});
Client entegrasyon sağlık kontrolleri
Varsayılan olarak, .NET.NET Aspireistemci entegrasyonları tüm hizmetler için sağlık kontrolleri etkindir. Benzer şekilde, birçok .NET.NET Aspirebarındırma entegrasyonu sağlık kontrol uç noktalarını da etkinleştirir. Daha fazla bilgi için bkz:
- C#'de .NET uygulama sağlık kontrolleri
- ASP.NET Core 'da sağlık denetimleri
.NET Aspire Seq tümleştirmesi aşağıdakileri işler:
-
SeqSettings.DisableHealthChecks
false
olduğunda sistem durumu denetimini ekler ve Seq sunucusunun/health
uç noktasına bağlanmaya çalışır. - Uygulamanın trafiği kabul etmeye hazır olarak kabul edilmesi için tüm kayıtlı sistem durumu denetimlerinin geçmesi gerektiğini belirten
/health
HTTP uç noktasıyla tümleşir.
Gözlemlenebilirlik ve telemetri
.NET
.NET Aspire tümleştirmeleri, bazen gözlemlenebilirliğin temel ilkeleri olarak bilinen Günlük, İzleme ve Ölçüm yapılandırmalarını otomatik olarak ayarlar. Tümleştirme gözlemlenebilirliği ve telemetri hakkında daha fazla bilgi için bkz.
Loglama
.NET Aspire Seq tümleştirmesi aşağıdaki günlük kategorilerini kullanır:
Seq
İzleme ve Ölçümler
.NET Aspire Seq tümleştirmesi, bir telemetri kaynağı değil, bir telemetri havuzu olduğu için izleme etkinlikleri veya ölçümleri yaymaz.
Ayrıca bkz.
.NET Aspire