lib/sidekiq/statistic/views/statistic.erb
<% add_to_head do %>
<link href="<%= root_path %>common.css" media="screen" rel="stylesheet" type="text/css" />
<link href="<%= root_path %>ui-datepicker.css" media="screen" rel="stylesheet" type="text/css" />
<link href="<%= root_path %>sidekiq-statistic-light.css" media="screen and (prefers-color-scheme: light)" rel="stylesheet" type="text/css" />
<link href="<%= root_path %>sidekiq-statistic-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
<% if Sidekiq::VERSION >= '6.3' %>
<!-- Jquery was removed in Sidekiq 6.3, so we need to explicitly add it. Several components (e.g. datepicker) require it -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<% end %>
<% end %>
<script type="text/javascript" src="<%= root_path %>c3.js"></script>
<script type="text/javascript" src="<%= root_path %>statistic.js"></script>
<div class="statistic">
<h2><%= t('Statistic') %></h2>
<ul class="nav nav-tabs">
<li class="active"><a href="<%= root_path %>statistic" class="statistic__tab"><%= t('Index') %></a></li>
<li><a href="<%= root_path %>statistic/realtime" class="statistic__tab"><%= t('Realtime') %></a></li>
</ul>
<div class="statistic__container border-radius straight-top-left-radius">
<div class="statistic__datepicker">
<div>
<label><%= t('Start') %></label>
<input id="datepicker_from" class="statistic__datepicker__input left" autocomplete="off" />
</div>
<div>
<label><%= t('End') %></label>
<input id="datepicker_to" class="statistic__datepicker__input right" autocomplete="off" />
</div>
</div>
<div class="statistic__charts">
<h2><%= t('Failed') %></h2>
<div id="js-failed-chart"></div>
<h2><%= t('Passed') %></h2>
<div id="js-passed-chart"></div>
</div>
<h2><%= t('WorkersTable') %></h2>
<table class="statistic__table table table-hover table-bordered table-striped table-white live-reload">
<thead>
<th><%= t('Worker') %></th>
<th><%= t('Date') %></th>
<th><%= t('Queue') %></th>
<th><%= t('Success') %></th>
<th><%= t('Failure') %></th>
<th><%= t('Total') %></th>
<th><%= t('TimeSec') %></th>
<th><%= t('AverageSec') %></th>
<th><%= t('MinTimeSec') %></th>
<th><%= t('MaxTimeSec') %></th>
<th><%= t('LastJobStatus') %></th>
</thead>
<tbody>
<% @all_workers.each do |worker| %>
<tr>
<td>
<a href="<%= root_path %>statistic/<%= worker[:name] %>"><%= worker[:name] %></a>
</td>
<td><%= format_date worker[:runtime][:last], 'datetime' %></td>
<td><%= worker[:queue] %></td>
<td><%= worker[:number_of_calls][:success] %></td>
<td><%= worker[:number_of_calls][:failure] %></td>
<td><%= worker[:number_of_calls][:total] %></td>
<td><%= worker[:runtime][:total] %></td>
<td><%= worker[:runtime][:average] %></td>
<td><%= worker[:runtime][:min] %></td>
<td><%= worker[:runtime][:max] %></td>
<td><%= worker[:last_job_status] %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>