{% trans %}PowerDNS Server Status{% endtrans %}
{% if not pdns_api_enabled %}
{% trans %}PowerDNS API is not configured. Please configure the PowerDNS API URL and key in your settings.{% endtrans %}
{% else %} {% if server_status.running %}
{% trans %}Server Running{% endtrans %}
{% else %}
{% trans %}Server Not Running{% endtrans %}
{% if server_status.error %}
{{ server_status.error }}
{% endif %} {% endif %}
{% trans %}Server Information{% endtrans %}
{% if server_status.running %} {% if server_status.id is defined and server_status.id != server_status.server_name %} {% endif %} {% if server_status.uptime is defined %} {% endif %}
{% trans %}PDNS Server{% endtrans %} {{ server_status.display_name }}
{% trans %}Server Name{% endtrans %} {{ server_status.server_name }}
{% trans %}Server ID{% endtrans %} {{ server_status.id }}
{% trans %}PowerDNS Version{% endtrans %} {{ server_status.version }}
{% trans %}Daemon Type{% endtrans %} {{ server_status.daemon_type }}
{% trans %}Uptime{% endtrans %} {{ server_status.uptime }}
{% else %}

{% trans %}Server information is not available.{% endtrans %}

{% endif %}
{% if slave_status|length > 0 %}
{% trans %}Slave Servers{% endtrans %} (Supermasters)

{% trans %}Showing connectivity status for DNS servers listed in the supermasters table.{% endtrans %}

{% for ip, info in slave_status %} {% if info.error is defined %} {% endif %} {% endfor %}
{% trans %}Server IP{% endtrans %} {% trans %}Status{% endtrans %} {% trans %}Last Checked{% endtrans %}
{{ ip }} {% if info.status == 'ok' %} {% trans %}OK{% endtrans %} {% elseif info.status == 'unreachable' %} {% trans %}Unreachable{% endtrans %} {% else %} {% trans %}Not checked{% endtrans %} {% endif %} {{ info.lastChecked }}
{{ info.error }}
{% endif %}
{% if server_status.running and server_status.metrics is defined %}
{% trans %}Server Statistics{% endtrans %}
{% trans %}Server Health{% endtrans %}
{% if server_status.running %} {% trans %}Online{% endtrans %} {% else %} {% trans %}Offline{% endtrans %} {% endif %}
{% trans %}Uptime{% endtrans %}
{% if server_status.formatted_uptime is defined %} {{ server_status.formatted_uptime }} {% elseif server_status.uptime is defined %} {{ server_status.uptime }} {% else %} {% trans %}Unknown{% endtrans %} {% endif %}
{% trans %}Latency{% endtrans %}
{{ server_status.metrics['latency'] ?? '0' }}µs
{% trans %}CPU Usage{% endtrans %}
User: {{ server_status.metrics['pdns_auth_user_msec'] ?? server_status.metrics['user-msec'] ?? '0' }}ms / Sys: {{ server_status.metrics['pdns_auth_sys_msec'] ?? server_status.metrics['sys-msec'] ?? '0' }}ms
{% trans %}Query Statistics{% endtrans %}
{% set udp_queries = server_status.metrics['udp-queries'] ?? server_status.metrics['pdns_auth_udp_queries'] ?? 0 %} {% if udp_queries > 1000000 %} {{ (udp_queries / 1000000)|round(2) }}M {% elseif udp_queries > 1000 %} {{ (udp_queries / 1000)|round(2) }}K {% else %} {{ udp_queries }} {% endif %}
{% trans %}UDP Queries{% endtrans %}
{% set tcp_queries = server_status.metrics['tcp-queries'] ?? server_status.metrics['pdns_auth_tcp_queries'] ?? 0 %} {% if tcp_queries > 1000000 %} {{ (tcp_queries / 1000000)|round(2) }}M {% elseif tcp_queries > 1000 %} {{ (tcp_queries / 1000)|round(2) }}K {% else %} {{ tcp_queries }} {% endif %}
{% trans %}TCP Queries{% endtrans %}
{% set cache_hits = server_status.metrics['packetcache-hit'] ?? 0 %} {% if cache_hits > 1000000 %} {{ (cache_hits / 1000000)|round(2) }}M {% elseif cache_hits > 1000 %} {{ (cache_hits / 1000)|round(2) }}K {% else %} {{ cache_hits }} {% endif %}
{% trans %}Cache Hits{% endtrans %}
{% set cache_misses = server_status.metrics['packetcache-miss'] ?? 0 %} {% if cache_misses > 1000000 %} {{ (cache_misses / 1000000)|round(2) }}M {% elseif cache_misses > 1000 %} {{ (cache_misses / 1000)|round(2) }}K {% else %} {{ cache_misses }} {% endif %}
{% trans %}Cache Misses{% endtrans %}
{% set first_tab = true %} {% if server_status.metric_categories is defined %} {% for category_key, category in server_status.metric_categories %} {% if category.metrics|length > 0 %}
{% for metric_name, metric_value in category.metrics %}
{{ metric_name }} {% if server_status.metric_info is defined and server_status.metric_info[metric_name] is defined %} {% endif %}

{% if metric_name == 'uptime' and server_status.formatted_uptime is defined %} {{ server_status.formatted_uptime }} {% else %} {% if metric_value is not iterable %} {% if metric_value > 1000000 %} {{ (metric_value / 1000000)|round(2) }}M {% elseif metric_value > 1000 %} {{ (metric_value / 1000)|round(2) }}K {% else %} {{ metric_value }} {% endif %} {% else %} [Array] {% endif %} {% endif %} {% if 'latency' in metric_name %} µs {% elseif metric_name ends with 'msec' or metric_name ends with '_msec' %} ms {% elseif metric_name ends with 'bytes' or metric_name ends with '_bytes' %} {% trans %}Bytes{% endtrans %} {% endif %}

{% endfor %}
{% for metric_name, metric_value in category.metrics %} {% endfor %}
{% trans %}Metric{% endtrans %} {% trans %}Value{% endtrans %} {% trans %}Description{% endtrans %}
{{ metric_name }} {% if metric_name == 'uptime' and server_status.formatted_uptime is defined %} {{ server_status.formatted_uptime }} {% else %} {% if metric_value is not iterable %} {% if metric_value > 1000000 %} {{ (metric_value / 1000000)|round(2) }}M {% elseif metric_value > 1000 %} {{ (metric_value / 1000)|round(2) }}K {% else %} {{ metric_value }} {% endif %} {% else %} [Array] {% endif %} {% endif %} {% if 'latency' in metric_name %} µs {% elseif metric_name ends with 'msec' or metric_name ends with '_msec' %} ms {% elseif metric_name ends with 'bytes' or metric_name ends with '_bytes' %} {% trans %}Bytes{% endtrans %} {% endif %} {% if server_status.metric_info is defined and server_status.metric_info[metric_name] is defined %} {{ server_status.metric_info[metric_name].description }} {% else %} - {% endif %}
{% set first_tab = false %} {% endif %} {% endfor %} {% else %}
{% trans %}No detailed metrics available.{% endtrans %}
{% endif %}
{% endif %} {% endif %}