{% extends "base.html" %} {% block title %}{{ conn.name }} - Databases{% endblock %} {% block content %} {% if alerts %}

🚨 Active Alerts

{% for alert in alerts %}
{{ alert.severity|upper }}: {{ alert.message }} ({{ alert.triggered_at.strftime('%Y-%m-%d %H:%M') }})
{% endfor %}
{% endif %} {% if snapshot %}
Status
{{ snapshot.status|upper }}
Latency
{{ snapshot.latency_ms or '-' }} ms
Connections
{% if snapshot.max_connections %} {% set pct = (snapshot.active_connections / snapshot.max_connections * 100)|round(0)|int %} {{ snapshot.active_connections }} / {{ snapshot.max_connections }} {% else %} {{ snapshot.active_connections or '-' }} {% endif %}
Database Size
{% if snapshot.database_size_bytes %} {{ (snapshot.database_size_bytes / 1073741824)|round(2) }} GB {% else %} - {% endif %}
{% if snapshot.status == 'success' %}

Performance Metrics

Version: {{ snapshot.version or '-' }}
{% if snapshot.metrics %}
Cache Hit Ratio: {{ snapshot.metrics.cache_hit_ratio|round(1) if snapshot.metrics.cache_hit_ratio else '-' }}%
{% if snapshot.metrics.deadlocks is defined %}
Deadlocks: {{ snapshot.metrics.deadlocks }}
{% endif %} {% if snapshot.metrics.slow_queries is defined %}
Slow Queries: {{ snapshot.metrics.slow_queries }}
{% endif %} {% endif %}
Last Collected: {{ snapshot.collected_at.strftime('%Y-%m-%d %H:%M:%S') }}
{% if snapshot.metrics and snapshot.metrics.long_running_queries %}

⏱️ Long Running Queries

{% for q in snapshot.metrics.long_running_queries %} {% endfor %}
PID User Duration Query
{{ q.pid }} {{ q.username or '-' }} {{ (q.duration_ms / 1000)|round(1) }}s {{ (q.query or '-')[:200] }}{% if q.query and q.query|length > 200 %}...{% endif %}
{% endif %} {% if snapshot.metrics and snapshot.metrics.blocking_queries %}

🔒 Blocking Queries

{% for b in snapshot.metrics.blocking_queries %} {% endfor %}
Blocking PID Blocking Query Blocked PID Blocked Query
{{ b.blocking_pid }} {{ (b.blocking_query or '-')[:150] }} {{ b.blocked_pid }} {{ (b.blocked_query or '-')[:150] }}
{% endif %} {% if snapshot.metrics and snapshot.metrics.top_cpu_queries %}

🔥 Top CPU Queries

{% for q in snapshot.metrics.top_cpu_queries %} {% endfor %}
Total CPU Executions Avg CPU Query
{{ (q.total_cpu_ms / 1000)|round(1) }}s {{ q.execution_count }} {{ (q.avg_cpu_ms or 0)|round(0)|int }}ms {{ (q.query or '-')[:200] }}{% if q.query and q.query|length > 200 %}...{% endif %}
{% endif %} {% endif %}{# end if snapshot.status == success #} {% if snapshot.error_message %}

Error

{{ snapshot.error_message }}
{% endif %} {% else %}

No metrics collected yet.

{% endif %} {% if audit %}

🔒 Security Audit Summary

View Full Audit
Last Audit: {{ audit.audited_at.strftime('%Y-%m-%d %H:%M') }}
Users: {{ audit.user_count }}
Issues Found: {{ audit.issue_count }} ({{ audit.critical_issues }} critical)
{% if audit.results and audit.results.issues %}

Issues

{% for issue in audit.results.issues[:5] %} {% endfor %}
{{ issue.severity|upper }} {{ issue.message }}
{% if audit.results.issues|length > 5 %}

View all {{ audit.results.issues|length }} issues →

{% endif %} {% endif %}
{% endif %}

Connection Test

{% endblock %}