无代码 Application Insights 自定义计数器
Codeless Application Insights Custom Counters
我 运行 Windows Server 2016 Azure VM 中的 Application Insights 无代码版本。例如,我知道使用 SDK 可以添加自定义遥测,以便我可以更新出现在我的指标中的 cloudRoleName 值。
我的问题是,对于 Application Insights 推送的性能计数器,它只为进程相关数据提供类似 w3wp#1
的值,但我真的希望能够将此进程与应用程序池相关联(最好是 cloudRoleName)
我可以向 App Insights 代理添加任何配置以允许我添加自定义遥测,还是我必须将 SDK 添加到此 VM 上 运行 的每个 Dotnet 应用程序才能实现此目的?
如果我没理解错的话,您想为 cloudRoleName 提供自定义值,对吗?
如果是这样,唯一的办法就是使用代码(没有代码的方法,看这个issue.) by using ITelemetryInitializer,这里有一个例子:
public class CloudRoleNameTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
// set custom role name here
telemetry.Context.Cloud.RoleName = "Custom RoleName";
}
}
更详细的可以参考这篇article.
我 运行 Windows Server 2016 Azure VM 中的 Application Insights 无代码版本。例如,我知道使用 SDK 可以添加自定义遥测,以便我可以更新出现在我的指标中的 cloudRoleName 值。
我的问题是,对于 Application Insights 推送的性能计数器,它只为进程相关数据提供类似 w3wp#1
的值,但我真的希望能够将此进程与应用程序池相关联(最好是 cloudRoleName)
我可以向 App Insights 代理添加任何配置以允许我添加自定义遥测,还是我必须将 SDK 添加到此 VM 上 运行 的每个 Dotnet 应用程序才能实现此目的?
如果我没理解错的话,您想为 cloudRoleName 提供自定义值,对吗?
如果是这样,唯一的办法就是使用代码(没有代码的方法,看这个issue.) by using ITelemetryInitializer,这里有一个例子:
public class CloudRoleNameTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
// set custom role name here
telemetry.Context.Cloud.RoleName = "Custom RoleName";
}
}
更详细的可以参考这篇article.