为自定义事件和指标注入App Insights

时间:2018-06-18 19:13:58

标签: asp.net-core dependency-injection azure-application-insights

使用依赖注入在ASP.NET Core中使用custom events and metrics for app insights的“正确”方法是什么?有没有办法注入TelemetryClient

我能找到的所有东西都直接实例化TelemetryClientTelemetryClient没有实现接口。

2 个答案:

答案 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();
    }
}

https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Custom-Configuration#track-custom-traceeventmetric

答案 1 :(得分:1)

我不确定您是否需要为该部分进行依赖注入。

其他依赖注入的东西,比如.UseApplicationInsights(),可以确保配置应用程序洞察等等。

之后,执行自定义事件或指标的代码通常会根据需要创建TelemetryClient,在实例上设置共享上下文,然后通过通过来编写事件/指标 TrackEventTrackMetric等方法。假设AI在其他地方正确配置,那些新的遥测客户端实例将准备好其他共享/预配置/注入设置。