| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  | {% extends 'oscar/base.html' %} | 
					
						
							|  |  |  | {% from '__common__/new_issue.html' import new_issue %} | 
					
						
							| 
									
										
										
										
											2021-04-14 18:11:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  | {% block title %}{{ _('stats') }} - {% if selected_engine_name %} {{ selected_engine_name }} - {% endif %}{% endblock %} | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | {%- macro th_sort(column_order, column_name) -%} | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |     {%- if selected_engine_name -%} | 
					
						
							|  |  |  |         {{ column_name }} | 
					
						
							|  |  |  |     {%- elif column_order==sort_order -%} | 
					
						
							|  |  |  |         {{ column_name }} {{ icon('arrow-dropdown') }} | 
					
						
							|  |  |  |     {%- else -%} | 
					
						
							|  |  |  |         <a href="{{ url_for('stats', sort=column_order) }}">{{ column_name }}</a> | 
					
						
							|  |  |  |     {%- endif -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  | {%- endmacro -%} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  | {% block content %} | 
					
						
							|  |  |  | <div class="container-fluid"> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |     <h1>{{ _('Engine stats') }}{% if selected_engine_name %} - {{ selected_engine_name }}{% endif %}</h1> | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  |     <div class="row"> | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |         <div class="col-xs-12 col-sm-12 col-md-12"> | 
					
						
							|  |  |  |             <div class="table-responsive"> | 
					
						
							|  |  |  |                 {% if not engine_stats.get('time') %} | 
					
						
							|  |  |  |                     <div class="col-sm-12 col-md-12"> | 
					
						
							|  |  |  |                         {% include 'oscar/messages/no_data_available.html' %} | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  |                     </div> | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                 {% else %} | 
					
						
							|  |  |  |                     <table class="table table-hover table-condensed table-striped"> | 
					
						
							|  |  |  |                         <tr> | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                             <th scope="col" style="width:20rem;">{{ th_sort('name', _("Engine name")) }}</th> | 
					
						
							|  |  |  |                             <th scope="col" style="width:7rem; text-align: right;">{{ th_sort('score', _('Scores')) }}</th> | 
					
						
							|  |  |  |                             <th scope="col">{{ th_sort('result_count', _('Result count')) }}</th> | 
					
						
							|  |  |  |                             <th scope="col">{{ th_sort('time', _('Response time')) }}</th> | 
					
						
							|  |  |  |                             <th scope="col" style="text-align: right;">{{ th_sort('reliability', _('Reliability')) }}</th> | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                         </tr> | 
					
						
							|  |  |  |                         {% for engine_stat in engine_stats.get('time', []) %} | 
					
						
							|  |  |  |                         <tr> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |                             <td><a href="{{ url_for('stats', engine=engine_stat.name|e) }}">{{ engine_stat.name }}</a></td> | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                             <td style="text-align: right;"> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |                                 {%- if engine_stat.score -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                 <span aria-labelledby="{{engine_stat.name}}_score" >{{ engine_stat.score|round(1) }}</span> | 
					
						
							| 
									
										
										
										
											2021-04-23 11:01:54 +02:00
										 |  |  |                                 <div class="engine-tooltip text-left" role="tooltip" id="{{engine_stat.name}}_score">{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                     <p>{{ _('Scores per result') }}: {{ engine_stat.score_per_result | round(3) }}</p> | 
					
						
							|  |  |  |                                 </div> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |                                 {%- endif -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                             </td> | 
					
						
							|  |  |  |                             <td> | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                                 {%- if engine_stat.result_count -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                 <span class="stacked-bar-chart-value">{{- engine_stat.result_count | int -}}</span>{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-23 11:01:54 +02:00
										 |  |  |                                 <span class="stacked-bar-chart" aria-hidden="true">{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                     <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                                 </span> | 
					
						
							|  |  |  |                                 {%- endif -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                             </td> | 
					
						
							|  |  |  |                             <td> | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                                 {%- if engine_stat.total -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                 <span class="stacked-bar-chart-value">{{- engine_stat.total | round(1) -}}</span>{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-23 11:01:54 +02:00
										 |  |  |                                 <span class="stacked-bar-chart" aria-labelledby="{{engine_stat.name}}_time" aria-hidden="true">{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                     <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}} | 
					
						
							|  |  |  |                                     <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}} | 
					
						
							|  |  |  |                                 </span>{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-23 11:01:54 +02:00
										 |  |  |                                 <div class="engine-tooltip text-left" role="tooltip" id="{{engine_stat.name}}_time">{{- "" -}} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                                     <table class="table table-striped"> | 
					
						
							|  |  |  |                                         <tr> | 
					
						
							|  |  |  |                                             <th scope="col"></th> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('Total') }}</th> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('HTTP') }}</th> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('Processing') }}</th> | 
					
						
							|  |  |  |                                         </tr> | 
					
						
							|  |  |  |                                         <tr> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('Median') }}</th> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.total }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.http }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.processing }}</td> | 
					
						
							|  |  |  |                                         </tr> | 
					
						
							|  |  |  |                                         <tr> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('P80') }}</th> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.total_p80 }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.http_p80 }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.processing_p80 }}</td> | 
					
						
							|  |  |  |                                         </tr> | 
					
						
							|  |  |  |                                         <tr> | 
					
						
							|  |  |  |                                             <th scope="col">{{ _('P95') }}</th> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.total_p95 }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.http_p95 }}</td> | 
					
						
							|  |  |  |                                             <td>{{ engine_stat.processing_p95 }}</td> | 
					
						
							|  |  |  |                                         </tr> | 
					
						
							|  |  |  |                                     </table> | 
					
						
							|  |  |  |                                 </div> | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                                 {%- endif -%} | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                             </td> | 
					
						
							| 
									
										
										
										
											2021-04-22 17:47:53 +02:00
										 |  |  |                             <td style="text-align: right;"> {{ engine_reliabilities.get(engine_stat.name, {}).get('reliablity') }}</td> | 
					
						
							| 
									
										
										
										
											2021-04-22 12:14:11 +02:00
										 |  |  |                         </tr> | 
					
						
							|  |  |  |                         {% endfor %} | 
					
						
							|  |  |  |                     </table> | 
					
						
							| 
									
										
										
										
											2014-09-26 18:26:46 +02:00
										 |  |  |                 {% endif %} | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  |             </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  |         <div class="col-xs-12 col-sm-12 col-md-12"> | 
					
						
							|  |  |  |         {% if selected_engine_name %} | 
					
						
							|  |  |  |             {% for secondary in [False, True] %} | 
					
						
							|  |  |  |                 {% set ns = namespace(first=true) %} | 
					
						
							|  |  |  |                 {% for error in engine_reliabilities[selected_engine_name].errors %} | 
					
						
							|  |  |  |                     {% if secondary == error.secondary %} | 
					
						
							|  |  |  |                         {% if ns.first %} | 
					
						
							|  |  |  |                             {% set ns.first = false %} | 
					
						
							|  |  |  |                             <h3>{% if secondary %}{{ _('Warnings') }}{% else %}{{ _('Errors and exceptions') }}{% endif %}</h3> | 
					
						
							|  |  |  |                         {% endif %} | 
					
						
							|  |  |  |                         <table class="table table-striped table-bordered"> | 
					
						
							|  |  |  |                             <tbody style="padding-top: 1rem;"> | 
					
						
							|  |  |  |                                 <tr> | 
					
						
							|  |  |  |                                     {%- if error.exception_classname -%} | 
					
						
							|  |  |  |                                         <th scope="row" style="width: 10rem">{{ _('Exception') }}</th><td>{{ error.exception_classname }}</td> | 
					
						
							|  |  |  |                                     {%- elif error.log_message -%} | 
					
						
							|  |  |  |                                         <th scope="row" style="width: 10rem">{{ _('Message') }}</th><td>{{ error.log_message }}</td> | 
					
						
							|  |  |  |                                     {%- endif -%} | 
					
						
							|  |  |  |                                     <th scope="row" style="width: 10rem">{{ _('Percentage') }}</th><td style="width: 10rem">{{ error.percentage }}</td> | 
					
						
							|  |  |  |                                 </tr> | 
					
						
							|  |  |  |                                 {% if error.log_parameters and error.log_parameters != (None, None, None) %}<tr><th scope="row">{{ _('Parameter') }}</th>{{- '' -}} | 
					
						
							|  |  |  |                                     <td colspan="3"> | 
					
						
							|  |  |  |                                         {%- for param in error.log_parameters -%} | 
					
						
							|  |  |  |                                             <span style="border-right: 1px solid gray; padding: 0 1rem 0 0; margin: 0 0 0 0.5rem;">{{ param }}</span> | 
					
						
							|  |  |  |                                         {%- endfor -%} | 
					
						
							|  |  |  |                                     </td> | 
					
						
							|  |  |  |                                 </tr> | 
					
						
							|  |  |  |                                 {% endif %} | 
					
						
							|  |  |  |                                 <tr><th scope="row">{{ _('Filename') }}</th><td colspan="3">{{ error.filename }}:{{ error.line_no }}</td></tr> | 
					
						
							|  |  |  |                                 <tr><th scope="row">{{ _('Function') }}</th><td colspan="3">{{ error.function }}</td></tr> | 
					
						
							|  |  |  |                                 <tr><th scope="row">{{ _('Code') }}</th><td colspan="3">{{ error.code }}</td></tr> | 
					
						
							|  |  |  |                             </tbody> | 
					
						
							|  |  |  |                         </table> | 
					
						
							|  |  |  |                     {% endif %} | 
					
						
							|  |  |  |                 {% endfor %} | 
					
						
							|  |  |  |             {% endfor %} | 
					
						
							|  |  |  |             {% if engine_reliabilities[selected_engine_name].checker %} | 
					
						
							|  |  |  |                 <h3>{{ _('Checker') }}</h3> | 
					
						
							|  |  |  |                 <table class="table table-striped table-bordered"> | 
					
						
							|  |  |  |                     <tr> | 
					
						
							|  |  |  |                         <th scope="col" style="width: 10rem">{{ _('Failed test') }}</th> | 
					
						
							|  |  |  |                         <th scope="col">{{ _('Comment(s)') }}</th> | 
					
						
							|  |  |  |                     </tr> | 
					
						
							|  |  |  |                     {% for test_name, results in engine_reliabilities[selected_engine_name].checker.items() %} | 
					
						
							|  |  |  |                     <tr> | 
					
						
							|  |  |  |                         <td>{{ test_name }}</td> | 
					
						
							|  |  |  |                         <td> | 
					
						
							|  |  |  |                             {% for r in results %}<p>{{ r }}</p>{% endfor %} | 
					
						
							|  |  |  |                         </td> | 
					
						
							|  |  |  |                     </tr> | 
					
						
							|  |  |  |                     {% endfor %} | 
					
						
							|  |  |  |                 </table> | 
					
						
							|  |  |  |             {% endif %} | 
					
						
							|  |  |  |             {{ new_issue(brand.NEW_ISSUE_URL, selected_engine_name, engine_reliabilities[selected_engine_name]) }} | 
					
						
							|  |  |  |         {% endif %} | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  |     </div> | 
					
						
							|  |  |  | </div> | 
					
						
							| 
									
										
										
										
											2021-04-23 21:08:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-22 22:42:29 +02:00
										 |  |  | {% endblock %} |