我希望能够在Python应用程序中插入指令,以便了解:
- 页面生成时间。在
- 用于外部请求(mysql、api调用)的时间百分比。在
- mysql查询的数量,mysql查询的数量。在
我希望这些数据来自生产(而不是离线分析)-因为在不同的地方花费的时间在负载下会有所不同。在
在PHP中,我可以使用XHProf或PHP的instrumentation来实现这一点。在rubyonrails/.NET/Java中,我可以用newrelic实现这一点。在
有没有为Python或django推荐这样的包?在
Tags:
是的,完全有可能。E、 g.在URL中使用一些神奇的开关,比如“?profileme”这将触发Django中间件中的分析。在
互联网上有很多片段,比如这个:http://djangosnippets.org/snippets/70/或者像这样的模块:http://code.google.com/p/django-profiling/-但是我没有使用过它们,所以我不能推荐任何东西。在
不管怎样,他们所采用的方法与我的做法类似——即在包装视图的中间件中使用PythonHotshot探查器模块。对于MySQL部分,可以使用connection.queriesformdjango。在
Hotshot的好处是可以使用Kcachegrind来浏览它的输出:http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/
newrelic现在有了一个Python包,包括通过mod wsgi的Django。在
https://support.newrelic.com/help/kb/python
django-prometheus是处理生产工作负载的好选择,尤其是在像Kubernetes这样的容器环境中。开箱即用,它有用于跟踪请求延迟和计数的中间件(通过视图方法),以及数据库和缓存访问时间。对于跟踪实际执行的查询来说,这不是一个很好的解决方案,但这正是像ELK这样的日志解决方案发挥作用的地方。如果有帮助的话,我已经写了一篇文章,通过how to add custom metrics to a Django application进行介绍。在
相关问题 更多 >
编程相关推荐