如何在 Service Fabric 中设置 Cloud_RoleName
How to set Cloud_RoleName in Service Fabric
我正在尝试在 Application Insights 应用程序映射中获得一个更便于用户使用的组件名称。我找到了示例,但不是专门针对 Service Fabric 的。
如何将其与作为 Kestrel WebHostBuilder 一部分的 FabricTelemetryInitializer 集成?
我想你可以使用这个代码:
[DebuggerStepThrough]
public class ServiceNameInitializer : ITelemetryInitializer
{
/// <inheritdoc />
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "ServiceA";
}
}
并在 ConfigureServices
中添加:
services.AddSingleton<ITelemetryInitializer, ServiceNameInitializer>();
如果您没有使用 Application Insights Service Fabric nuget 包,那么您应该使用它来设置您的云角色。
https://www.nuget.org/packages/Microsoft.ApplicationInsights.ServiceFabric
https://www.nuget.org/packages/Microsoft.ApplicationInsights.ServiceFabric.Native
如果您的应用程序引用了 Service Fabric 运行时,则应使用 Microsoft.ApplicationInsights.ServiceFabric.Native,因为此库与 ServiceContext、Service Remoting 等概念相关。如果您的应用程序运行于服务结构,但没有引用服务结构运行时。
既然你提到了 FabricTelemetryInitializer,我假设你已经在使用这些 nuget 包了。您可以在此处查看如何连接 FabricyTelemetryInitializer:
https://github.com/microsoft/applicationinsights-servicefabric#net-core-1
如果您没有服务上下文对象,则不要将其传递给构造函数,FabricTelemetryInitializer 将仅依赖于环境变量。
我正在尝试在 Application Insights 应用程序映射中获得一个更便于用户使用的组件名称。我找到了示例,但不是专门针对 Service Fabric 的。
如何将其与作为 Kestrel WebHostBuilder 一部分的 FabricTelemetryInitializer 集成?
我想你可以使用这个代码:
[DebuggerStepThrough]
public class ServiceNameInitializer : ITelemetryInitializer
{
/// <inheritdoc />
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "ServiceA";
}
}
并在 ConfigureServices
中添加:
services.AddSingleton<ITelemetryInitializer, ServiceNameInitializer>();
如果您没有使用 Application Insights Service Fabric nuget 包,那么您应该使用它来设置您的云角色。 https://www.nuget.org/packages/Microsoft.ApplicationInsights.ServiceFabric https://www.nuget.org/packages/Microsoft.ApplicationInsights.ServiceFabric.Native
如果您的应用程序引用了 Service Fabric 运行时,则应使用Microsoft.ApplicationInsights.ServiceFabric.Native,因为此库与 ServiceContext、Service Remoting 等概念相关。如果您的应用程序运行于服务结构,但没有引用服务结构运行时。
既然你提到了 FabricTelemetryInitializer,我假设你已经在使用这些 nuget 包了。您可以在此处查看如何连接 FabricyTelemetryInitializer: https://github.com/microsoft/applicationinsights-servicefabric#net-core-1
如果您没有服务上下文对象,则不要将其传递给构造函数,FabricTelemetryInitializer 将仅依赖于环境变量。