fix: added db size to metrics and removed console logs

This commit is contained in:
pommee
2025-02-09 13:10:04 +01:00
parent b94d541686
commit 78ad85a79d
14 changed files with 89 additions and 33 deletions

View File

@@ -115,6 +115,11 @@ func (apiServer *API) handleServer(c *gin.Context) {
log.Error("%s", err)
}
dbSize, err := getDBSize()
if err != nil {
log.Error("%s", err)
}
c.JSON(http.StatusOK, gin.H{
"portDNS": apiServer.Config.Port,
"portWebsite": apiServer.DnsServer.Config.Port,
@@ -123,6 +128,7 @@ func (apiServer *API) handleServer(c *gin.Context) {
"usedMemPercentage": float64(vMem.Free) / 1024 / 1024 / 1024,
"cpuUsage": cpuUsage[0],
"cpuTemp": temp,
"dbSize": dbSize,
})
}
@@ -777,6 +783,18 @@ func getCPUTemperature() (float64, error) {
return temp / 1000, nil
}
func getDBSize() (float64, error) {
file, err := os.Stat("database.db")
if err != nil {
return 0, err
}
sizeInBytes := file.Size()
sizeInMB := float64(sizeInBytes) / (1024 * 1024)
return sizeInMB, nil
}
func getServerIP() (string, error) {
addrs, err := net.InterfaceAddrs()
if err != nil {

View File

@@ -25,18 +25,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -28,18 +28,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -29,18 +29,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -24,18 +24,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -28,18 +28,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -25,18 +25,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">

View File

@@ -104,6 +104,7 @@ body {
margin: 4px 0;
border-radius: 8px;
background-color: var(--metric-bg);
cursor: pointer;
}
.metric i {

View File

@@ -206,7 +206,6 @@ async function saveCustom() {
async function removeList(list) {
response = await DeleteRequest("/lists?list=" + list);
console.log(response);
}
document.addEventListener("DOMContentLoaded", () => {

View File

@@ -28,9 +28,7 @@ function renderStatusAndResponseTime(data) {
}
function renderIP(data) {
console.log(data);
const ipList = data.join('\n');
console.log(ipList)
return `
<div class="ip-container">
<span class="ip" data-tooltip="${ipList}">${data[0]}</span>

View File

@@ -1,6 +1,7 @@
const cpuUsageElement = document.getElementById("cpu-usage");
const cpuTempElement = document.getElementById("cpu-temp");
const memoryUsageElement = document.getElementById("mem-usage");
const dbUsageElement = document.getElementById("db-usage");
const quoteElement = document.getElementsByClassName("top-section-text")[0];
const quotes = [
@@ -38,13 +39,17 @@ const quotes = [
async function getServerStatus() {
const serverStatus = await GetRequest("/server");
updateHeader(serverStatus);
if (window.location.pathname !== "/login.html") {
updateHeader(serverStatus);
}
}
function updateHeader(serverStatus) {
cpuUsageElement.innerText = "CPU: " + serverStatus.cpuUsage.toFixed(1) + "%";
cpuTempElement.innerText = "CPU temp: " + serverStatus.cpuTemp.toFixed(1) + "°";
memoryUsageElement.innerText = "Mem: " + serverStatus.usedMemPercentage.toFixed(1) + "%";
dbUsageElement.innerText = "Size: " + serverStatus.dbSize.toFixed(1) + "MB";
}
document.addEventListener("DOMContentLoaded", async function () {

View File

@@ -121,7 +121,6 @@ async function saveUpstream() {
async function removeUpstream(upstream) {
response = await DeleteRequest("/upstreams?upstream=" + upstream);
console.log(response);
}
document.addEventListener("DOMContentLoaded", () => {

View File

@@ -97,14 +97,22 @@ function DeleteRequest(url) {
});
}
document.querySelector('.nav-toggle').addEventListener('click', function() {
document.querySelector('.sidenav').classList.toggle('active');
});
try {
document.querySelector('.nav-toggle').addEventListener('click', function() {
document.querySelector('.sidenav').classList.toggle('active');
});
} catch(e) {
// ignored
}
document.getElementById("logout").addEventListener("click", async () => {
localStorage.clear();
window.location.href = "/login.html";
})
try {
document.getElementById("logout").addEventListener("click", async () => {
localStorage.clear();
window.location.href = "/login.html";
})
} catch(e) {
// ignored
}
function showNotification(headerMessage, type, ...message) {
const notification = document.createElement("div");

View File

@@ -25,18 +25,22 @@
</div>
<div class="system-metrics">
<div class="metric">
<div class="metric" title="Total system CPU usage">
<i class="fa-solid fa-microchip"></i>
<span id="cpu-usage"></span>
</div>
<div class="metric">
<div class="metric" title="CPU temperature">
<i class="fa-solid fa-temperature-half"></i>
<span id="cpu-temp"></span>
</div>
<div class="metric">
<div class="metric" title="Total memory usage">
<i class="fa-solid fa-memory"></i>
<span id="mem-usage"></span>
</div>
<div class="metric" title="Database Size">
<i class="fa-solid fa-database"></i>
<span id="db-usage"></span>
</div>
</div>
<nav class="nav-links">