Skip to content

Commit

Permalink
diagnostics: added api to get sys info data (#11589)
Browse files Browse the repository at this point in the history
  • Loading branch information
dvovk committed Aug 13, 2024
1 parent aa6c7e6 commit a7bf5fe
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions diagnostics/sysinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
package diagnostics

import (
"encoding/json"
"net/http"

diaglib "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon-lib/sysutils"
)

func SetupSysInfoAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClient) {
Expand All @@ -32,8 +34,41 @@ func SetupSysInfoAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClien
w.Header().Set("Content-Type", "application/json")
writeHardwareInfo(w, diag)
})

metricsMux.HandleFunc("/cpu-usage", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
writeCPUUsage(w)
})

metricsMux.HandleFunc("/processes-info", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
writeProcessesInfo(w)
})

metricsMux.HandleFunc("/memory-info", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
writeMemoryInfo(w)
})
}

func writeHardwareInfo(w http.ResponseWriter, diag *diaglib.DiagnosticClient) {
diag.HardwareInfoJson(w)
}

func writeCPUUsage(w http.ResponseWriter) {
cpuusage := sysutils.CPUUsage()
json.NewEncoder(w).Encode(cpuusage)
}

func writeProcessesInfo(w http.ResponseWriter) {
processes := sysutils.GetProcessesInfo()
json.NewEncoder(w).Encode(processes)
}

func writeMemoryInfo(w http.ResponseWriter) {
totalMemory := sysutils.TotalMemoryUsage()
json.NewEncoder(w).Encode(totalMemory)
}

0 comments on commit a7bf5fe

Please sign in to comment.