2010-09-12 08:14:34 -07:00
|
|
|
|
{% extends "base.html" %}
|
2012-03-24 10:37:19 -07:00
|
|
|
|
{% load static from staticfiles %}
|
2010-09-23 08:33:32 -07:00
|
|
|
|
{% load mirror_status %}
|
2013-01-15 22:36:17 -08:00
|
|
|
|
{% load flags %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
|
2012-05-13 18:35:50 -07:00
|
|
|
|
{% block title %}Arch Linux - Mirror Status{% if tier != None %} - Tier {{ tier }}{% endif %}{% endblock %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
|
2013-01-15 22:36:17 -08:00
|
|
|
|
{% block head %}<link rel="stylesheet" type="text/css" href="{% static "flags/fam.css" %}" media="screen, projection" />{% endblock %}
|
|
|
|
|
|
2010-09-12 08:14:34 -07:00
|
|
|
|
{% block content %}
|
|
|
|
|
<div id="mirrorstatus" class="box">
|
2012-05-13 18:35:50 -07:00
|
|
|
|
<h2>Mirror Status{% if tier != None %} - Tier {{ tier }}{% endif %}</h2>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
<p>This page reports the status of all known, public, and active Arch Linux
|
|
|
|
|
mirrors. All data on this page reflects the status of the mirrors within
|
2010-09-30 10:47:30 -07:00
|
|
|
|
the <em>last {{ cutoff|hours }}</em>. All listed times are UTC. The check script runs
|
2010-09-21 15:30:14 -07:00
|
|
|
|
on a regular basis and polls for the <tt>lastsync</tt> file in the root of
|
|
|
|
|
our repository layout. This file is regularly updated on the central
|
|
|
|
|
repository, so checking the value within allows one to see if the mirror
|
|
|
|
|
has synced recently. This page contains several pieces of information about
|
|
|
|
|
each mirror.</p>
|
|
|
|
|
<ul>
|
2012-05-13 18:15:00 -07:00
|
|
|
|
<li><em>Mirror URL:</em> Mirrors are checked on a per-URL basis. All
|
|
|
|
|
available URLs and protocols for each known mirror are listed.</li>
|
2010-09-30 10:47:30 -07:00
|
|
|
|
<li><em>Completion %:</em> The number of mirror checks that have
|
|
|
|
|
successfully connected and disconnected from the given URL. If this is
|
|
|
|
|
below 100%, the mirror may be unreliable.</li>
|
2010-09-22 11:28:12 -07:00
|
|
|
|
<li><em>μ Delay:</em> The calculated average mirroring delay; e.g. the
|
2010-09-23 08:33:32 -07:00
|
|
|
|
mean value of <tt>last check − last sync</tt> for each check of
|
2010-09-23 08:37:50 -07:00
|
|
|
|
this mirror URL. Due to the timing of mirror checks, any value under
|
|
|
|
|
one hour should be viewed as ideal.</li>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
<li><em>μ Duration:</em> The average (mean) time it took to connect and
|
|
|
|
|
retrieve the <tt>lastsync</tt> file from the given URL. Note that this
|
|
|
|
|
connection time is from the location of the Arch server; your geography
|
|
|
|
|
may product different results.</li>
|
|
|
|
|
<li><em>σ Duration:</em> The standard deviation of the connect and
|
|
|
|
|
retrieval time. A high standard deviation can indicate an unstable or
|
|
|
|
|
overloaded mirror.</li>
|
|
|
|
|
<li><em>Mirror Score:</em> A very rough calculation for ranking
|
2010-10-07 06:09:07 -07:00
|
|
|
|
mirrors. It is currently calculated as <tt>(hours delay + average
|
|
|
|
|
duration + standard deviation) / completion percentage</tt>. Lower
|
|
|
|
|
is better.</li>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
</ul>
|
|
|
|
|
<p>The final table on this page is an error log, which shows any errors
|
|
|
|
|
that occurred while contacting mirrors. This only shows errors that
|
2010-09-30 10:47:30 -07:00
|
|
|
|
occurred within the last {{ cutoff|hours }}.</p>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
<ul>
|
|
|
|
|
<li><a href="#outofsync">Out of Sync Mirrors</a></li>
|
|
|
|
|
<li><a href="#successful">Successfully Syncing Mirrors</a></li>
|
|
|
|
|
<li><a href="#errorlog">Mirror Syncing Error Log</a></li>
|
|
|
|
|
</ul>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
|
2010-09-23 08:33:32 -07:00
|
|
|
|
<p>The last mirror check ran at {{ last_check|date:'Y-m-d H:i' }} UTC.
|
2010-12-13 12:15:28 -08:00
|
|
|
|
Checks have ran {{ num_checks }} times in the last {{ cutoff|hours }} at
|
|
|
|
|
an average interval of {{ check_frequency|duration }} (hh:mm).</p>
|
|
|
|
|
|
|
|
|
|
<p>This data is also available in <a href="json/">JSON format</a>. The
|
2010-12-14 08:10:36 -08:00
|
|
|
|
units of all time/duration values are in seconds; date/time values are
|
|
|
|
|
UTC.</p>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
|
2010-09-21 16:14:53 -07:00
|
|
|
|
<a name="outofsync" id="outofsync"></a>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<h3>Out of Sync Mirrors</h3>
|
|
|
|
|
{% with bad_urls as urls %}
|
2010-09-21 15:30:14 -07:00
|
|
|
|
{% with 'outofsync_mirrors' as table_id %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
{% include "mirrors/status_table.html" %}
|
|
|
|
|
{% endwith %}
|
2010-09-21 15:30:14 -07:00
|
|
|
|
{% endwith %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
|
2010-09-21 16:14:53 -07:00
|
|
|
|
<a name="successful" id="successful"></a>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<h3>Successfully Syncing Mirrors</h3>
|
|
|
|
|
{% with good_urls as urls %}
|
2010-09-21 15:30:14 -07:00
|
|
|
|
{% with 'successful_mirrors' as table_id %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
{% include "mirrors/status_table.html" %}
|
|
|
|
|
{% endwith %}
|
2010-09-21 15:30:14 -07:00
|
|
|
|
{% endwith %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
|
2010-09-21 16:14:53 -07:00
|
|
|
|
<a name="errorlog" id="errorlog"></a>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<h3>Mirror Syncing Error Log</h3>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
<table id="errorlog_mirrors" class="results">
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Mirror URL</th>
|
|
|
|
|
<th>Protocol</th>
|
|
|
|
|
<th>Country</th>
|
|
|
|
|
<th>Error Message</th>
|
|
|
|
|
<th>Last Occurred</th>
|
2010-09-30 10:47:30 -07:00
|
|
|
|
<th>Occurrences (last {{ cutoff|hours }})</th>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{% for log in error_logs %}
|
2012-03-29 09:35:40 -07:00
|
|
|
|
{% spaceless %}<tr class="{% cycle 'odd' 'even' %}">
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<td>{{ log.url__url }}</td>
|
|
|
|
|
<td>{{ log.url__protocol__protocol }}</td>
|
2013-01-15 22:36:17 -08:00
|
|
|
|
<td class="country">{% country_flag log.country %}{{ log.country.name }}</td>
|
2012-05-13 18:14:16 -07:00
|
|
|
|
<td class="wrap">{{ log.error|linebreaksbr }}</td>
|
2010-09-21 15:30:14 -07:00
|
|
|
|
<td>{{ log.last_occurred|date:'Y-m-d H:i' }}</td>
|
|
|
|
|
<td>{{ log.error_count }}</td>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
</tr>
|
2012-03-29 09:35:40 -07:00
|
|
|
|
{% endspaceless %}{% endfor %}
|
2010-09-12 08:14:34 -07:00
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
</div>
|
2012-07-08 21:30:48 -07:00
|
|
|
|
{% load cdn %}{% jquery %}{% jquery_tablesorter %}
|
2012-03-24 10:37:19 -07:00
|
|
|
|
<script type="text/javascript" src="{% static "archweb.js" %}"></script>
|
2010-09-12 08:14:34 -07:00
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(document).ready(function() {
|
2012-04-24 23:52:19 -07:00
|
|
|
|
var headers = { 4: { sorter: 'duration' }, 5: { sorter: 'mostlydigit' }, 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' } };
|
2010-09-30 10:47:30 -07:00
|
|
|
|
$("#outofsync_mirrors:has(tbody tr)").tablesorter(
|
2012-04-24 23:52:19 -07:00
|
|
|
|
{widgets: ['zebra'], sortList: [[4,0]], headers: headers });
|
2010-09-30 10:47:30 -07:00
|
|
|
|
$("#successful_mirrors:has(tbody tr)").tablesorter(
|
2012-04-24 23:52:19 -07:00
|
|
|
|
{widgets: ['zebra'], sortList: [[7,0]], headers: headers });
|
2010-09-30 10:47:30 -07:00
|
|
|
|
$("#errorlog_mirrors:has(tbody tr)").tablesorter(
|
2010-09-21 15:30:14 -07:00
|
|
|
|
{widgets: ['zebra'], sortList: [[4,1], [5,1]]});
|
2010-09-12 08:14:34 -07:00
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
{% endblock %}
|