{% extends "base.html" %} {% set active = "diagnostics" %} {% block title %}Диагностика - WB MCP{% endblock %} {% block content %}

Диагностика

Автопроверка каждые {{ interval_min }} мин: ping всех хостов WB API + лёгкие реальные запросы по категориям + срок действия токенов.

{% if degradations %}
⛔ Деградации инструментов (возможно изменение WB API)

Эти инструменты раньше работали, а теперь стабильно падают:

{% for d in degradations %} {% endfor %}
ИнструментПоследний успехОшибок подрядПоследняя ошибка
{{ d.tool }} {{ d.last_success }} {{ d.consecutive_errors }} {{ d.last_error }}
{% endif %} {% for shop in shops %}
{{ shop.name }} ({{ shop.id }}) {% if shop.last_check %} {% if shop.last_check.healthy %} ✅ Здоров {% else %} ⛔ Есть проблемы {% endif %} {% endif %}
{# ── Токен ── #} {% if shop.token.valid_format %}

Токен: {% if shop.token.expired %} ИСТЁК {{ shop.token.expires_at }} {% elif shop.token.expiring_soon %} истекает {{ shop.token.expires_at }} (через {{ shop.token.days_left }} дн.) {% else %} до {{ shop.token.expires_at }} ({{ shop.token.days_left }} дн.) {% endif %} {% if shop.token.read_only %} · только чтение{% endif %} {% if shop.token.sandbox %} · ПЕСОЧНИЦА{% endif %}
Доступ: {% for s in shop.token.scopes %}{{ s }} {% endfor %}

{% else %}

Токен: {{ shop.token.error }}

{% endif %} {# ── Последняя проверка ── #} {% if shop.last_check %}
Проверка {{ shop.last_check.checked_at }}: ping {{ shop.last_check.ping | selectattr('ok') | list | length }}/{{ shop.last_check.ping | length }}, пробы {{ shop.last_check.probes | selectattr('ok') | list | length }}/{{ shop.last_check.probes | length }} {% if shop.last_check.warnings %} {% for w in shop.last_check.warnings %}

{{ w }}

{% endfor %} {% endif %}
{% for p in shop.last_check.ping %} {% endfor %}
Хост (ping)ms
{{ p.category }} {{ p.latency_ms }} {% if p.ok %}OK{% else %}{{ p.status_code or p.error }}{% endif %}
{% for p in shop.last_check.probes %} {% endfor %}
Категория (проба)ms
{{ p.category }} {{ p.latency_ms }} {% if p.ok %}OK{% else %}{{ p.status_code or 'ERR' }}{% if p.hint %} — {{ p.hint }}{% endif %}{% endif %}
{% else %}

Проверок ещё не было — нажмите «Проверить сейчас».

{% endif %}
{% endfor %} {% if history %}
История проверок
{% for h in history %} {% endfor %}
ВремяМагазинСтатусPing-ошибкиПроба-ошибкиПредупреждения
{{ h.at }} {{ h.shop }} {% if h.healthy %}OK{% else %}ПРОБЛЕМЫ{% endif %} {{ h.ping_failures }} {{ h.probe_failures }} {{ h.warnings | join('; ') }}
{% endif %} {% endblock %} {% block scripts %} {% endblock %}