Files
haproxy-dashboard/templates/statistics.html
Mateusz Gruszczyński e86b71cf4c redactor
2025-11-01 22:06:59 +01:00

92 lines
3.5 KiB
HTML

{% extends "base.html" %}
{% set active_page = "" %}
{% block title %}HAProxy • Statistics{% endblock %}
{% block breadcrumb %}<nav aria-label="breadcrumb" class="mb-3"><ol class="breadcrumb mb-0"><li class="breadcrumb-item"><a href="{{ url_for('main.index') }}"><i class="bi bi-house"></i></a></li><li class="breadcrumb-item active" aria-current="page">Statystyki</li></ol></nav>{% endblock %}
{% block content %}
<div class="vstack gap-3">
{% if stats %}
<div class="row g-3">
<div class="col-md-3">
<div class="card text-white bg-info">
<div class="card-body">
<h6 class="card-title">Frontends</h6>
<div class="fs-3 fw-bold">{{ stats|length }}</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-success">
<div class="card-body">
<h6 class="card-title">Connections</h6>
<div class="fs-3 fw-bold">{{ stats|map(attribute='conn_tot')|sum }}</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-warning">
<div class="card-body">
<h6 class="card-title">Errirs 4xx</h6>
<div class="fs-3 fw-bold">{{ stats|map(attribute='4xx_errors')|sum }}</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-danger">
<div class="card-body">
<h6 class="card-title">Errors 5xx</h6>
<div class="fs-3 fw-bold">{{ stats|map(attribute='5xx_errors')|sum }}</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead>
<tr>
<th><i class="fas fa-code"></i> Frontend</th>
<th><i class="fas fa-server"></i> Server</th>
<th class="text-center">4xx</th>
<th class="text-center">5xx</th>
<th class="text-end">Bytes In (MB)</th>
<th class="text-end">Bytes Out (MB)</th>
<th class="text-center">Connections</th>
</tr>
</thead>
<tbody>
{% for stat in stats %}
<tr>
<td><span class="badge bg-info">{{ stat.frontend_name }}</span></td>
<td><span class="badge bg-secondary">{{ stat.server_name }}</span></td>
<td class="text-center">
{% if stat['4xx_errors'] > 0 %}
<span class="badge bg-warning">{{ stat['4xx_errors'] }}</span>
{% else %}
<span class="badge bg-success">{{ stat['4xx_errors'] }}</span>
{% endif %}
</td>
<td class="text-center">
{% if stat['5xx_errors'] > 0 %}
<span class="badge bg-danger">{{ stat['5xx_errors'] }}</span>
{% else %}
<span class="badge bg-success">{{ stat['5xx_errors'] }}</span>
{% endif %}
</td>
<td class="text-end">{{ "%.2f"|format(stat.bytes_in_mb) }}</td>
<td class="text-end">{{ "%.2f"|format(stat.bytes_out_mb) }}</td>
<td class="text-center"><strong>{{ stat.conn_tot }}</strong></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% else %}
<div class="alert alert-info"><i class="bi bi-info-circle me-1"></i>No stats.</div>
{% endif %}
</div>
{% endblock %}