mirror of https://github.com/shirou/gopsutil
Merge pull request #58 from influxdb/docker-non-linux
Allow gopsutil docker to build on non-linux boxes by stubbing out non…pull/59/head
commit
a365e17869
@ -0,0 +1,36 @@
|
|||||||
|
package docker
|
||||||
|
|
||||||
|
import "errors"
|
||||||
|
|
||||||
|
var ErrNotAvailable = errors.New("docker not available")
|
||||||
|
|
||||||
|
type CgroupMemStat struct {
|
||||||
|
ContainerID string `json:"container_id"`
|
||||||
|
Cache uint64 `json:"cache"`
|
||||||
|
RSS uint64 `json:"rss"`
|
||||||
|
RSSHuge uint64 `json:"rss_huge"`
|
||||||
|
MappedFile uint64 `json:"mapped_file"`
|
||||||
|
Pgpgin uint64 `json:"pgpgin"`
|
||||||
|
Pgpgout uint64 `json:"pgpgout"`
|
||||||
|
Pgfault uint64 `json:"pgfault"`
|
||||||
|
Pgmajfault uint64 `json:"pgmajfault"`
|
||||||
|
InactiveAnon uint64 `json:"inactive_anon"`
|
||||||
|
ActiveAnon uint64 `json:"active_anon"`
|
||||||
|
InactiveFile uint64 `json:"inactive_file"`
|
||||||
|
ActiveFile uint64 `json:"active_file"`
|
||||||
|
Unevictable uint64 `json:"unevictable"`
|
||||||
|
HierarchicalMemoryLimit uint64 `json:"hierarchical_memory_limit"`
|
||||||
|
TotalCache uint64 `json:"total_cache"`
|
||||||
|
TotalRSS uint64 `json:"total_rss"`
|
||||||
|
TotalRSSHuge uint64 `json:"total_rss_huge"`
|
||||||
|
TotalMappedFile uint64 `json:"total_mapped_file"`
|
||||||
|
TotalPgpgIn uint64 `json:"total_pgpgin"`
|
||||||
|
TotalPgpgOut uint64 `json:"total_pgpgout"`
|
||||||
|
TotalPgFault uint64 `json:"total_pgfault"`
|
||||||
|
TotalPgMajFault uint64 `json:"total_pgmajfault"`
|
||||||
|
TotalInactiveAnon uint64 `json:"total_inactive_anon"`
|
||||||
|
TotalActiveAnon uint64 `json:"total_active_anon"`
|
||||||
|
TotalInactiveFile uint64 `json:"total_inactive_file"`
|
||||||
|
TotalActiveFile uint64 `json:"total_active_file"`
|
||||||
|
TotalUnevictable uint64 `json:"total_unevictable"`
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
// +build !linux
|
||||||
|
|
||||||
|
package docker
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/shirou/gopsutil/common"
|
||||||
|
"github.com/shirou/gopsutil/cpu"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetDockerIDList returnes a list of DockerID.
|
||||||
|
// This requires certain permission.
|
||||||
|
func GetDockerIDList() ([]string, error) {
|
||||||
|
return nil, common.NotImplementedError
|
||||||
|
}
|
||||||
|
|
||||||
|
// CgroupCPU returnes specified cgroup id CPU status.
|
||||||
|
// containerid is same as docker id if you use docker.
|
||||||
|
// If you use container via systemd.slice, you could use
|
||||||
|
// containerid = docker-<container id>.scope and base=/sys/fs/cgroup/cpuacct/system.slice/
|
||||||
|
func CgroupCPU(containerid string, base string) (*cpu.CPUTimesStat, error) {
|
||||||
|
return nil, common.NotImplementedError
|
||||||
|
}
|
||||||
|
|
||||||
|
func CgroupCPUDocker(containerid string) (*cpu.CPUTimesStat, error) {
|
||||||
|
return CgroupCPU(containerid, "/sys/fs/cgroup/cpuacct/docker")
|
||||||
|
}
|
||||||
|
|
||||||
|
func CgroupMem(containerid string, base string) (*CgroupMemStat, error) {
|
||||||
|
return nil, common.NotImplementedError
|
||||||
|
}
|
||||||
|
|
||||||
|
func CgroupMemDocker(containerid string) (*CgroupMemStat, error) {
|
||||||
|
return CgroupMem(containerid, "/sys/fs/cgroup/memory/docker")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m CgroupMemStat) String() string {
|
||||||
|
s, _ := json.Marshal(m)
|
||||||
|
return string(s)
|
||||||
|
}
|
Loading…
Reference in New Issue