有没有一种生产安全的方法来衡量使用Python进行生产所花费的时间?

2024-09-30 18:16:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够在Python应用程序中插入指令,以便了解:

  • 页面生成时间。在
  • 用于外部请求(mysql、api调用)的时间百分比。在
  • mysql查询的数量,mysql查询的数量。在

我希望这些数据来自生产(而不是离线分析)-因为在不同的地方花费的时间在负载下会有所不同。在

在PHP中,我可以使用XHProf或PHP的instrumentation来实现这一点。在rubyonrails/.NET/Java中,我可以用newrelic实现这一点。在

有没有为Python或django推荐这样的包?在


Tags: 数据api应用程序数量地方指令时间mysql
3条回答

是的,完全有可能。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进行介绍。在

相关问题 更多 >