Я применил Application Insights в проекте MVC. NET. Решение имеет 3 проекта: проект MVC для внешнего интерфейса и 2. NET проекта класса библиотеки, один для бизнес-уровня и другой для уровня доступа к данным.
По умолчанию Application Insights автоматически отслеживает HTTP-запросы и вызов SQL, а уровень бизнес-логики c пропускается.
Я пытался использовать TrackDependency для получения метрик из промежуточного библиотечного класса, который имеет все бизнес-логики c приложения, и, похоже, оно работает.
Я реализовал следующий код в контроллере, только когда он использует метод бизнес-уровня:
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);
}
My вопрос в том, что использование TrackDependency - это правильный способ получить метрики для промежуточного класса библиотеки, в котором есть все бизнес-логики c приложения ??? или есть другой способ ??