mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-09 03:09:12 -06:00
You can run these yourself using the -perf flag, e.g. > noms serve & > go test -v -perf http://localhost:8000 ./samples/go/csv/csv-import > noms ds http://localhost:8000 Though you'll need to go-get github.com/attic-labs/testdata. Note that all of this only records test results, it doesn't have any concept of failing perf (unless test assertsions themselves fail). It will be the job of some other Noms client (work in progress) to do that. I will be setting this up to run continuously momentarily.
79 lines
1.4 KiB
Go
79 lines
1.4 KiB
Go
// +build linux
|
|
|
|
package load
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/shirou/gopsutil/internal/common"
|
|
)
|
|
|
|
func Avg() (*AvgStat, error) {
|
|
filename := common.HostProc("loadavg")
|
|
line, err := ioutil.ReadFile(filename)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
values := strings.Fields(string(line))
|
|
|
|
load1, err := strconv.ParseFloat(values[0], 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
load5, err := strconv.ParseFloat(values[1], 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
load15, err := strconv.ParseFloat(values[2], 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ret := &AvgStat{
|
|
Load1: load1,
|
|
Load5: load5,
|
|
Load15: load15,
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
// Misc returnes miscellaneous host-wide statistics.
|
|
// Note: the name should be changed near future.
|
|
func Misc() (*MiscStat, error) {
|
|
filename := common.HostProc("stat")
|
|
out, err := ioutil.ReadFile(filename)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ret := &MiscStat{}
|
|
lines := strings.Split(string(out), "\n")
|
|
for _, line := range lines {
|
|
fields := strings.Fields(line)
|
|
if len(fields) != 2 {
|
|
continue
|
|
}
|
|
v, err := strconv.ParseInt(fields[1], 10, 64)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
switch fields[0] {
|
|
case "procs_running":
|
|
ret.ProcsRunning = int(v)
|
|
case "procs_blocked":
|
|
ret.ProcsBlocked = int(v)
|
|
case "ctxt":
|
|
ret.Ctxt = int(v)
|
|
default:
|
|
continue
|
|
}
|
|
|
|
}
|
|
|
|
return ret, nil
|
|
}
|