当前位置:   article > 正文

elastic APM初试 - Distributed tracing 和 Real User Monitoring_es real user monitoring

es real user monitoring


在上一篇文章 elasticsearch APM功能全解 一中已经提到过了分布式追踪(Distributed tracing)和真实用户监控(Real User Monitoring).

  • 分布式追踪 : 当我们对一个应用接口进行性能监控时,该接口服务调用可能是由数个分布式的微服务来共同完成。分布式追踪可以监控整个调用链,使开发人员和运营人员能够将各个事务的性能进行上下文分析,从而快速查明最终影响用户体验的瓶颈。
  • 真实用户监控:捕获用户与Web浏览器等客户端的交互。与监视请求和响应的Elastic APM后端agent不同,RUM JavaScript agent监视客户端应用程序中的真实用户体验和交互。

步骤介绍

文章中,我通过一下步骤和配置来体验这两个功能:

  • 修改apm-server.yml,打开RUM功能(Distributed tracing是默认功能)
  • 启动APM server
  • 分别在后端,前端,UI上启动对应的APM agent

我之前写过一个数字货币的回测程序,刚好用来测试。该程序的架构如下:

  • 后端是一个flask的web框架,用于提供数字货币的行情读取和策略回测功能
  • 前端是用Vue编写的界面,可以webpack打包后作为静态文件和资源文件放到flask上,但为了测试node,我直接使用webpack的dev server来启动一个nodejs的web服务
  • UI是用Vue编写的,可以将RUM的启动放到Vue模块加载之前

启动APM server

先下载安装包

curl -L -O https://artifacts.elastic.co/downloads/apm-server/apm-server-6.5.0-darwin-x86_64.tar.gz
tar xzvf apm-server-6.5.0-darwin-x86_64.tar.gz
cd apm-server-6.5.0-darwin-x86_64/
  • 1
  • 2
  • 3

先修改目录下的apm-server.yml,enable RUM

  rum:
    # To enable real user monitoring (RUM) support set this to true.
    enabled: true
  • 1
  • 2
  • 3

启动服务器:

./apm-server -e
  • 1

监测python后端

先下载flask的客户端

pip install elastic-apm[flask]
  • 1

因为是侵入式的,需要修改代码:

# or configure to use ELASTIC_APM in your application's settings
from elasticapm.contrib.flask import ElasticAPM
app.config['ELASTIC_APM'] = {
   
  'SERVICE_NAME': 'python-backend',
}

apm = ElasticAPM(app)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注意,这里如果不配置SERVICE_NAME,仍然可以正常启动,但是在APM Server端看不到任何数据

启动后,会看到如下信息(包含很多的Instrumented打印,表示agent开始监测对应的库活动):

2019-01-28 17:16:27,267 _internal.py[line:88] INFO  * Running on http://0.0.0.0:80/ 
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/962089
    推荐阅读
    相关标签
      

    闽ICP备14008679号