【发布时间】:2020-04-20 15:19:02
【问题描述】:
我在一个 MVC .NET 项目中应用了 Application Insights。该解决方案有 3 个项目:前端的 MVC 项目和 2 个 .NET Library Class 项目,一个用于业务层,另一个用于数据访问层。
默认情况下,Application Insights 会自动跟踪 HTTP 请求和 SQL 调用,并跳过业务逻辑层。
我尝试使用 TrackDependency 从具有应用程序所有业务逻辑的中间库类中获取指标,它似乎工作。
我所做的是在Controller中实现以下代码,就在它使用业务层方法时:
LogicLayer.LogicLayer logObj = new LogicLayer.LogicLayer();
TelemetryClient telemetry = new TelemetryClient();
string stResponse = "";
var success = false;
var startTime = DateTime.UtcNow;
var timer = System.Diagnostics.Stopwatch.StartNew();
try
{
stResponse = logObj.getData();
success = true;
}
catch (Exception ex)
{
success = false;
telemetry.TrackException(ex);
throw new Exception("Operation went wrong", ex);
}
finally
{
timer.Stop();
telemetry.TrackDependency("DependencyType", "myDependency", "myCall", "", startTime, timer.Elapsed, "", success);
}
我的问题是:使用 TrackDependency 是获取具有应用程序所有业务逻辑的中间库类的指标的正确方法???还是有别的办法??
【问题讨论】:
标签: c# azure azure-application-insights class-library