使用 TrackDependency 是获取业务逻辑层 .NET 库指标的正确方法 Class?
Using TrackDependency is the right way to get metrics of a business logic layer .NET Library Class?
我在 MVC .NET 项目中应用了 Application Insights。该解决方案有 3 个项目:用于前端的 MVC 项目和 2 个 .NET 库 Class 项目,一个用于业务层,另一个用于数据访问层。
默认情况下,Application Insights 会自动跟踪 HTTP 请求和 SQL 调用,并跳过业务逻辑层。
我尝试使用 TrackDependency 从具有应用程序所有业务逻辑的中间库 Class 获取指标,它似乎有效。
我做的是在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 是在具有应用程序所有业务逻辑的中间库 Class 上获取指标的正确方法???或者还有其他方法吗??
是的,TrackDependency
方法应该是最简单的方法。
另一个解决方案有点复杂,你应该使用Application Insights API for custom events and metrics中的方法。
希望对您有所帮助。
我在 MVC .NET 项目中应用了 Application Insights。该解决方案有 3 个项目:用于前端的 MVC 项目和 2 个 .NET 库 Class 项目,一个用于业务层,另一个用于数据访问层。
默认情况下,Application Insights 会自动跟踪 HTTP 请求和 SQL 调用,并跳过业务逻辑层。
我尝试使用 TrackDependency 从具有应用程序所有业务逻辑的中间库 Class 获取指标,它似乎有效。
我做的是在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 是在具有应用程序所有业务逻辑的中间库 Class 上获取指标的正确方法???或者还有其他方法吗??
是的,TrackDependency
方法应该是最简单的方法。
另一个解决方案有点复杂,你应该使用Application Insights API for custom events and metrics中的方法。
希望对您有所帮助。