使用依赖注入在ASP.NET Core中使用custom events and metrics for app insights的“正确”方法是什么?有没有办法注入TelemetryClient
?
我能找到的所有东西都直接实例化TelemetryClient
而TelemetryClient
没有实现接口。
答案 0 :(得分:5)
.UseApplicationInsights()
或AddApplicationInsights()
方法配置Application Insights时, TelemetryClient会自动注入DI。您可以使用构造函数注入来获取TelemetryClient
实例,如下所示。
public class HomeController : Controller
{
private TelemetryClient telemetry;
public HomeController(TelemetryClient telemetry)
{
this.telemetry = telemetry;
}
public IActionResult Index()
{
this.telemetry.TrackEvent("HomePageRequested");
return View();
}
}
答案 1 :(得分:1)
我不确定您是否需要为该部分进行依赖注入。
其他依赖注入的东西,比如.UseApplicationInsights()
,可以确保配置应用程序洞察等等。
之后,执行自定义事件或指标的代码通常会根据需要创建TelemetryClient
,在实例上设置共享上下文,然后通过通过来编写事件/指标 TrackEvent
,TrackMetric
等方法。假设AI在其他地方正确配置,那些新的遥测客户端实例将准备好其他共享/预配置/注入设置。