用于自动度量报告的处理程序混合
sprockets.mixins.statsd的Python项目详细描述
^ {TT1}$MIXIN将自动检测请求 在每个请求完成时发送statsd增量和计时值。
示例
下面的RequestHandler将自动增加一个请求计数器 并在请求完成时将请求持续时间计时值添加到statsd。
fromsprockets.mixinsimportstatsdfromtornadoimportwebclassMyRequestHandler(statsd.RequestMetricsMixin,web.RequestHandler):defprepare(self):self.statsd_prefix='some.overriden.value'super(MyRequestHandler,self).prepare()defget(self,*args,**kwargs):self.finish({'hello':'world'})defon_finish(self):super(MyRequestHandler,self).on_finish()self.do_cleanup_things()
请求完成后,将使用以下键:
- 计数器:sprockets.counter.example.RequestHandler.GET.200
- 计时:sprockets.timers.example.RequestHandler.GET.200
< H2>混炼行为< /H2>
每当您在Python中混合类时,总是确保MIXIN
应该继承自object,是继承列表中的第一个。
在本例中,concrete类web.RequestHandler
应该是final
类继承。
您的请求处理程序是否应该扩展finish或prepare方法 确保您的调用super,否则您可能会遇到奇怪的行为。