ASP.NET Core编辑

快速入门编辑

我们建议使用 .NET Core 设置说明 中描述的方法,在 IHostBuilder 上注册代理,而不是像下面描述的那样使用 IApplicationBuilder

我们保留此处介绍的 IApplicationBuilder,仅用于向后兼容。

对于 ASP.NET Core,一旦您引用了 Elastic.Apm.NetCoreAll 包,您就可以通过调用 UseAllElasticApm() 扩展方法来启用自动检测。

using Elastic.Apm.NetCoreAll;

public class Startup
{
  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
    app.UseAllElasticApm(Configuration);
    //…rest of the method
  }
  //…rest of the class
}

app.UseAllElasticApm(...)必须Configure 方法中的第一行,否则代理将无法正确测量请求的计时,并且代理可能会错过完整的请求。

使用此方法,您可以启用所有代理组件,包括 ASP.NET Core 跟踪、传出 HTTP 请求的监控、Entity Framework Core 数据库跟踪等。

如果您只引用了 Elastic.Apm.AspNetCore 包,您将找不到 UseAllElasticApm。相反,您需要使用 Elastic.Apm.AspNetCore 命名空间中的 UseElasticApm() 方法。此方法会打开 ASP.NET Core 跟踪,并让您有机会手动打开其他组件。默认情况下,它只会跟踪 ASP.NET Core 请求 - 不会打开 HTTP 请求跟踪、数据库调用跟踪或任何其他跟踪组件。

如果您想打开特定的跟踪组件,可以将它们传递给 UseElasticApm 方法。

例如

app.UseElasticApm(Configuration,
	new HttpDiagnosticsSubscriber(),  /* Enable tracing of outgoing HTTP requests */
	new EfCoreDiagnosticsSubscriber()); /* Enable tracing of database calls through EF Core*/

如果您只想使用 公共 API,则无需进行任何初始化,您只需开始使用 API,代理就会将数据发送到 APM 服务器。