0

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

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

4

2 回答 2

3

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

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

您需要做的第一件事是为每个 Web 应用程序创建一个单独的应用程序池。完成后,您可以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的名称,是您要用于 Datadog APM 的服务名称。

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

net stop was /y

net start w3svc
于 2019-03-15T18:36:45.140 回答
3

从 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 员工]

于 2019-04-05T22:10:37.250 回答