Tornado 支持
编辑Tornado 支持
编辑将 Elastic APM 集成到您的 Tornado 项目只需几个简单的步骤。
安装
编辑使用 pip 安装 Elastic APM 代理
$ pip install elastic-apm
或者将 elastic-apm
添加到您的项目的 requirements.txt
文件中。
设置
编辑要设置代理,您需要使用适当的设置对其进行初始化。
可以通过环境变量、应用程序设置或初始化参数来配置设置。
您可以在配置页面中找到所有可用设置的列表。
要使用环境变量为您的应用程序初始化代理
import tornado.web from elasticapm.contrib.tornado import ElasticAPM app = tornado.web.Application() apm = ElasticAPM(app)
要使用应用程序设置中的 ELASTIC_APM
配置代理
import tornado.web from elasticapm.contrib.tornado import ElasticAPM app = tornado.web.Application() app.settings['ELASTIC_APM'] = { 'SERVICE_NAME': '<SERVICE-NAME>', 'SECRET_TOKEN': '<SECRET-TOKEN>', } apm = ElasticAPM(app)
使用
编辑配置代理后,它将自动跟踪事务并捕获 Tornado 中未捕获的异常。
通过调用 capture_exception
捕获任意异常
try: 1 / 0 except ZeroDivisionError: apm.client.capture_exception()
使用 capture_message
记录通用消息
apm.client.capture_message('hello, world!')
性能指标
编辑如果您已按照上述说明操作,则代理已在 tornado.web 中的基类 RequestHandler 中安装了我们的检测程序。这将测量响应时间,以及所有受支持技术的详细性能数据。
由于 asyncio
驱动程序通常与其同步对应程序分开,因此所有驱动程序都需要特定的检测程序。目前对异步驱动程序的支持非常有限。
忽略特定路由
编辑您可以使用 TRANSACTIONS_IGNORE_PATTERNS
配置选项来忽略特定路由。给定的列表应为与事务名称匹配的正则表达式列表。
app.settings['ELASTIC_APM'] = { # ... 'TRANSACTIONS_IGNORE_PATTERNS': ['^GET SecretHandler', 'MainHandler'] # ... }
这将忽略使用 GET SecretHandler
路由的任何请求以及包含 MainHandler
的任何请求。
支持的 Tornado 和 Python 版本
编辑可以在我们的支持的技术页面上找到支持的Tornado和Python版本的列表。
Elastic APM 仅在使用 Python 3.7+ 时支持 asyncio
。