共用方式為


.NET Aspire Seq 整合

包括:裝載整合Client 整合

Seq 是一種自我裝載的搜尋和分析伺服器,可處理結構化的應用程式記錄和追蹤檔案。 它包含 JSON 事件存放區和簡單的查詢語言,可讓您輕鬆使用。 您可以使用 .NET AspireSeq 整合,將 OpenTelemetry 通訊協定 (OTLP) 資料傳送至 Seq。 整合支援在應用程式重新啟動後持續的記錄和追蹤。

在開發期間,.NET.NET Aspire 會執行並連線到 datalust/seq 容器映射

主機整合

Seq 裝載整合將伺服器模型化為 SeqResource 類型。 若要存取此類型和 API,請在 📦 專案中新增 AspireSeq.Hosting. NuGet 套件。

dotnet add package Aspire.Hosting.Seq

如需詳細資訊,請參閱 dotnet add package管理 .NET 應用程式中的套件相依性

新增 Seq 資源

在您的應用程式主專案中,呼叫 AddSeq 以新增並傳回 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...

注意

Seq 容器可能啟動速度很慢,因此最好使用 持續性 存留期,以避免不必要的重新啟動。 如需詳細資訊,請參閱 容器資源存留期

接受 Seq 最終使用者許可協定 (EULA)

您必須接受 Seq 的 EULA,才能啟動 Seq。 若要在程式代碼中接受合約,請將環境變數 ACCEPT_EULA 傳遞至 Seq 容器,並將其值設定為 Y。 此程式碼在鏈式呼叫中傳遞這個變數給 WithEnvironment

Seq 在 .NET Aspire 清單中

不應該是部署指令清單的一部分,因此鏈結呼叫 。 建議您為生產環境設定 Seq 以外的安全生產 .NET Aspire 伺服器。

持久性記錄和追蹤

在應用程式主專案中向數據目錄註冊 Seq,以在應用程式重新啟動時保留 Seq的數據和設定:

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

指定的目錄必須已經存在。

使用數據磁碟區新增 Seq 資源

若要將數據磁碟區新增至 Seq 資源,請在 WithDataVolume 資源上呼叫 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);

數據磁碟區可用來將 Seq 數據保存在其容器生命週期之外。 資料量會掛接在 /data 路徑下的 Seq 容器中,當未提供 name 參數時,名稱會隨機生成。 如需有關數據磁碟區的更多資訊,以及為什麼它們比 系結掛接更受偏好的詳細資訊,請參閱 Docker 文件:磁碟區

新增具有數據綁定掛載功能的 Seq 資源

若要將數據系結掛接新增至 Seq 資源,請呼叫 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);

重要

相較於 磁碟區,數據 系結掛 接的功能有限,可提供更佳的效能、可移植性和安全性,使其更適合生產環境。 不過,綁定掛載允許在主機系統上直接存取和修改檔案,非常適合用於開發和測試中需要即時變更的情況下。

數據系結裝載依賴主計算機的檔案系統,在容器重新啟動時保存 Seq 數據。 數據綁定掛載會掛載在 C:\Data 容器中主機上的 /Data 路徑(或 Unix上的 Seq 路徑)。 如需資料系結掛接的詳細資訊,請參閱 Docker 檔:系結掛接

Client 整合

若要開始使用 .NET AspireSeq 用戶端整合,請安裝 📦Aspire。Seq 客戶端取用專案中的 NuGet 套件,也就是使用 Seq 客戶端的應用程式專案。

dotnet add package Aspire.Seq

新增 Seq 用戶端

在用戶端取用專案的 Program.cs 檔案中,呼叫 AddSeqEndpoint 擴充方法來註冊 OpenTelemetry 通訊協定導出工具,以將記錄和追蹤傳送至 Seq 和 .NET Aspire 儀錶板。 方法會採用連接名稱參數。

builder.AddSeqEndpoint(connectionName: "seq");

提示

connectionName 參數必須符合在應用程式主專案中新增 Seq 資源時所使用的名稱。 換句話說,當您呼叫 AddSeq 並提供名稱 seq 時,呼叫 AddSeqEndpoint也應使用相同的名稱。 如需詳細資訊,請參閱 新增 Seq 資源

配置

.NET Aspire Seq 整合提供多個選項,可根據專案的需求和慣例,設定與 Seq 的連線。

使用組態提供者

.NET Aspire Seq 整合支援 Microsoft.Extensions.Configuration。 它會使用 SeqSettings 鍵從配置載入 Aspire:Seq。 下列代碼段是 appsettings.json 檔案的範例,可設定一些選項:

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

如需完整的 Seq 用戶端整合 JSON 架構,請參閱 Aspire。Seq/ConfigurationSchema.json

使用內聯委派

您也可以傳遞 Action<SeqSettings> configureSettings 委派來直接設定部分或全部選項,例如從程式碼停用健康檢查:

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

Client 整合性健康檢查

根據預設,.NET.NET Aspire客戶端整合健康檢查 已對所有服務啟用。 同樣地,許多 .NET.NET Aspire代管整合 也會啟用健康檢查端點。 如需詳細資訊,請參閱:

  • .NET 在 C# 中應用程式健康情況檢查
  • 中的 健康情況檢查

.NET Aspire Seq 整合會處理下列事項:

  • SeqSettings.DisableHealthChecksfalse時,新增健康情況檢查,這會嘗試連線到 Seq 伺服器的 /health 端點。
  • /health HTTP 端點整合,並指定所有已註冊的健康檢查都必須通過,應用程式才視為準備好接受流量。

可檢視性和遙測

.NET .NET Aspire 整合會自動設定記錄、追蹤和度量組態,有時稱為 可觀察性要素。 如需整合可觀察性和遙測的詳細資訊,請參閱 .NET.NET Aspire 整合概觀。 視支援服務而定,某些整合可能只支援其中一些功能。 例如,某些整合支援記錄和追蹤,但不支援計量。 您也可以使用 組態 一節中呈現的技術來停用遙測功能。

伐木

.NET Aspire Seq 整合會使用下列記錄類別:

  • Seq

追蹤和計量

.NET Aspire Seq 整合不會發出追蹤活動和/或指標,因為它是遙測接收端,而不是遙測來源端。

另請參閱