选择Python做Web开发目前也是比较流行的,开发的应用调用数据库、第三方服务是常有的操作,当应用性能出现不如意的情况时,快速、准确定位它的根本原因是开发和运维最想要做的事情。
AppDynamics能达到代码级监控,可以看到程序的堆栈调用过程,快速、准确的找到响应慢、运行出错的类/方法以及所在的代码行数,可以抓取程序调用的SQL语句详情,以及第三方接口调用次数、响应时间等。
- 本文主要讲解Python环境下AppDynamics监控代理的安装配置。
AppDynamnics Saas账号的注册,及监控效果的查看和故障定位
请参看我的另一篇文章《APM应用性能管理监控体验-appdynamics》
Python、Java、PHP等的监控分析使用方式一样,所以此处就不重复写了。
pythonAgent代理安装
登陆AppDynamics的Controller控制台,从Home→Getting Started→Getting Started Wizard进入配置向导。
由于是做Python监控,所以在向导页面选择Python
第一步环境检查
目前AppDynamics官方文档说明支持CPython 2.6, 2.7, 3.3, 3.4, 3.5, 和 3.6版本,支持Linux和MacOS X10.8+环境,暂不支持Windows下部署。
支持监控基于WSGI环境的应用;非WSGI的独立Python程序也支持监控,但是需要修改程序源代码,调用相应的SDK API,本文不介绍这一块。
前面配置信息保持默认,第四步配置应用名和层名,可以选择已有的应用,这里我是创建新的应用名和层名
注:层名即模块名,当多个节点组成集群时,模块名起成一样的。
第五步部署方法选择最后一项Process Launcher/Manager
第六步是安装PythonAgent
根据第1步在Python应用所在服务器使用pip install appdynamics安装pythonAgent代理
*注意:如果是全局环境下启动Python,则使用全局环境的用户安装;如果是在虚拟环境下启动Python,则使用该虚拟环境的用户安装。
在启动Python的用户有访问权限的地方创建一个配置文件,我创建的路径如下:/etc/appdynamics.cfg,将第2步中的配置信息复制粘贴进去。
重启Python应用
假设之前启动Python应用使用的命令是
gunicorn -w 8 -b '0.0.0.0:9000' example.app:application
现在将其改为如下命令
pyagent run -c /etc/appdynamics.cfg -- gunicorn -w 8 -b '0.0.0.0:9000' example.app:application
即在原命令前加上pyagent run -c /etc/appdynamics.cfg --
重启完成后打开Controller控制台,在Applications中看到Python应用信息,则表示代理配置成功。
官方文档参看如下地址: