{% extends "admin_base.html" %} {% block extra_head %} {{ super() }} {% endblock %} {% macro breakdown(title, counts) %}

{{ title }}

{% if counts %}
{% for name, total in counts.items() %}
{{ name }}
{{ total }}
{% endfor %}
{% else %}

None yet.

{% endif %}
{% endmacro %} {% block admin_content %}

Community nodes

{{ 'Donation on' if enabled else 'Donation off' }}
{% if not pool.online %}

The nodes service is not running, so no donor can be connected right now. Start it on the service page.

{% endif %}
{{ pool.connected }}Connected
{{ pool.capacity }}Capacity
{{ queue.depth }} / {{ queue.max_depth }}Queue depth
{{ pool.open_circuits }}Open circuits
{{ pool.jobs_done }}Jobs done
{{ pool.jobs_failed }}Jobs failed
{{ pool.kicked }}Kicked
{{ flags|length }}Open flags
{{ breakdown("Devices by status", devices_by_status) }} {{ breakdown("Devices by kind", devices_by_kind) }} {{ breakdown("Devices by address class", devices_by_asn_class) }} {{ breakdown("Devices by country", devices_by_country) }} {{ breakdown("Requests", {"queued": queue.queued, "assigned": queue.assigned, "done": queue.done, "failed": queue.failed, "expired": queue.expired}) }} {{ breakdown("Today (UTC)", usage_today) }}

Open flags

{% for flag in flags %} {% else %} {% endfor %}
Open node flags
Kind Owner Device Detail Raised Action
{{ flag.kind }} {% if flag.owner_username %}{{ flag.owner_username }}{% else %}-{% endif %} {{ flag.device_label or flag.device_uid or '-' }} {{ flag.detail or '-' }} {% if flag.created_at %}{{ local_dt(flag.created_at) }}{% else %}-{% endif %}
No open flags.

Recent devices

{% for device in devices %} {% else %} {% endfor %}
Most recently seen node devices
Device Owner Status Kind Region Last seen Action
{{ device.label or device.uid }}{{ device.platform }} {{ device.client_version }} {% if device.owner_username %}{{ device.owner_username }}{% else %}-{% endif %} {{ device.status }} {% if device.status == 'suspended' and device.suspend_reason %}{{ device.suspend_reason }}{% endif %} {{ device.kind }} {{ device.country or '-' }} {{ device.asn_class }}{% if device.asn %} AS{{ device.asn }}{% endif %}{% if device.class_override == 'allow' %}, overridden{% endif %} {% if device.last_seen_at %}{{ local_dt(device.last_seen_at) }}{% else %}-{% endif %} {% if device.status == 'suspended' %} {% elif device.status == 'active' %} {% endif %} {% if device.class_override == 'allow' %} {% elif device.asn_class not in ('residential', 'mobile') %} {% endif %}
No devices registered yet.

Circuit breakers

{% for circuit in circuits %} {% else %} {% endfor %}
Destination and node circuit breakers that are not closed
Subject State Failures Seconds left
{{ circuit.key }} {{ circuit.state }} {{ circuit.failures }} {{ circuit.seconds_left }}
No failing circuits.

Success by address class

{% for row in outcomes %} {% else %} {% endfor %}
Lifetime job outcomes per destination adapter and donor address class
Destination Address class Answered Blocked Failed Total
{{ row.adapter }} {{ row.asn_class }} {{ row.ok }} {{ row.blocked }} {{ row.failed }} {{ row.total }}
No job has been served yet, so no rate is known (n = 0).
{{ breakdown("Lifetime counters", lifetime) }} {{ breakdown("Shared cache", cache) }}

Address database

{% if geo.available %}

Month {{ geo.month }}, {{ geo.asn_rows }} ASN ranges, {{ geo.country_rows }} country ranges.

{{ geo.attribution }}

{% else %}

Not installed. Every donor is classed unknown. Run devplace nodes geo-sync.

{% endif %}

Settings

{% for field in settings %}
{% if field.kind == 'flag' %} {% else %} Default {{ field.default }}, maximum {{ field.ceiling }} {% endif %}
{% endfor %}
{% endblock %}