asp.net - 如何使用 Elastic APM 深入了解 ASP.NET MVC 应用程序中的堆栈跟踪?
问题描述
我正在使用 Elastic APM 代理 ( https://www.elastic.co/guide/en/apm/agent/dotnet/current/index.html ) 来检测 ASP.NET MVC 应用程序。我添加了 nuget 包并在 web.config 中添加了模块条目。我能够在 Kibana APM 选项卡中获取数据,并很好地显示每次调用所花费的时间。(见下面的截图)。
Mu 问题是:如何在每个调用中深入了解堆栈空间中的时间花在哪里?有什么我想念的吗?
解决方案
代理捕获事物的方式基本上有两种:
- 自动检测:在这种情况下,您无需编写任何代码,代理只是为您捕获内容 - 这就是我们在您的屏幕截图中看到的内容
- 手动代码检测 - 为此,您可以使用公共代理 API并以编程方式捕获内容。
在典型的 ASP.NET Classic MVC 应用程序中,代理具有自动检测用于传出 HTTP 调用HttpClient
、使用 EF6 的数据库调用(确保添加拦截器)(SqlClient
支持已经在进行中,希望很快发布)。因此,除非您在这些请求中包含其中任何一个,否则代理不会开箱即用地捕获内容。
如果您想捕获更多内容,目前的方法是将一些特定于代理的代码(基本上是手动代码检测)放入您的应用程序并使用公共代理 API。
推荐阅读
- micronaut - Micronaut:实现自定义信息端点元素
- phpmyadmin - 无法在 Windows 10 (Xampp) 上访问 phpMyAdmin
- graph - 如何设计没有循环的图?新4j
- docker - 在后台运行 ubuntu docker 镜像
- python - QSortFilterProxyModel:允许新项目
- javascript - Redux 返回未定义
- python - 在另一个全屏窗口tkinter python上显示顶层窗口
- json - 比较 XML 和 JSON
- c# - LINQ Count() 与 Case When
- autodesk-forge - 快速打开和关闭 forge 实例会创建 updateTimeStamp 错误