Я пытаюсь отслеживать несколько приложений на одном сайте в IIS.
Просто запустив msi трассировщика дд-трассировка-дотнет, я начал видеть события, но они зарегистрированы как [site name]/[application], например, default_web_site/docs_webhook
Я хотел бы иметь возможность регистрировать их под собственным именем службы для каждого приложения, но, согласно документация, это возможно только на уровне сайта.
Ручная инструментация описана для служб Windows, достаточно установить переменную окружения DD_SERVICE_NAME в записи реестра HKLM\System\CurrentControlSet\Services\{service name}\Environment, но не относится к приложениям IIS.
ПРИМЕЧАНИЕ. Создание отдельных сайтов для каждого приложения сейчас невозможно.





Для каждого веб-приложения, которое вы хотите настроить с другим Имя службы Datadog APM, вам необходимо установить переменную среды DD_SERVICE_NAME. Если все они работают в рамках одного и того же процесса IIS, это невозможно.
В IIS есть функция Пул приложений, которую можно использовать для изоляции нескольких веб-приложений, запуская их в разных процессах.
Первое, что вам нужно сделать, это создать отдельный пул приложений для каждого веб-приложения. Когда вы закончите с этим, вы можете установить разные 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
Начиная с версии 1.0 Datadog .NET Tracer, вы можете установить большинство параметров в файле app.config/web.config вашего приложения. Например, чтобы установить DD_SERVICE_NAME:
<configuration>
<appSettings>
<add key = "DD_SERVICE_NAME" value = "my-service"/>
</appSettings>
</configuration>
[Отказ от ответственности: я сотрудник Datadog]
.NET Framework в IIS не нуждается в пакете NuGet, если только вам по какой-либо причине не требуется доступ к Tracer через код (например, создание диапазонов вручную или добавление пользовательских тегов в диапазон).
что имеет более высокий приоритет, переменные среды или настройки приложения?
Здорово! Вопрос: должен ли я добавить пакет Datadog.Trace NuGet в свой проект, чтобы все заработало?