Datadog - 监视IIS托管的同一站点中的多个应用程序

问题描述 投票:0回答:2

我正在尝试监视IIS中同一站点内的多个应用程序。刚刚运行示踪剂msidd-trace-dotnet,我开始看到事件,但这些被注册为[site name]/[application],例如default_web_site/docs_webhook 我希望能够在每个应用程序的自定义服务名称下记录它们,但根据documentation,这只能在站点级别进行。 针对Windows服务描述了手动检测,在注册表项DD_SERVICE_NAME中设置环境变量HKLM\System\CurrentControlSet\Services\{service name}\Environment就足够了,但不适用于IIS应用程序。

注意:现在不能为每个应用程序创建单独的站点。

asp.net iis tracing datadog apm
2个回答
3
投票

对于要使用其他Datadog APM服务名称配置的每个Web应用程序,需要设置环境变量DD_SERVICE_NAME。如果它们都在相同的IIS进程下运行,那是不可能的。

在IIS中有一个名为Application Pool的功能,可以通过在不同进程下运行它们来隔离多个Web应用程序。

您需要做的第一件事是为每个Web应用程序创建一个单独的应用程序池。完成后,您可以为每个应用程序池设置不同的DD_SERVICE_NAME。用于设置范围到特定应用程序池的环境变量的command

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

其中MyAppPool是应用程序池的名称,my-service是您要用于Datadog APM的服务名称。

运行上述命令后,必须重新启动IIS才能使更改生效:

net stop was /y

net start w3svc

2
投票

从Datadog的.NET Tracer 1.0版开始,您可以在应用程序的app.config / web.config文件中设置大多数设置。例如,要设置DD_SERVICE_NAME

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

[免责声明:我是Datadog员工]

© www.soinside.com 2019 - 2024. All rights reserved.