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


Конфигурация панели мониторинга

Панель мониторинга настраивается при запуске. Конфигурация включает интерфейсные и OpenTelemetry адреса протокола OTLP, конечную точку службы ресурсов, проверку подлинности, ограничения телеметрии и многое другое.

Когда панель мониторинга запускается с помощью проекта узла приложения .NET.NET Aspire, она автоматически настраивается для отображения ресурсов и телеметрии приложения. Конфигурация предоставляется при запуске панели мониторинга в автономном режиме .

Существует множество способов предоставления конфигурации:

  • Аргументы командной строки.
  • Переменные среды. Разделитель : должен быть заменен двойным подчеркиванием (__) в именах переменных среды.
  • Необязательный файл конфигурации JSON. Параметр DOTNET_DASHBOARD_CONFIG_FILE_PATH можно использовать для указания файла конфигурации JSON.

Рассмотрим следующий пример, в котором показано, как настроить панель мониторинга при запуске из контейнера Docker:

docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard \
    -e DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT='1000' \
    -e DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT='1000' \
    -e DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT='1000' \
    mcr.microsoft.com/dotnet/aspire-dashboard:9.0

Кроме того, эти же значения можно настроить с помощью файла конфигурации JSON, указанного с помощью DOTNET_DASHBOARD_CONFIG_FILE_PATH:

{
  "Dashboard": {
    "TelemetryLimits": {
      "MaxLogCount": 1000,
      "MaxTraceCount": 1000,
      "MaxMetricsCount": 1000
    }
  }
}

Важный

На панели мониторинга отображаются сведения о ресурсах, включая их конфигурацию, журналы консоли и подробные данные телеметрии.

Данные, отображаемые на панели мониторинга, могут быть конфиденциальными. Например, секреты в переменных среды и конфиденциальные данные среды выполнения в телеметрии. Необходимо учесть, чтобы настроить панель мониторинга для безопасного доступа.

Дополнительные сведения см. в безопасности панели мониторинга.

Заметка

Конфигурация, описанная на этой странице, предназначена для автономной панели мониторинга. Сведения о настройке проекта узла приложения см. в разделеконфигурации узла приложения .

Общая конфигурация

Выбор Значение по умолчанию Описание
ASPNETCORE_URLS http://localhost:18888 Одна или несколько конечных точек HTTP, через которые обслуживается интерфейс панели мониторинга. Интерфейсная конечная точка используется для просмотра панели мониторинга в браузере. Когда панель мониторинга запускается узлом приложения .NET.NET Aspire, этот адрес защищен HTTPS. Защита панели мониторинга с помощью ПРОТОКОЛА HTTPS рекомендуется.
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL http://localhost:18889 Конечная точка OTLP/gRPC. Эта конечная точка размещает службу OTLP и получает данные телеметрии с помощью gRPC. Когда панель мониторинга запускается узлом приложения .NET.NET Aspire, этот адрес защищен HTTPS. Защита панели мониторинга с помощью ПРОТОКОЛА HTTPS рекомендуется.
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL http://localhost:18890 Конечная точка OTLP/HTTP . Эта конечная точка размещает службу OTLP и получает данные телеметрии с помощью Protobuf по протоколу HTTP. Когда панель мониторинга запускается узлом приложения .NET.NET Aspire, конечная точка OTLP/HTTP не настроена по умолчанию. Чтобы настроить конечную точку OTLP/HTTP с узлом приложения, задайте значение DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env var в launchSettings.json. Защита панели мониторинга с помощью ПРОТОКОЛА HTTPS рекомендуется.
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS false Настраивает панель мониторинга, чтобы не использовать проверку подлинности и принимает анонимный доступ. Этот параметр — это ярлык для настройки Dashboard:Frontend:AuthMode и Dashboard:Otlp:AuthMode для Unsecured.
DOTNET_DASHBOARD_CONFIG_FILE_PATH null Путь к файлу конфигурации JSON. Если панель мониторинга выполняется в контейнере Docker, то это путь к файлу конфигурации в подключенном томе. Это значение является необязательным.
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL null Конечная точка gRPC, к которой панель мониторинга подключается для своих данных. Если это значение не указано, панель мониторинга отображает данные телеметрии, но нет списка ресурсов или журналов консоли. Этот параметр является ярлыком для Dashboard:ResourceServiceClient:Url.

Проверка подлинности внешнего интерфейса

Проверка подлинности интерфейсной конечной точки панели мониторинга настроена с Dashboard:Frontend:AuthMode. Интерфейс можно защитить с помощью OpenID Connect (OIDC) или проверки подлинности маркера браузера.

Проверка подлинности маркера браузера работает интерфейсной частью, запрашивая маркер. Маркер можно ввести в пользовательский интерфейс или в качестве значения строки запроса на страницу входа. Например, https://localhost:1234/login?t=TheToken. Когда маркер успешно прошел проверку подлинности, cookie сохраняется в браузере, а браузер перенаправляется в приложение.

Выбор Значение по умолчанию Описание
Dashboard:Frontend:AuthMode BrowserToken Можно задать значение BrowserToken, OpenIdConnect или Unsecured. Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах.
Dashboard:Frontend:BrowserToken null Указывает маркер браузера. Если маркер браузера не указан, панель мониторинга создает ее. Средства, которые хотят автоматизировать вход с помощью проверки подлинности маркера браузера, могут указать маркер и открыть браузер с маркером в строке запроса. При каждом запуске панели мониторинга необходимо создать новый маркер.
Dashboard:Frontend:OpenIdConnect:NameClaimType name Указывает один или несколько типов утверждений, которые должны использоваться для отображения полного имени пользователя, прошедшего проверку подлинности. Может быть одним типом утверждений или списком типов утверждений с разделителями-запятыми.
Dashboard:Frontend:OpenIdConnect:UsernameClaimType preferred_username Указывает один или несколько типов утверждений, которые должны использоваться для отображения имени пользователя, прошедшего проверку подлинности. Может быть одним типом утверждений или списком типов утверждений с разделителями-запятыми.
Dashboard:Frontend:OpenIdConnect:RequiredClaimType null Указывает утверждение, которое должно присутствовать для авторизованных пользователей. Авторизация завершается ошибкой без этого утверждения. Это значение является необязательным.
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue null Указывает значение требуемого утверждения. Используется только в том случае, если Dashboard:Frontend:OpenIdConnect:RequireClaimType также указан. Это значение является необязательным.
Authentication:Schemes:OpenIdConnect:Authority null URL-адрес поставщика удостоверений (IdP).
Authentication:Schemes:OpenIdConnect:ClientId null Удостоверение проверяющей стороны (RP).
Authentication:Schemes:OpenIdConnect:ClientSecret null Секрет, который будет знать только настоящий RP.
Другие свойства OpenIdConnectOptions null Значения внутри раздела конфигурации Authentication:Schemes:OpenIdConnect:* привязаны к OpenIdConnectOptions, например Scope.

Заметка

Дополнительная конфигурация может потребоваться при использовании OpenIdConnect в качестве режима проверки подлинности за обратным прокси-сервером, который завершает SSL. Проверьте, нужно ли задать ASPNETCORE_FORWARDEDHEADERS_ENABLED значение true.

Дополнительные сведения см. в разделе Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки.

Проверка подлинности OTLP

Проверка подлинности конечной точки OTLP настроена с Dashboard:Otlp:AuthMode. Конечную точку OTLP можно защитить с помощью ключа API или сертификата клиента проверки подлинности.

Проверка подлинности ключа API выполняется путем требования к каждому запросу OTLP иметь допустимое значение заголовка x-otlp-api-key. Он должен соответствовать первичному или вторичному ключу.

Выбор Значение по умолчанию Описание
Dashboard:Otlp:AuthMode Unsecured Можно задать значение ApiKey, Certificate или Unsecured. Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах.
Dashboard:Otlp:PrimaryApiKey null Указывает первичный ключ API. Ключ API может быть любым текстом, но рекомендуется использовать значение не менее 128 бит энтропии. Это значение необходимо, если режим проверки подлинности является ключом API.
Dashboard:Otlp:SecondaryApiKey null Указывает дополнительный ключ API. Ключ API может быть любым текстом, но рекомендуется использовать значение не менее 128 бит энтропии. Это значение является необязательным. Если указан второй ключ API, входящий x-otlp-api-key значение заголовка может соответствовать первичному или вторичному ключу.

OTLP CORS

Общий доступ к ресурсам между источниками (CORS) можно настроить, чтобы разрешить приложениям браузера отправлять данные телеметрии на панель мониторинга.

По умолчанию приложения браузера ограничены выполнением междоменных вызовов API. Это влияет на отправку телеметрии на панель мониторинга, так как панель мониторинга и приложение браузера всегда находятся в разных доменах. Чтобы настроить CORS, используйте раздел Dashboard:Otlp:Cors и укажите допустимые источники и заголовки:

{
  "Dashboard": {
    "Otlp": {
      "Cors": {
        "AllowedOrigins": "http://localhost:5000,https://localhost:5001"
      }
    }
  }
}

Рассмотрим следующие параметры конфигурации:

Выбор Значение по умолчанию Описание
Dashboard:Otlp:Cors:AllowedOrigins null Указывает допустимые источники для CORS. Это строка с разделителями-запятыми и может включать подстановочный знак *, чтобы разрешить любой домен. Этот параметр является необязательным и можно задать с помощью переменной среды DASHBOARD__OTLP__CORS__ALLOWEDORIGINS.
Dashboard:Otlp:Cors:AllowedHeaders null Строка с разделителями-запятыми, представляющая разрешенные заголовки для CORS. Этот параметр является необязательным и можно задать с помощью переменной среды DASHBOARD__OTLP__CORS__ALLOWEDHEADERS.

Заметка

Панель мониторинга поддерживает только метод POST для отправки данных телеметрии и не разрешает настройку разрешенных методов (Access-Control-Allow-Methods) для CORS.

Ресурсы

Панель мониторинга подключается к службе ресурсов для загрузки и отображения сведений о ресурсах. Клиент настроен на панели мониторинга для подключения к службе.

Проверка подлинности клиента службы ресурсов настраивается с Dashboard:ResourceServiceClient:AuthMode. Клиент можно настроить для поддержки ключа API или проверки подлинности сертификата клиента.

Выбор Значение по умолчанию Описание
Dashboard:ResourceServiceClient:Url null Конечная точка gRPC, к которой панель мониторинга подключается для своих данных. Если это значение не указано, панель мониторинга отображает данные телеметрии, но нет списка ресурсов или журналов консоли.
Dashboard:ResourceServiceClient:AuthMode null Можно задать значение ApiKey, Certificate или Unsecured. Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах. Это значение необходимо, если указан URL-адрес службы ресурсов.
Dashboard:ResourceServiceClient:ApiKey null API для отправки в службу ресурсов в заголовке x-resource-service-api-key. Это значение необходимо, если режим проверки подлинности является ключом API.
Dashboard:ResourceServiceClient:ClientCertificate:Source null Можно задать значение File или KeyStore. Это значение необходимо, если режим проверки подлинности является сертификатом клиента.
Dashboard:ResourceServiceClient:ClientCertificate:FilePath null Путь к файлу сертификата. Это значение необходимо, если источник File.
Dashboard:ResourceServiceClient:ClientCertificate:Password null Пароль для файла сертификата. Это значение является необязательным.
Dashboard:ResourceServiceClient:ClientCertificate:Subject null Субъект сертификата. Это значение необходимо, если источник KeyStore.
Dashboard:ResourceServiceClient:ClientCertificate:Store My Сертификат StoreName.
Dashboard:ResourceServiceClient:ClientCertificate:Location CurrentUser Сертификат StoreLocation.

Ограничения телеметрии

Данные телеметрии хранятся в памяти. Чтобы избежать чрезмерного использования памяти, панель мониторинга имеет ограничения на количество и размер хранимой телеметрии. Когда достигнуто ограничение количества, добавляется новая телеметрия, а самая старая телеметрия удаляется. По достижении предельного размера данные усечены до предела.

Ограничения телеметрии имеют разные области в зависимости от типа телеметрии:

  • MaxLogCount и MaxTraceCount совместно используются между ресурсами. Например, MaxLogCount значение 5000 настраивает панель мониторинга для хранения до 5000 общих записей журнала для всех ресурсов.
  • MaxMetricsCount — это ресурс. Например, MaxMetricsCount значение 10 000 настраивает панель мониторинга для хранения до 10 000 точек данных на ресурс.
Выбор Значение по умолчанию Описание
Dashboard:TelemetryLimits:MaxLogCount 10,000 Максимальное количество записей журнала. Ограничение совместно используется между ресурсами.
Dashboard:TelemetryLimits:MaxTraceCount 10,000 Максимальное количество трассировок журналов. Ограничение совместно используется между ресурсами.
Dashboard:TelemetryLimits:MaxMetricsCount 50,000 Максимальное количество точек данных метрик. Ограничение равно каждому ресурсу.
Dashboard:TelemetryLimits:MaxAttributeCount 128 Максимальное количество атрибутов телеметрии.
Dashboard:TelemetryLimits:MaxAttributeLength null Максимальная длина атрибутов.
Dashboard:TelemetryLimits:MaxSpanEventCount null Максимальное количество событий в атрибутах диапазона.

Другой

Выбор Значение по умолчанию Описание
Dashboard:ApplicationName Aspire Имя приложения, отображаемое в пользовательском интерфейсе. Это применяется только в том случае, если URL-адрес службы ресурсов не указан. Если служба ресурсов существует, служба указывает имя приложения.

Дальнейшие действия