【问题标题】:Using TrackDependency is the right way to get metrics of a business logic layer .NET Library Class?使用 TrackDependency 是获取业务逻辑层 .NET 库类的指标的正确方法吗?
【发布时间】: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


    【解决方案1】:

    是的,TrackDependency 方法应该是最简单的方法。

    另一种解决方案稍微复杂一些,你应该使用Application Insights API for custom events and metrics中的方法。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 2013-05-18
      • 2014-02-26
      • 2011-01-10
      • 2011-10-23
      • 2015-02-22
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多