【问题标题】:How can I drill down on stacktrace in ASP.NET MVC application using Elastic APM?如何使用 Elastic APM 深入了解 ASP.NET MVC 应用程序中的堆栈跟踪?
【发布时间】:2020-04-06 18:49:38
【问题描述】:

我正在使用 Elastic APM 代理 (https://www.elastic.co/guide/en/apm/agent/dotnet/current/index.html) 来检测 ASP.NET MVC 应用程序。我添加了 nuget 包并在 web.config 中添加了模块条目。 我能够在 Kibana APM 选项卡中获取数据,并很好地显示每次调用所花费的时间。 (见下面的截图)。

Mu 问题是:如何深入了解每个调用以查看堆栈空间中的时间花在哪里?有什么我遗漏的吗?

【问题讨论】:

    标签: asp.net .net instrumentation apm elastic-apm


    【解决方案1】:

    代理捕获事物的方式基本上有两种:

    • 自动检测:在这种情况下,您无需编写任何代码,代理只是为您捕获内容 - 这就是我们在您的屏幕截图中看到的内容
    • 手动代码检测 - 为此,您可以使用 Public Agent API 并以编程方式捕获内容。

    在典型的 ASP.NET Classic MVC 应用程序中,代理具有自动检测功能,用于使用 HttpClient 的传出 HTTP 调用、使用 EF6 的数据库调用(确保使用 add the interceptor)(SqlClient 支持已经在进行中,希望很快发布)。因此,除非您在这些请求中包含任何这些内容,否则代理不会立即捕获内容。

    如果您想捕获更多内容,目前的方法是将一些特定于代理的代码(基本上是手动代码检测)放入您的应用程序并使用公共代理 API。

    【讨论】:

    • 谢谢@gregkalapos!因此,例如,在一个典型的多层应用程序(网络 - 业务 - 数据 - 一些助手,..)中,只有 http 调用和 EF 调用会被自动检测?业务层、助手等中的任何方法都需要手动检测,对吧?
    • @EmadGabriel 是的,正确的。该计划是随着时间的推移为越来越多的库提供自动检测。
    猜你喜欢
    • 2014-10-10
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多