使用 Flask 在 Elastic APM 中为 Python 设置(自定义)字段

Set (custom) fields in Elastic APM for Python with Flask

总的来说,我对 Elastic APM、Kibana、Elasticsearch 和 APM 还很陌生,没有遇到任何指向我需求的信息。我设置了 elastic-apm[flask] 模块并按照教程进行操作。在 Kibana 仪表板中,我获得了响应时间和服务器名称等信息,但 client.ip 等字段为空。我想跟踪 IP 地址(更确切地说我的网站访问者来自哪里)。

那么,如何将用户的 IP 地址输入到 Elastic APM 的 client.ip 字段中?我不想在每次请求路由时都发出 app.logger.debug 语句。

您必须修改您的弹性 APM python 代理代码。 通常,您可以为跨度示例添加标签

elasticapm.label(key1=value1, key2=value2)

另外,您可以直接添加到 span 对象。

您将从请求对象 flask 中获取 ip

request.remote_addr 将其设置为所需的键。

有关弹性 APM python 代理的 API 的更多详细信息,请参见此处 - https://www.elastic.co/guide/en/apm/agent/python/current/api.html

谢谢