Поделиться через


интеграция .NET AspireSeq

В этой статье вы узнаете, как использовать интеграцию .NET AspireSeq для добавления экспортеров протокола OTLP OpenTelemetry, отправляющих журналы и трассировки в SeqServer. Интеграция поддерживает постоянные журналы и трассировки между перезапусками приложений с помощью конфигурации.

Начало работы

Чтобы приступить к работе с интеграцией .NET AspireSeq, установите 📦Aspire. Установите пакет NuGetSeq в проект, потребляющий client, т. е. в проект для приложения, использующего Seqclient.

dotnet add package Aspire.Seq

Дополнительные сведения см. в статье dotnet add package или в статье Управление зависимостями пакетов в приложениях .NET.

Пример использования

В файле Program.cs проекта вызовите метод расширения AddSeqEndpoint для регистрации экспортеров протоколов OpenTelemetry для отправки журналов и трассировок в Seq и панели мониторинга .NET Aspire. Метод принимает параметр имени подключения.

builder.AddSeqEndpoint("seq");

Использование хоста приложения

Чтобы смоделировать ресурс Seq в узле приложения, установите пакет NuGet 📦Aspire.Hosting.Seq в проекте узла приложения .

dotnet add package Aspire.Hosting.Seq

В вашем хост-проекте приложения зарегистрируйте базу данных Seq и подключитесь к ней, используя следующие методы:

var builder = DistributedApplication.CreateBuilder(args);

var seq = builder.AddSeq("seq")
                 .ExcludeFromManifest();

var myService = builder.AddProject<Projects.MyService>()
                       .WithReference(seq);

Предыдущий код регистрирует Seqserver и передаёт его конфигурацию.

Важный

Чтобы начать Seq, необходимо принять лицензионное соглашение конечного пользователя Seq.

В файле Program.cs проекта MyService настройте ведение журнала и трассировку для Seq с помощью следующего кода:

builder.AddSeqEndpoint("seq");

Seq в манифесте .NET Aspire

Seq не должен быть частью манифеста развертывания .NET Aspire, поэтому происходит связанный вызов ExcludeFromManifest. Рекомендуется настроить безопасную производственную Seqserver за пределами .NET Aspire.

Постоянные логи и трассировки

Зарегистрируйте Seq в каталоге данных в проекте AppHost, чтобы сохранить данные и конфигурацию Seqв перезапуске приложения.

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

Указанный каталог уже должен существовать.

Конфигурация

Интеграция .NET AspireSeq предоставляет параметры настройки подключения для Seq.

Использование поставщиков конфигураций

Интеграция .NET AspireSeq поддерживает Microsoft.Extensions.Configuration. Он загружает SeqSettings из конфигурации, используя ключ Aspire:Seq. Пример appsettings.json, который настраивает некоторые параметры:

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

Использование встроенных делегатов

Можно передать делегат Action<SeqSettings> configureSettings, чтобы настроить некоторые или все встроенные параметры, например отключить проверки работоспособности из кода:

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

Проверки состояния

По умолчанию .NET.NET Aspire интеграции включают мониторинг для всех услуг. Дополнительные сведения см. в обзоре интеграции .NET.NET Aspire.

Интеграция .NET AspireSeq обрабатывает следующее:

  • Интегрируется с конечной точкой HTTP /health, которая указывает, что все зарегистрированные проверки работоспособности должны пройти, чтобы приложение считалось готовым принимать трафик.

Наблюдаемость и телеметрия

.NET .NET Aspire интеграции автоматически настраивают конфигурации журналирования, трассировки и метрик, которые иногда называются пилонами наблюдаемости. Дополнительные сведения об наблюдаемости интеграции и телеметрии см. в .NET.NET Aspire обзоре интеграции. В зависимости от резервной службы некоторые интеграции могут поддерживать только некоторые из этих функций. Например, некоторые интеграции поддерживают ведение журнала и трассировку, но не метрики. Функции телеметрии также можно отключить с помощью методов, представленных в разделе конфигурации .

Лесозаготовка

Интеграция .NET AspireSeq использует следующие категории журналов:

  • Seq

См. также