diff --git a/internal/audio/metrics.go b/internal/audio/metrics.go index 7a09ed9..1282e14 100644 --- a/internal/audio/metrics.go +++ b/internal/audio/metrics.go @@ -229,14 +229,14 @@ var ( lastMetricsUpdate time.Time // Counter value tracking (since prometheus counters don't have Get() method) - audioFramesReceivedValue int64 - audioFramesDroppedValue int64 - audioBytesProcessedValue int64 - audioConnectionDropsValue int64 - micFramesSentValue int64 - micFramesDroppedValue int64 - micBytesProcessedValue int64 - micConnectionDropsValue int64 + audioFramesReceivedValue int64 + audioFramesDroppedValue int64 + audioBytesProcessedValue int64 + audioConnectionDropsValue int64 + micFramesSentValue int64 + micFramesDroppedValue int64 + micBytesProcessedValue int64 + micConnectionDropsValue int64 ) // UpdateAudioMetrics updates Prometheus metrics with current audio data @@ -407,4 +407,4 @@ func StartMetricsUpdater() { UpdateMicrophoneConfigMetrics(micConfig) } }() -} \ No newline at end of file +} diff --git a/internal/audio/process_monitor.go b/internal/audio/process_monitor.go index 1893f87..9cad7e9 100644 --- a/internal/audio/process_monitor.go +++ b/internal/audio/process_monitor.go @@ -26,12 +26,12 @@ type ProcessMetrics struct { // ProcessMonitor monitors CPU and memory usage of processes type ProcessMonitor struct { - logger zerolog.Logger - mutex sync.RWMutex - monitoredPIDs map[int]*processState - running bool - stopChan chan struct{} - metricsChan chan ProcessMetrics + logger zerolog.Logger + mutex sync.RWMutex + monitoredPIDs map[int]*processState + running bool + stopChan chan struct{} + metricsChan chan ProcessMetrics updateInterval time.Duration } @@ -201,11 +201,11 @@ func (pm *ProcessMonitor) collectMetrics(pid int, state *processState) (ProcessM if !state.lastSample.IsZero() { timeDelta := now.Sub(state.lastSample).Seconds() cpuDelta := float64(totalCPUTime - state.lastCPUTime) - + // Convert from clock ticks to seconds (assuming 100 Hz) clockTicks := 100.0 cpuSeconds := cpuDelta / clockTicks - + if timeDelta > 0 { metric.CPUPercent = (cpuSeconds / timeDelta) * 100.0 } @@ -260,4 +260,4 @@ func GetProcessMonitor() *ProcessMonitor { globalProcessMonitor.Start() }) return globalProcessMonitor -} \ No newline at end of file +} diff --git a/prometheus.go b/prometheus.go index 48a3fa3..16cbb24 100644 --- a/prometheus.go +++ b/prometheus.go @@ -11,7 +11,7 @@ func initPrometheus() { // A Prometheus metrics endpoint. version.Version = builtAppVersion prometheus.MustRegister(versioncollector.NewCollector("jetkvm")) - + // Start audio metrics collection audio.StartMetricsUpdater() }