Aracılığıyla paylaş


.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 Yolarak ayarlayın. Yukarıdaki kod zincirleme çağrıda bu değişkeni WithEnvironmentaktarır.

Seq manifestosunda .NET Aspire

, dağıtım manifestosunun parçası olmamalıdır, bu nedenle 'ye zincirlenmiş bir çağrı yapılır. Üretim ortamınız için Seq dışında güvenli bir üretim .NET Aspire sunucusu ayarlamanız önerilir.

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 bağlama bağlamaları, daha iyi performans, taşınabilirlik ve güvenlik sunanbirimleriyle karşılaştırıldığında sınırlı işlevselliğe sahiptir ve bu da üretim ortamları için daha uygun olmasını sağlar. Ancak bind mount'lar, gerçek zamanlı değişikliklerin gerektiği geliştirme ve test için ideal olan konak sistemindeki dosyalara doğrudan erişim ve değişiklik yapılmasına olanak sağlar.

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:

.NET Aspire Seq tümleştirmesi aşağıdakileri işler:

  • SeqSettings.DisableHealthChecks falseolduğ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. tümleştirmelere genel bakış. Yedekleme hizmetine bağlı olarak, bazı tümleştirmeler bu özelliklerden yalnızca bazılarını destekleyemeyebilir. Örneğin, bazı tümleştirmeler kayıt tutmayı ve izlemeyi destekler, ancak ölçümleri desteklemez. Telemetri özellikleri, Yapılandırma bölümünde sunulan teknikler kullanılarak da devre dışı bırakılabilir.

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.