ASP.NET Core 上的配置编辑

UseElasticApm() 扩展方法提供了一个重载,用于将 IConfiguration 实例传递给 APM 代理。要使用这种设置(在 ASP.NET Core 应用程序中很常见),您的应用程序的 Startup.cs 文件应包含类似于以下代码的代码

using Elastic.Apm.AspNetCore;

public class Startup
{
    private readonly IConfiguration _configuration;

    public Startup(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //Registers the agent with an IConfiguration instance:
        app.UseElasticApm(_configuration);

        //Rest of the Configure() method...
    }
}

通过这种设置,代理能够以与应用程序中任何其他库相同的方式进行配置。例如,任何已在传递给 APM 代理的 IConfiguration 实例上配置的配置源都可以用于设置代理配置值。

有关更多信息,请参阅官方的 Microsoft .NET Core 配置文档 您可以在此文档中找到每个 APM 配置选项的键,位于选项描述的 IConfiguration 或 Web.config 键 列中。

也可以在没有重载的情况下调用 UseElasticApm()。在这种情况下,代理将只从环境变量中读取配置。

UseElasticApm 方法只打开 ASP.NET Core 监控。要打开 .NET Core 上代理支持的所有内容的跟踪,包括 HTTP 和数据库监控,请使用 Elastic.Apm NetCoreAll 包中的 UseAllElasticApm 方法。在 ASP.NET Core 设置 中了解更多信息。

示例配置文件编辑

这是一个典型的 ASP.NET Core 应用程序的示例 appsettings.json 配置文件,该应用程序已使用 UseElasticApm() 激活。有两个重要的要点,在示例下方列出为注释

{
  "Logging": {
    "LogLevel": { 
      "Default": "Warning",
      "Elastic.Apm": "Debug"
    }
  },
  "AllowedHosts": "*",
  "ElasticApm": 
    {
      "ServerUrl":  "http://myapmserver:8200",
      "SecretToken":  "apm-server-secret-token",
      "TransactionSampleRate": 1.0
    }
}

使用 ASP.NET Core,您必须在标准 Logging 部分中使用 Elastic.Apm 类别名称设置内部 APM 记录器的 LogLevel

如果将相应的 IConfiguration 传递给代理,则代理会获取 ElasticApm 下面的配置。

在某些情况下(例如,当您不使用 ASP.NET Core 时),您不会使用 UseElasticApm() 方法激活代理。在这种情况下,请使用 ElasticApm:LogLevel 设置代理日志级别,如以下 appsettings.json 文件所示

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ElasticApm":
    {
      "LogLevel":  "Debug",
      "ServerUrl":  "http://myapmserver:8200",
      "SecretToken":  "apm-server-secret-token",
      "TransactionSampleRate": 1.0
    }
}