Datadog — мониторинг нескольких приложений на одном сайте, размещенном IIS

#asp.net #iis #trace #datadog #apm

#asp.net #iis #трассировка #datadog #apm

Вопрос:

Я пытаюсь отслеживать несколько приложений на одном сайте в IIS. Просто запустив msi средство отслеживания dd-trace-dotnet, я начал видеть события, но они зарегистрированы как [site name]/[application] например default_web_site/docs_webhook
Я хотел бы иметь возможность регистрировать их под пользовательским именем службы для каждого приложения, но, согласно документации, это возможно только на уровне сайта.
Ручное инструментирование описано для служб Windows, достаточно установить переменную среды DD_SERVICE_NAME в записи реестра HKLMSystemCurrentControlSetServices{service name}Environment , но это не относится к приложениям IIS.

ПРИМЕЧАНИЕ: Создание отдельных сайтов для каждого приложения прямо сейчас невозможно.

Ответ №1:

Для каждого веб-приложения, которое вы хотите настроить с другим именем службы APM Datadog Datadog, вам необходимо установить переменную среды DD_SERVICE_NAME . Если все они выполняются в рамках одного процесса IIS, это невозможно.

В IIS есть функция с именем Application Pool, которая может использоваться для изоляции нескольких веб-приложений путем запуска их в разных процессах.

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

 appcmd.exe set config -section:system.applicationHost/applicationPools / "[name='MyAppPool'].environmentVariables.[name='DD_SERVICE_NAME',value='my-service']" /commit:apphost
  

где MyAppPool — имя пула приложений, а my-service — имя службы, которое вы хотите использовать для APM Datadog.

После выполнения приведенной выше команды необходимо перезапустить IIS, чтобы изменения вступили в силу:

 net stop was /y

net start w3svc
  

Ответ №2:

Начиная с версии 1.0 Datadog’s .NET Tracer, вы можете установить большинство параметров в app.config / web.config файле вашего приложения. Например, чтобы установить DD_SERVICE_NAME :

 <configuration>
  <appSettings>
    <add key="DD_SERVICE_NAME" value="my-service"/>
  </appSettings>
</configuration>
  

[Отказ от ответственности: я сотрудник Datadog]

Комментарии:

1. Отлично! Вопрос, должен ли я добавить Datadog. Отследить пакет NuGet в моем проекте, чтобы заставить это работать?

2. .NET Framework в IIS не нуждается в пакете NuGet, если по какой-либо причине вам не требуется доступ к трассировщику с помощью кода (например, создание диапазонов вручную или добавление пользовательских тегов к диапазону).

3. что имеет более высокий приоритет, переменные среды или настройки приложения?