<%- include('partials/sidebar', { activePage: activePage || 'monitoring', company }) %>
<%= t('admin.mon.title','Monitoring Sistem') %>
<%= (typeof session !== 'undefined' && session && session.isCashier) ? t('admin.role.cashier', 'Kasir') : t('admin.role.admin', 'Admin') %>
<%= t('admin.monitoring.system_health', 'Status Kesehatan Sistem') %>
<%= healthStatus.status.toUpperCase() %>

<%= t('admin.mon.updated','Update terakhir:') %> <%= new Date(healthStatus.timestamp).toLocaleString('id-ID') %>

<% if (healthStatus.issues.length > 0 || healthStatus.warnings.length > 0) { %>
<% if (healthStatus.issues.length > 0) { %>
<%= t('admin.mon.issues','Masalah') %> (<%= healthStatus.issues.length %>)
<% healthStatus.issues.forEach(issue => { if (issue) { %>
<%= issue %>
<% } }) %>
<% } %> <% if (healthStatus.warnings.length > 0) { %>
<%= t('admin.mon.warnings','Peringatan') %> (<%= healthStatus.warnings.length %>)
<% healthStatus.warnings.forEach(warning => { if (warning) { %>
<%= warning %>
<% } }) %>
<% } %>
<% } %>
<%= t('admin.mon.metrics','Metrik Sistem') %>

CPU Usage

<%= healthStatus.metrics.system.cpu.usage %>%

<%= healthStatus.metrics.system.cpu.cores %> cores • <%= healthStatus.metrics.system.cpu.model %>

Memory Usage

<%= healthStatus.metrics.system.memory.percentage %>%

<%= healthStatus.metrics.system.memory.used %> / <%= healthStatus.metrics.system.memory.total %>

Load Average (1 min)

<%= healthStatus.metrics.system.loadAverage['1min'] %>

5m: <%= healthStatus.metrics.system.loadAverage['5min'] %> • 15m: <%= healthStatus.metrics.system.loadAverage['15min'] %>

Disk Usage

<%= healthStatus.metrics.disk.percentage %>

Used: <%= healthStatus.metrics.disk.used %> / <%= healthStatus.metrics.disk.total %>
CPU Usage History
Memory Usage History
Database Info
Size <%= healthStatus.metrics.database.size %>
Tables <%= healthStatus.metrics.database.totalTables %>
Path <%= healthStatus.metrics.database.path %>
<% if (healthStatus.metrics.database.tables && typeof healthStatus.metrics.database.tables === 'object' && healthStatus.metrics.database.tables !== null) { Object.keys(healthStatus.metrics.database.tables).forEach(tableName => { %> <% }) } else { %> <% } %>
Table Records
<%= tableName %> <%= healthStatus.metrics.database.tables[tableName] %>
No table data available
<%= t('admin.mon.perf','Ringkasan Performa (10 Sample Terakhir)') %>

<%= t('admin.mon.avg','Rata-rata') %>

CPU <%= performanceSummary.averages.cpu %>%
Memory <%= performanceSummary.averages.memory %>%
Load (1m) <%= performanceSummary.averages.load1 %>

Maximum

CPU <%= performanceSummary.maximums.cpu %>%
Memory <%= performanceSummary.maximums.memory %>%
Load (1m) <%= performanceSummary.maximums.load1 %>

<%= t('pwa.field.period','Periode') %>

Start <%= new Date(performanceSummary.period.start).toLocaleString('id-ID') %>
End <%= new Date(performanceSummary.period.end).toLocaleString('id-ID') %>
Samples <%= performanceSummary.period.samples %>
Diagnosa Konektivitas

Dependensi Eksternal

GenieACS <%= dependencies.genieacs.status.toUpperCase() %>
WhatsApp Bot
<%= dependencies.whatsapp.message %>
<%= dependencies.whatsapp.status.toUpperCase() %>
Telegram Bot
<%= dependencies.telegram ? dependencies.telegram.message : '' %>
<%= dependencies.telegram ? dependencies.telegram.status.toUpperCase() : 'UNKNOWN' %>

Router MikroTik

<% dependencies.mikrotik.forEach(r => { %> <% }) %>
<%= r.name %> (<%= r.host %>) <%= r.status.toUpperCase() %>
Log Error Terbaru
<% if (recentErrors.length === 0) { %>

Tidak ada log error terbaru

<% } else { %> <% recentErrors.forEach(err => { %>
<%= err %>
<% }) %> <% } %>