mirror-web/status.html
2021-08-13 19:09:32 +08:00

158 lines
6.9 KiB
HTML

---
permalink: /status/
---
<!DOCTYPE html>
<html>
{% capture metaDesc %}镜像站监控,包括网络流量、磁盘状态、磁盘占用和 CPU 与内存的使用情况,以及各个镜像的同步状态{% endcapture %}
{% include head.html metaDesc=metaDesc notArticle=true %}
<body>
{% include nav.html %}
<div id="status-page">
{% unless site.issue %}
<div class="spacing hidden-xs"></div>
<div class="container">
{% unless site.hide_server_status %}
<h3 id="server-status"> # 服务器监控 </h3>
<h4> # 网络流量 </h4>
<div class="row">
{% include status-pic.html name="service_traffic_IPv4" %}
{% include status-pic.html name="service_traffic_IPv6" %}
</div>
<h4># 磁盘状态 </h4>
<div class="row" id="disk-usage">{% raw %}
<div class="col-md-12" v-if="diskUsages.length"><strong>磁盘占用</strong>: </div>
<template v-for="disk in diskUsages">
<div class="col-xs-1" v-if="disk.desc">{{ disk.desc }}</div>
<div :class="['col-xs-' + (disk.desc ? '11' : '12')]">
<div class="progress">
<div class="progress-bar" role="progressbar" :aria-valuenow="disk.persentage" aria-valuemin="0" aria-valuemax="100" :style="{width: disk.persentage + '%'}">
<strong>{{ disk.used }} / {{ disk.total }}</strong>
</div>
</div>
</div>
</template>{% endraw %}
{% include status-pic.html name="diskstats_iops" %}
{% include status-pic.html name="diskstats_throughput" %}
</div>
<h4># CPU / 内存</h4>
<div class="row">
{% include status-pic.html name="cpu" %}
{% include status-pic.html name="memory" %}
</div>
{% endunless %}
<h3 id="syncing-status"># 同步状态</h3>
<table class="table table-condensed flat-md">
<thead class="hidden-xs hidden-sm">
<tr>
<th class="col-xs-12 col-md-2">Name</th>
<th class="col-xs-12 col-md-4" colspan=2>Last Update</th>
<th class="col-xs-12 col-md-4">Upstream</th>
<th class="col-xs-12 col-md-1">Status</th>
<th class="col-xs-12 col-md-1">Size</th>
</tr>
</thead>
<tbody id="mirror-list" data-tuna-roll-cur="-1" data-tuna-roll-max="6">
{% raw %}
<tr v-for="mir in rawMirrorList" :class="['row', 'status-'+mir.status, mir.last_ended_ts == mir.last_update_ts ? 'last-succ' : 'last-fail']" :key="mir.name">
<td class="col-xs-4">Name</td>
<td class="col-md-2 col-xs-8">{{mir.name}}{{mir.is_master ? '' : ' [slave]'}}</td>
<td class="col-xs-4">Last Success</td>
<td class="col-xs-8 hidden-md hidden-lg">{{mir.last_update}}, {{mir.last_update_ago}}</td>
<template v-if="mir.last_ended_ts != mir.last_update_ts">
<td class="col-xs-4">Last Attempt</td>
<td class="col-xs-8 hidden-md hidden-lg">{{mir.last_ended}}, {{mir.last_ended_ago}}</td>
</template>
<td class="col-xs-4">Next Sync</td>
<td class="col-xs-8 hidden-md hidden-lg" v-if="mir.status != 'syncing'">{{mir.next_schedule}}, {{mir.next_schedule_ago}}</td>
<td class="col-xs-8 hidden-md hidden-lg" v-else>Syncing Now</td>
<td class="hidden-xs hidden-sm hidden-md hidden-lg"></td>
<td class="col-md-2 col-xs-3 rolling-3 text-left-md text-right-xs hidden-xs hidden-sm">
<div v-if="dateTooltip" class="tuna-roll">&nbsp;
<template v-if="mir.last_ended_ts == mir.last_update_ts">
<div data-tuna-roll-seq="0 1 2 3">Last Successful Sync</div>
</template>
<template v-else>
<div data-tuna-roll-seq="0 1">Last Successful Sync</div>
<div data-tuna-roll-seq="2 3">Last Attempted Sync</div>
</template>
<div v-if="mir.status == 'syncing'" data-tuna-roll-seq="4 5">Sync Started</div>
<div v-else data-tuna-roll-seq="4 5">Next Scheduled Sync</div>
</div>
<div v-else class="tuna-roll">&nbsp;
<template v-if="mir.last_ended_ts == mir.last_update_ts">
<div data-tuna-roll-seq="0 1 2 3">Last Successful Sync</div>
</template>
<template v-else>
<div data-tuna-roll-seq="0">Last Successful Sync</div>
<div data-tuna-roll-seq="1">Last Attempted Sync</div>
<div data-tuna-roll-seq="2">Last Successful Sync</div>
<div data-tuna-roll-seq="3">Last Attempted Sync</div>
</template>
<div data-tuna-roll-seq="4 5">Next Scheduled Sync</div>
</div>
</td>
<td class="hidden-xs hidden-sm hidden-md hidden-lg"></td>
<td class="col-md-2 col-xs-5 rolling-6 hidden-xs hidden-sm">
<div v-if="dateTooltip" class="tuna-roll">&nbsp;
<template v-if="mir.last_ended_ts == mir.last_update_ts">
<div data-tuna-roll-seq="0 1 2 3">{{mir.last_update_ago}}
<div class="tooltiptext">{{mir.last_update}}</div>
</div>
</template>
<template v-else>
<div data-tuna-roll-seq="0 1">{{mir.last_update_ago}}
<div class="tooltiptext">{{mir.last_update}}</div>
</div>
<div data-tuna-roll-seq="2 3" v-if="mir.last_ended_ts != mir.last_update_ts">{{mir.last_ended_ago}}
<div class="tooltiptext">{{mir.last_ended}}</div>
</div>
</template>
<div v-if="mir.status == 'syncing'" data-tuna-roll-seq="4 5">{{mir.last_started_ago}}
<div class="tooltiptext">{{mir.last_started}}</div>
</div>
<div v-else data-tuna-roll-seq="4 5">{{mir.next_schedule_ago}}
<div class="tooltiptext">{{mir.next_schedule}}</div>
</div>
</div>
<div v-else class="tuna-roll">&nbsp;
<template v-if="mir.last_ended_ts == mir.last_update_ts">
<div data-tuna-roll-seq="0 1">{{mir.last_update}}</div>
<div data-tuna-roll-seq="2 3">{{mir.last_update_ago}}</div>
</template>
<template v-else>
<div data-tuna-roll-seq="0">{{mir.last_update}}</div>
<div data-tuna-roll-seq="1" v-if="mir.last_ended_ts != mir.last_update_ts">{{mir.last_ended}}</div>
<div data-tuna-roll-seq="2">{{mir.last_update_ago}}</div>
<div data-tuna-roll-seq="3" v-if="mir.last_ended_ts != mir.last_update_ts">{{mir.last_ended_ago}}</div>
</template>
<template v-if="mir.status == 'syncing'">
<div data-tuna-roll-seq="4 5">Syncing Now</div>
</template>
<template v-else>
<div data-tuna-roll-seq="4">{{mir.next_schedule}}</div>
<div data-tuna-roll-seq="5">{{mir.next_schedule_ago}}</div>
</template>
</div>
</td>
<td class="col-xs-4">Upstream</td>
<td class="col-md-4 col-xs-8">{{mir.upstream}}</td>
<td class="col-xs-4">Status</td>
<td class="col-md-1 col-xs-8">{{mir.status}}</td>
<td class="col-xs-4">Size</td>
<td class="col-md-1 col-xs-8">{{mir.size}}</td>
</tr>
{% endraw %}
</tbody>
</table>
</div><!--/container -->
{% endunless %}
</div><!--/status -->
{% include footer.html %}
<script src="/static/js/status.js?{{ site.data['hash'] }}"></script>
<script src="/static/js/index.js?{{ site.data['hash'] }}"></script>
</body>
</html>
<!--
vim: ts=2 sts=2 sw=2 noexpandtab
-->