stats.html 5.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. {% extends "oscar/base.html" %}
  2. {% block styles %}
  3. <link rel="stylesheet" href="{{ url_for('static', filename='css/charts.min.css') }}" type="text/css" />
  4. <style>
  5. #engine-times {
  6. --labels-size: 20rem;
  7. }
  8. #engine-times th {
  9. text-align: right;
  10. }
  11. </style>
  12. {% endblock %}
  13. {% block title %}{{ _('stats') }} - {% endblock %}
  14. {% block content %}
  15. <div class="container-fluid">
  16. <h1>{{ _('Engine stats') }}</h1>
  17. <div class="row">
  18. <div class="col-xs-12 col-sm-12 col-md-12">
  19. <div class="table-responsive">
  20. {% if not engine_stats.get('time') %}
  21. <div class="col-sm-12 col-md-12">
  22. {% include 'oscar/messages/no_data_available.html' %}
  23. </div>
  24. {% else %}
  25. <table class="table table-hover table-condensed table-striped">
  26. <tr>
  27. <th scope="col" style="width:20rem;">{{ _("Engine name") }}</th>
  28. <th scope="col" style="width:7rem; text-align: right;">{{ _('Scores') }}</th>
  29. <th scope="col">{{ _('Number of results') }}</th>
  30. <th scope="col">{{ _('Response time') }}</th>
  31. </tr>
  32. {% for engine_stat in engine_stats.get('time', []) %}
  33. <tr>
  34. <td>{{ engine_stat.name }}</td>
  35. <td style="text-align: right;">
  36. <span aria-labelledby="{{engine_stat.name}}_score" >{{ engine_stat.score|round(1) }}</span>
  37. <div class="engine-tooltip text-left" role="tooltip" id="{{engine_name}}_score">{{- "" -}}
  38. <p>{{ _('Scores per result') }}: {{ engine_stat.score_per_result | round(3) }}</p>
  39. </div>
  40. </td>
  41. <td>
  42. <span class="stacked-bar-chart-value">{{- engine_stat.result_count | int -}}</span>{{- "" -}}
  43. <span class="stacked-bar-chart" aria-labelledby="{{engine_stat.name}}_chart_result_count" aria-hidden="true">{{- "" -}}
  44. <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
  45. </span>{{- "" -}}
  46. </td>
  47. <td>
  48. <span class="stacked-bar-chart-value">{{- engine_stat.total | round(1) -}}</span>{{- "" -}}
  49. <span class="stacked-bar-chart" aria-labelledby="{{engine_stat.name}}_chart" aria-hidden="true">{{- "" -}}
  50. <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
  51. <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}}
  52. </span>{{- "" -}}
  53. <div class="engine-tooltip text-left" role="tooltip" id="{{engine_name}}_chart">{{- "" -}}
  54. <table class="table table-striped">
  55. <tr>
  56. <th scope="col"></th>
  57. <th scope="col">{{ _('Total') }}</th>
  58. <th scope="col">{{ _('HTTP') }}</th>
  59. <th scope="col">{{ _('Processing') }}</th>
  60. </tr>
  61. <tr>
  62. <th scope="col">{{ _('Median') }}</th>
  63. <td>{{ engine_stat.total }}</td>
  64. <td>{{ engine_stat.http }}</td>
  65. <td>{{ engine_stat.processing }}</td>
  66. </tr>
  67. <tr>
  68. <th scope="col">{{ _('P80') }}</th>
  69. <td>{{ engine_stat.total_p80 }}</td>
  70. <td>{{ engine_stat.http_p80 }}</td>
  71. <td>{{ engine_stat.processing_p80 }}</td>
  72. </tr>
  73. <tr>
  74. <th scope="col">{{ _('P95') }}</th>
  75. <td>{{ engine_stat.total_p95 }}</td>
  76. <td>{{ engine_stat.http_p95 }}</td>
  77. <td>{{ engine_stat.processing_p95 }}</td>
  78. </tr>
  79. </table>
  80. </div>
  81. </td>
  82. </tr>
  83. {% endfor %}
  84. </table>
  85. {% endif %}
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. {% endblock %}