Files
go-sdk/performancemetrics/cpu.go
2026-01-06 14:55:21 +01:00

27 lines
502 B
Go

package performancemetrics
import (
"os"
"syscall"
)
func getCpuTime() (float64, error) {
_, err := os.FindProcess(os.Getpid())
if err != nil {
return 0, err
}
// Use syscall to get CPU times
var ru syscall.Rusage
err = syscall.Getrusage(syscall.RUSAGE_SELF, &ru)
if err != nil {
return 0, err
}
// Total CPU time in seconds
userSec := float64(ru.Utime.Sec) + float64(ru.Utime.Usec)/1e6
sysSec := float64(ru.Stime.Sec) + float64(ru.Stime.Usec)/1e6
return userSec + sysSec, nil
}