性能调优编辑

有很多选项可用于调整代理性能。要调整哪个选项取决于您是优化速度、内存使用情况、带宽还是存储。

采样编辑

调整代理性能时,第一个要考虑的旋钮是 TransactionSampleRate。调整采样率控制跟踪请求的百分比。默认情况下,采样率设置为 1.0,这意味着跟踪所有请求。

采样率将影响所有四个性能类别,因此简单地降低采样率是提高性能的一种简单方法。

以下是如何使用 ASP.NET Core 上的配置 将采样率设置为 20% 的示例

{
    "ElasticApm": {
        "TransactionSampleRate": 0.2
    }
}

堆栈跟踪编辑

在复杂的应用程序中,一个请求可能会产生许多跨度。为每个跨度捕获堆栈跟踪会导致大量的内存使用。堆栈跟踪也会为每个错误捕获。有几个设置可以调整捕获堆栈跟踪的方式。

禁用捕获堆栈跟踪编辑

要禁用捕获堆栈跟踪(对于跨度和错误),请将 StackTraceLimit 设置为 0

仅为长时间运行的跨度捕获堆栈跟踪编辑

在默认设置中,APM 代理会为每个记录的持续时间超过 5 毫秒的跨度收集堆栈跟踪。要增加持续时间阈值,请设置 SpanStackTraceMinDuration

减少捕获的堆栈跟踪帧数编辑

StackTraceLimit 控制在捕获堆栈跟踪时应收集多少个堆栈帧。

禁用捕获 HTTP 请求和响应标头编辑

捕获 HTTP 请求和响应标头会增加 Elasticsearch 使用的内存分配、网络带宽和磁盘空间。要禁用捕获 HTTP 请求和响应标头,请将 CaptureHeaders 设置为 false

增加指标收集间隔编辑

.NET 代理跟踪某些系统和应用程序指标。这些指标会定期收集并发送到 APM 服务器,然后从那里发送到 Elasticsearch。您可以使用设置 MetricsInterval 调整指标收集的间隔。