You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FastAPI中关闭elastic-apm的请求体日志功能

解决FastAPI中Elastic APM冗余日志问题

完全可以通过调整Elastic APM客户端的配置参数,关闭请求体、请求头等冗余数据的采集,只保留请求的时间和目标信息(比如请求路径、HTTP方法、响应时间这些核心事务数据)。

你只需要在make_apm_client的配置字典里添加以下关键参数:

  • CAPTURE_BODY: 设置为"off",彻底关闭请求体的采集
  • CAPTURE_HEADERS: 设置为False,关闭请求和响应头的采集(如果不需要这些信息的话)
  • TRANSACTION_SAMPLE_RATE: 保持为1.0(默认值),确保每个请求的事务都被记录(如果不需要抽样的话)

修改后的完整代码如下:

app = FastAPI(
    title="My API", description="Hello from my API!"
)

apm = make_apm_client(
    {
        "SERVICE_NAME": "MyService",
        "SERVER_URL": CONFIG["elastic_apm"]["server_url"],
        "SECRET_TOKEN": CONFIG["elastic_apm"]["token"],
        # 新增配置,关闭冗余数据采集
        "CAPTURE_BODY": "off",
        "CAPTURE_HEADERS": False,
        "TRANSACTION_SAMPLE_RATE": 1.0
    }
)

app.add_middleware(ElasticAPM, client=apm)

参数说明

  • CAPTURE_BODY: 可选值有"off"、"errors"、"all",设为"off"后不会采集任何请求体数据
  • CAPTURE_HEADERS: 布尔值,设为False后不再采集请求头和响应头的内容
  • TRANSACTION_SAMPLE_RATE: 控制事务的抽样率,1.0表示记录所有请求的事务数据,确保你能获取每个请求的时间和目标信息

这样配置后,Elastic APM只会记录每个请求的核心事务数据:请求路径、HTTP方法、响应状态码、响应时间、服务名称等,不会再发送请求体、请求头这类数据量较大的冗余信息,有效降低高负载场景下的APM数据传输量。

内容的提问来源于stack exchange,提问作者Nick Zorander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:43:13