{% extends 'layouts/authenticated.html.twig' %} {% block page_title %}{{ page_title }}{% endblock %} {% block content %}
{# Breadcrumb #} {# En-tête avec statut #}

{{ ip_address }}

{% if is_blocked %} Bloquée {% else %} Active {% endif %} {% if location %} {{ location.city|default('') }}{% if location.city and location.country %}, {% endif %}{{ location.country|default('Inconnu') }} {% if location.isp %} · {{ location.isp }}{% endif %} {% endif %}
{# Actions bloquer/débloquer #}
{% if is_blocked %}
{% else %} {% endif %}
{# Stats rapides #}
Total Requêtes
{{ total_requests }}
Erreurs
{{ error_count }}
Suspectes
{{ suspicious_count }}
{# Géolocalisation #} {% if location %}

Informations de géolocalisation

Pays
{{ location.country|default('Inconnu') }}
Ville
{{ location.city|default('Inconnu') }}
Région
{{ location.region|default('Inconnu') }}
Fuseau horaire
{{ location.timezone|default('Inconnu') }}
FAI
{{ location.isp|default('Inconnu') }}
Organisation
{{ location.org|default('Inconnu') }}
{% if location.latitude is defined and location.longitude is defined %}
Coordonnées
{{ location.latitude }}, {{ location.longitude }}
{% endif %}
{% endif %}
{# Patterns de navigation #}

Patterns de navigation (30 jours)

{% for pattern in patterns %} {% else %} {% endfor %}
Méthode Route Requêtes Erreurs Temps moy.
{{ pattern.method }} {{ pattern.routeName|default('N/A') }} {{ pattern.request_count }} {% if pattern.error_count > 0 %} {{ pattern.error_count }} {% else %} 0 {% endif %} {{ pattern.avg_response_time|number_format(0) }} ms
Aucun pattern trouvé.
{# Résumé #}

Résumé

Routes uniques visitées

{{ patterns|length }}

{% set total_errors_patterns = 0 %} {% for p in patterns %} {% set total_errors_patterns = total_errors_patterns + p.error_count %} {% endfor %}
Taux d'erreur

{{ total_requests > 0 ? ((error_count / total_requests * 100)|number_format(1)) : '0' }}%

{% if location and location.country_code is defined %}
Code pays

{{ location.country_code }}

{% endif %}
{# Historique des requêtes #}

Historique des requêtes

{% for request in pagination %} {% else %} {% endfor %}
Date Méthode URI Status Temps
{{ request.createdAt|date('d/m/Y H:i:s') }} {{ request.method }} {{ request.uri|length > 60 ? request.uri[:60] ~ '...' : request.uri }} {% set statusColor = request.statusCode < 300 ? 'green' : (request.statusCode < 400 ? 'blue' : (request.statusCode < 500 ? 'yellow' : 'red')) %} {{ request.statusCode }} {{ request.responseTime ? request.responseTime ~ ' ms' : '-' }}
Aucune requête enregistrée.
{# Pagination #} {% if pagination.getTotalItemCount > pagination.getItemNumberPerPage %}
{{ knp_pagination_render(pagination) }}
{% endif %}
{# Modal de blocage #} {% if not is_blocked %} {% endif %} {% endblock %}