first commit
This commit is contained in:
38
health/health.go
Normal file
38
health/health.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package health
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
type HealthInfo struct {
|
||||
Hostname string
|
||||
OS string
|
||||
Arch string
|
||||
CPU string
|
||||
Memory string
|
||||
}
|
||||
|
||||
func Handle(w http.ResponseWriter, r *http.Request) {
|
||||
json.NewEncoder(w).Encode(healthCheck())
|
||||
}
|
||||
|
||||
func healthCheck() HealthInfo {
|
||||
hostname, _ := os.Hostname()
|
||||
|
||||
var mem runtime.MemStats
|
||||
runtime.ReadMemStats(&mem)
|
||||
|
||||
return HealthInfo{Hostname: hostname,
|
||||
OS: runtime.GOOS,
|
||||
Arch: runtime.GOARCH,
|
||||
CPU: string(runtime.NumCPU()),
|
||||
Memory: string(mem.Alloc/1024/1024) + " MB"}
|
||||
}
|
||||
|
||||
func (h HealthInfo) String() string {
|
||||
return fmt.Sprintf("HealthInfo{Hostname=%s, OS=%s, Arch=%s. CPU=%s, Memory=%s}", h.Hostname, h.OS, h.Arch, h.CPU, h.Memory)
|
||||
}
|
||||
Reference in New Issue
Block a user