forked from zaclys/searxng
[mod] Server-Timing header: add render field
Add a "render" field to the Server-Timing header This field is the time spent in the searx.webapp.render function (Jinja2 rendering) See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing
This commit is contained in:
parent
39eda78088
commit
d12033e166
|
@ -480,8 +480,11 @@ def render(template_name, override_theme=None, **kwargs):
|
||||||
for css in plugin.css_dependencies:
|
for css in plugin.css_dependencies:
|
||||||
kwargs['styles'].add(css)
|
kwargs['styles'].add(css)
|
||||||
|
|
||||||
return render_template(
|
start_time = default_timer()
|
||||||
|
result = render_template(
|
||||||
'{}/{}'.format(kwargs['theme'], template_name), **kwargs)
|
'{}/{}'.format(kwargs['theme'], template_name), **kwargs)
|
||||||
|
request.render_time += default_timer() - start_time
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def _get_ordered_categories():
|
def _get_ordered_categories():
|
||||||
|
@ -498,6 +501,7 @@ def _get_ordered_categories():
|
||||||
@app.before_request
|
@app.before_request
|
||||||
def pre_request():
|
def pre_request():
|
||||||
request.start_time = default_timer()
|
request.start_time = default_timer()
|
||||||
|
request.render_time = 0
|
||||||
request.timings = []
|
request.timings = []
|
||||||
request.errors = []
|
request.errors = []
|
||||||
|
|
||||||
|
@ -556,7 +560,8 @@ def add_default_headers(response):
|
||||||
@app.after_request
|
@app.after_request
|
||||||
def post_request(response):
|
def post_request(response):
|
||||||
total_time = default_timer() - request.start_time
|
total_time = default_timer() - request.start_time
|
||||||
timings_all = ['total;dur=' + str(round(total_time * 1000, 3))]
|
timings_all = ['total;dur=' + str(round(total_time * 1000, 3)),
|
||||||
|
'render;dur=' + str(round(request.render_time * 1000, 3))]
|
||||||
if len(request.timings) > 0:
|
if len(request.timings) > 0:
|
||||||
timings = sorted(request.timings, key=lambda v: v['total'])
|
timings = sorted(request.timings, key=lambda v: v['total'])
|
||||||
timings_total = ['total_' + str(i) + '_' + v['engine'] +
|
timings_total = ['total_' + str(i) + '_' + v['engine'] +
|
||||||
|
|
Loading…
Reference in New Issue