代码之家  ›  专栏  ›  技术社区  ›  Morgan Tocker

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

  •  4
  • Morgan Tocker  · 技术社区  · 14 年前

    我希望能够测试Python应用程序,以便了解:

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

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

    在PHP中,我可以使用XHProf或PHP工具来实现这一点。在Ruby on Rails/.NET/Java中,我可以用New Relic来实现这一点。

    对于Python或django,是否建议使用这样的包?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Tomasz Zieliński    14 年前

    是的,完全有可能。E、 在URL中使用一些神奇的开关,比如“?profile me”触发Django中间件中的profile。

    Internet上有许多片段,如下所示: http://djangosnippets.org/snippets/70/ 或者像这样的模块: http://code.google.com/p/django-profiling/ -但我没有用过,所以我不能推荐任何东西。

    不管怎样,他们采取的方法与我所做的类似——即使用Python Hotshot 封装视图的中间件中的探查器模块。对于MySQL部分,您可以使用 connection.queries 来自Django。

    Hotshot的好处是它的输出可以使用Kcachegrind进行浏览,如下所示: http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/

        2
  •  1
  •   dsldsl    13 年前

    New Relic现在有一个Python包,包括Django到mod_wsgi。

    https://support.newrelic.com/help/kb/python

        3
  •  0
  •   Bobby    5 年前

    django-prometheus 是处理生产工作负载的好选择,特别是在像Kubernetes这样的容器环境中。开箱即用,它有用于跟踪请求延迟和计数(通过视图方法)以及数据库和缓存访问时间的中间件。对于跟踪实际执行的查询来说,这不是一个很好的解决方案,但这就是日志记录解决方案 ELK 会起作用的。如果有帮助的话,我已经写了一篇文章 how to add custom metrics to a Django application .