Add status page enhancements with new metrics and footer
- Add GC statistics (run count, total/last pause, heap usage) - Add BGP peer count tracking from RIS Live OPEN/NOTIFICATION messages - Add route churn rate metric (announcements + withdrawals per second) - Add announcement and withdrawal counters - Add footer with attribution, license, and git revision - Embed git revision at build time via ldflags - Update HTML template to display all new metrics
This commit is contained in:
@@ -72,6 +72,27 @@
|
||||
border-radius: 4px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 40px;
|
||||
padding: 20px;
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
|
||||
text-align: center;
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
}
|
||||
.footer a {
|
||||
color: #0066cc;
|
||||
text-decoration: none;
|
||||
}
|
||||
.footer a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.footer .separator {
|
||||
margin: 0 10px;
|
||||
color: #ccc;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -112,6 +133,10 @@
|
||||
<span class="metric-label">Reconnections</span>
|
||||
<span class="metric-value" id="reconnect_count">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">BGP Peers</span>
|
||||
<span class="metric-value" id="bgp_peer_count">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Total Messages</span>
|
||||
<span class="metric-value" id="total_messages">-</span>
|
||||
@@ -120,6 +145,18 @@
|
||||
<span class="metric-label">Messages/sec</span>
|
||||
<span class="metric-value" id="messages_per_sec">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Announcements</span>
|
||||
<span class="metric-value" id="announcements">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Withdrawals</span>
|
||||
<span class="metric-value" id="withdrawals">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Route Churn/sec</span>
|
||||
<span class="metric-value" id="route_churn_per_sec">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Total Data</span>
|
||||
<span class="metric-value" id="total_wire_bytes">-</span>
|
||||
@@ -129,6 +166,30 @@
|
||||
<span class="metric-value" id="wire_mbits_per_sec">-</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="status-card">
|
||||
<h2>GC Statistics</h2>
|
||||
<div class="metric">
|
||||
<span class="metric-label">GC Runs</span>
|
||||
<span class="metric-value" id="gc_num">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Total Pause</span>
|
||||
<span class="metric-value" id="gc_total_pause">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Last Pause</span>
|
||||
<span class="metric-value" id="gc_last_pause">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Heap Alloc</span>
|
||||
<span class="metric-value" id="gc_heap_alloc">-</span>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span class="metric-label">Heap Sys</span>
|
||||
<span class="metric-value" id="gc_heap_sys">-</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="status-card">
|
||||
<h2>Database Statistics</h2>
|
||||
@@ -344,10 +405,19 @@
|
||||
document.getElementById('memory_usage').textContent = '-';
|
||||
document.getElementById('connection_duration').textContent = '-';
|
||||
document.getElementById('reconnect_count').textContent = '-';
|
||||
document.getElementById('bgp_peer_count').textContent = '-';
|
||||
document.getElementById('total_messages').textContent = '-';
|
||||
document.getElementById('messages_per_sec').textContent = '-';
|
||||
document.getElementById('announcements').textContent = '-';
|
||||
document.getElementById('withdrawals').textContent = '-';
|
||||
document.getElementById('route_churn_per_sec').textContent = '-';
|
||||
document.getElementById('total_wire_bytes').textContent = '-';
|
||||
document.getElementById('wire_mbits_per_sec').textContent = '-';
|
||||
document.getElementById('gc_num').textContent = '-';
|
||||
document.getElementById('gc_total_pause').textContent = '-';
|
||||
document.getElementById('gc_last_pause').textContent = '-';
|
||||
document.getElementById('gc_heap_alloc').textContent = '-';
|
||||
document.getElementById('gc_heap_sys').textContent = '-';
|
||||
document.getElementById('asns').textContent = '-';
|
||||
document.getElementById('prefixes').textContent = '-';
|
||||
document.getElementById('ipv4_prefixes').textContent = '-';
|
||||
@@ -421,6 +491,23 @@
|
||||
document.getElementById('ipv4_updates_per_sec').textContent = data.ipv4_updates_per_sec.toFixed(1);
|
||||
document.getElementById('ipv6_updates_per_sec').textContent = data.ipv6_updates_per_sec.toFixed(1);
|
||||
|
||||
// Update stream stats
|
||||
if (data.stream) {
|
||||
document.getElementById('bgp_peer_count').textContent = formatNumber(data.stream.bgp_peer_count);
|
||||
document.getElementById('announcements').textContent = formatNumber(data.stream.announcements);
|
||||
document.getElementById('withdrawals').textContent = formatNumber(data.stream.withdrawals);
|
||||
document.getElementById('route_churn_per_sec').textContent = data.stream.route_churn_per_sec.toFixed(1);
|
||||
}
|
||||
|
||||
// Update GC stats
|
||||
if (data.gc) {
|
||||
document.getElementById('gc_num').textContent = formatNumber(data.gc.num_gc);
|
||||
document.getElementById('gc_total_pause').textContent = data.gc.total_pause_ms + ' ms';
|
||||
document.getElementById('gc_last_pause').textContent = data.gc.last_pause_ms.toFixed(3) + ' ms';
|
||||
document.getElementById('gc_heap_alloc').textContent = formatBytes(data.gc.heap_alloc_bytes);
|
||||
document.getElementById('gc_heap_sys').textContent = formatBytes(data.gc.heap_sys_bytes);
|
||||
}
|
||||
|
||||
// Update WHOIS stats
|
||||
if (data.whois_stats) {
|
||||
document.getElementById('whois_fresh').textContent = formatNumber(data.whois_stats.fresh_asns);
|
||||
@@ -455,5 +542,13 @@
|
||||
updateStatus();
|
||||
setInterval(updateStatus, 2000);
|
||||
</script>
|
||||
|
||||
<footer class="footer">
|
||||
<span><a href="{{appRepoURL}}">{{appName}}</a> by <a href="{{appAuthorURL}}">{{appAuthor}}</a></span>
|
||||
<span class="separator">|</span>
|
||||
<span>{{appLicense}}</span>
|
||||
<span class="separator">|</span>
|
||||
<span><a href="{{appGitCommitURL}}">{{appGitRevision}}</a></span>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user