19 lines
1,017 B
JavaScript
19 lines
1,017 B
JavaScript
// stats page — pipeline throughput + per-source/per-status breakdowns
|
|
// depends on: app.js
|
|
|
|
async function loadStatsPage() {
|
|
const data = await api("/admin/api/stats");
|
|
|
|
document.getElementById("sourceTable").innerHTML = data.bySource
|
|
.map(r => `<tr><td>${escapeHtml(r.source)}</td><td style="text-align:right; padding-left:24px">${r.n.toLocaleString()}</td></tr>`).join("");
|
|
|
|
document.getElementById("statusTable").innerHTML = data.byStatus
|
|
.map(r => `<tr><td>${badgeHtml(r.status === "null" ? null : r.status)}</td><td style="text-align:right; padding-left:24px">${r.n.toLocaleString()}</td></tr>`).join("");
|
|
|
|
document.getElementById("rate-ingested").textContent = (data.ingestedPerHour || 0).toLocaleString();
|
|
document.getElementById("rate-content").textContent = (data.contentPerHour || 0).toLocaleString();
|
|
document.getElementById("rate-embeddings").textContent = (data.embeddingsPerHour || 0).toLocaleString();
|
|
}
|
|
|
|
|
|
document.addEventListener("DOMContentLoaded", loadStatsPage);
|