Add statsd metrics addon

This commit is contained in:
Guewen Baconnier
2016-11-04 10:30:10 +01:00
parent 23634feb46
commit d53ef3de37
6 changed files with 152 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import ir_http
+41
View File
@@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from openerp import models
from openerp.http import request
from ..statsd_client import statsd, customer, environment
class IrHttp(models.AbstractModel):
_inherit = 'ir.http'
def _dispatch(self):
if not statsd:
return super(IrHttp, self)._dispatch()
path_info = request.httprequest.environ.get('PATH_INFO')
if path_info.startswith('/longpolling/'):
return super(IrHttp, self)._dispatch()
parts = ['http', ]
if path_info.startswith('/web/dataset/call_button'):
parts += ['button',
customer, environment,
request.params['model'].replace('.', '_'),
request.params['method'],
]
elif path_info.startswith('/web/dataset/exec_workflow'):
parts += ['workflow',
customer, environment,
request.params['model'].replace('.', '_'),
request.params['signal'],
]
else:
parts += ['request',
customer, environment,
]
with statsd.timer('.'.join(parts)):
return super(IrHttp, self)._dispatch()