fix dependabot v2 deletion.

pull/1174/head
shirou 3 years ago
parent 0969c9436b
commit d2e27c1712

@ -4,3 +4,7 @@ updates:
directory: /
schedule:
interval: daily
- package-ecosystem: github-actions
directory: /
schedule:
interval: daily

@ -20,4 +20,3 @@ jobs:
with:
args: --verbose
version: latest
working-directory: v3

148
Gopkg.lock generated

@ -1,148 +0,0 @@
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[projects]]
digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec"
name = "github.com/davecgh/go-spew"
packages = ["spew"]
pruneopts = "UT"
revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"
version = "v1.1.1"
[[projects]]
digest = "1:fa413ac44630f9ca77bf7bb629804106a50cd5af351f89ed1e23e08e6173c5d0"
name = "github.com/go-ole/go-ole"
packages = [
".",
"oleutil",
]
pruneopts = "UT"
revision = "8b1f7f90f6b1728609c9694f2cff140d34fd91f8"
version = "v1.2.6"
[[projects]]
digest = "1:465db2de82a3f7483baead1dc4eddd2510d6340729bbcc988e238e8cf3d0d18b"
name = "github.com/google/go-cmp"
packages = [
"cmp",
"cmp/cmpopts",
"cmp/internal/diff",
"cmp/internal/flags",
"cmp/internal/function",
"cmp/internal/value",
]
pruneopts = "UT"
revision = "d103655696d8ae43c4125ee61454dbf03d8e8324"
version = "v0.5.6"
[[projects]]
branch = "main"
digest = "1:dc1c9a9e26fc2b80713a51c26f8443314eed7d33e2e12df259d7f722df7fd355"
name = "github.com/lufia/plan9stats"
packages = ["."]
pruneopts = "UT"
revision = "39d0f177ccd07bdf5eb6f051ab9b09651f05d6f2"
[[projects]]
digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe"
name = "github.com/pmezard/go-difflib"
packages = ["difflib"]
pruneopts = "UT"
revision = "792786c7400a136282c1664665ae0a8db921c6c2"
version = "v1.0.0"
[[projects]]
branch = "main"
digest = "1:9ad2b62016ecf07e6c97a45a1bd6b66467a77be6ed88b618fb908f5cf312a304"
name = "github.com/power-devops/perfstat"
packages = ["."]
pruneopts = "UT"
revision = "5aafc221ea8c1ff54b0835cbd5f2386a8410be11"
[[projects]]
digest = "1:5c7b4a9fefe5b7b160d2cf0ec8457de81db92038c45c88d7d59493568308cc5d"
name = "github.com/stretchr/testify"
packages = [
"assert",
"require",
]
pruneopts = "UT"
revision = "acba37e5db06f0093b465a7d47822bf13644b66c"
version = "v1.7.0"
[[projects]]
digest = "1:dc2f804edbbcc4e7c5385791b8703da9b6bc6e22e698233f919c19da6286cf11"
name = "github.com/tklauser/go-sysconf"
packages = ["."]
pruneopts = "UT"
revision = "18f67506ef17458385cd85f6f7678623087ba043"
version = "v0.3.9"
[[projects]]
digest = "1:40a9f481f2c76a04fb1a0c083e317907875cd6405e96117f2aa81fd17aa28000"
name = "github.com/tklauser/numcpus"
packages = ["."]
pruneopts = "UT"
revision = "ce6ed4c574066004ab884122d989748388233cad"
version = "v0.3.0"
[[projects]]
digest = "1:50a80d9d302a50c9f5ae5fb4e44c82cf40f0fa184ac847bec897438f28da21ee"
name = "github.com/yusufpapurcu/wmi"
packages = ["."]
pruneopts = "UT"
revision = "253c5f0cb35e666c4c0fc42083824e7c89f0cc8d"
version = "v1.2.2"
[[projects]]
branch = "master"
digest = "1:6eed2fd291874d17d37ecb2bda20d141a475992f3deb80989657325620e01962"
name = "golang.org/x/sys"
packages = [
"internal/unsafeheader",
"unix",
"windows",
"windows/svc",
"windows/svc/mgr",
]
pruneopts = "UT"
revision = "dee7805ff2e13b1c4206de89b1c06e95ab66ae0d"
[[projects]]
branch = "master"
digest = "1:918a46e4a2fb83df33f668f5a6bd51b2996775d073fce1800d3ec01b0a5ddd2b"
name = "golang.org/x/xerrors"
packages = [
".",
"internal",
]
pruneopts = "UT"
revision = "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca"
[[projects]]
branch = "v3"
digest = "1:107a619d3c3bcca214b2b7db810a5dffcd74b5d0262813cb2986e063fae2722f"
name = "gopkg.in/yaml.v3"
packages = ["."]
pruneopts = "UT"
revision = "496545a6307b2a7d7a710fd516e5e16e8ab62dbc"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
input-imports = [
"github.com/google/go-cmp/cmp",
"github.com/google/go-cmp/cmp/cmpopts",
"github.com/lufia/plan9stats",
"github.com/power-devops/perfstat",
"github.com/stretchr/testify/assert",
"github.com/stretchr/testify/require",
"github.com/tklauser/go-sysconf",
"github.com/yusufpapurcu/wmi",
"golang.org/x/sys/unix",
"golang.org/x/sys/windows",
"golang.org/x/sys/windows/svc",
"golang.org/x/sys/windows/svc/mgr",
]
solver-name = "gps-cdcl"
solver-version = 1

@ -1,46 +0,0 @@
# Gopkg.toml example
#
# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
#
# [prune]
# non-go = false
# go-tests = true
# unused-packages = true
[[constraint]]
name = "github.com/yusufpapurcu/wmi"
version = "1.2.2"
[[constraint]]
name = "github.com/stretchr/testify"
version = "1.2.2"
[[constraint]]
name = "github.com/tklauser/go-sysconf"
version = "0.3.9"
[[constraint]]
branch = "master"
name = "golang.org/x/sys"
[prune]
go-tests = true
unused-packages = true

@ -0,0 +1,74 @@
// +build aix
package cpu
import (
"context"
"github.com/power-devops/perfstat"
)
func Times(percpu bool) ([]TimesStat, error) {
return TimesWithContext(context.Background(), percpu)
}
func TimesWithContext(ctx context.Context, percpu bool) ([]TimesStat, error) {
var ret []TimesStat
if percpu {
cpus, err := perfstat.CpuStat()
if err != nil {
return nil, err
}
for _, c := range cpus {
ct := &TimesStat{
CPU: c.Name,
Idle: float64(c.Idle),
User: float64(c.User),
System: float64(c.Sys),
Iowait: float64(c.Wait),
}
ret = append(ret, *ct)
}
} else {
c, err := perfstat.CpuUtilTotalStat()
if err != nil {
return nil, err
}
ct := &TimesStat{
CPU: "cpu-total",
Idle: float64(c.IdlePct),
User: float64(c.UserPct),
System: float64(c.KernPct),
Iowait: float64(c.WaitPct),
}
ret = append(ret, *ct)
}
return ret, nil
}
func Info() ([]InfoStat, error) {
return InfoWithContext(context.Background())
}
func InfoWithContext(ctx context.Context) ([]InfoStat, error) {
c, err := perfstat.CpuTotalStat()
if err != nil {
return nil, err
}
info := InfoStat{
CPU: 0,
Mhz: float64(c.ProcessorHz / 1000000),
Cores: int32(c.NCpusCfg),
}
result := []InfoStat{info};
return result, nil
}
func CountsWithContext(ctx context.Context, logical bool) (int, error) {
c, err := perfstat.CpuTotalStat()
if err != nil {
return 0, err
}
return c.NCpusCfg, nil
}

@ -1,4 +1,4 @@
// +build !darwin,!linux,!freebsd,!openbsd,!solaris,!windows,!dragonfly,!plan9
// +build !darwin,!linux,!freebsd,!openbsd,!solaris,!windows,!dragonfly,!plan9,!aix
package cpu

@ -240,7 +240,7 @@ func parseStatLine(line string) (*TimesStat, error) {
return nil, errors.New("stat does not contain cpu info")
}
if strings.HasPrefix(fields[0], "cpu") == false {
if !strings.HasPrefix(fields[0], "cpu") {
return nil, errors.New("not contain cpu")
}

@ -1,4 +1,3 @@
//go:build windows
// +build windows
package cpu
@ -8,8 +7,8 @@ import (
"fmt"
"unsafe"
"github.com/shirou/gopsutil/v3/internal/common"
"github.com/yusufpapurcu/wmi"
"github.com/shirou/gopsutil/v3/internal/common"
"golang.org/x/sys/windows"
)

@ -0,0 +1,86 @@
// +build aix
package disk
import (
"context"
"fmt"
"github.com/power-devops/perfstat"
"github.com/shirou/gopsutil/v3/internal/common"
)
var FSType map[int]string
func init() {
FSType = map[int]string{0: "jfs2", 1: "namefs", 2: "nfs", 3: "jfs", 5: "cdrom", 6: "proc",
16: "special-fs", 17: "cache-fs", 18: "nfs3", 19: "automount-fs", 20: "pool-fs", 32: "vxfs",
33: "veritas-fs", 34: "udfs", 35: "nfs4", 36: "nfs4-pseudo", 37: "smbfs", 38: "mcr-pseudofs",
39: "ahafs", 40: "sterm-nfs", 41: "asmfs" }
}
func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) {
f, err := perfstat.FileSystemStat()
if err != nil {
return nil, err
}
ret := make([]PartitionStat, len(f))
for _, fs := range f {
fstyp, exists := FSType[fs.FSType]
if ! exists {
fstyp = "unknown"
}
info := PartitionStat{
Device: fs.Device,
Mountpoint: fs.MountPoint,
Fstype: fstyp,
}
ret = append(ret,info)
}
return ret, err
}
func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) {
return nil, common.ErrNotImplementedError
}
func UsageWithContext(ctx context.Context, path string) (*UsageStat, error) {
f, err := perfstat.FileSystemStat()
if err != nil {
return nil, err
}
blocksize := uint64(512)
for _, fs := range f {
if path == fs.MountPoint {
fstyp, exists := FSType[fs.FSType]
if ! exists {
fstyp = "unknown"
}
info := UsageStat{
Path: path,
Fstype: fstyp,
Total: uint64(fs.TotalBlocks) * blocksize,
Free: uint64(fs.FreeBlocks) * blocksize,
Used: uint64(fs.TotalBlocks - fs.FreeBlocks) * blocksize,
InodesTotal: uint64(fs.TotalInodes),
InodesFree: uint64(fs.FreeInodes),
InodesUsed: uint64(fs.TotalInodes - fs.FreeInodes),
}
info.UsedPercent = (float64(info.Used) / float64(info.Total)) * 100.0
info.InodesUsedPercent = (float64(info.InodesUsed) / float64(info.InodesTotal)) * 100.0
return &info, nil
}
}
return nil, fmt.Errorf("mountpoint %s not found", path)
}
func SerialNumberWithContext(ctx context.Context, name string) (string, error) {
return "", common.ErrNotImplementedError
}
func LabelWithContext(ctx context.Context, name string) (string, error) {
return "", common.ErrNotImplementedError
}

@ -19,7 +19,7 @@ import (
func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOCountersStat, error) {
var buf [C.NDRIVE]C.DriveStats
n, err := C.v3readdrivestat(&buf[0], C.int(len(buf)))
n, err := C.gopsutil_v3_readdrivestat(&buf[0], C.int(len(buf)))
if err != nil {
return nil, err
}

@ -1,4 +1,4 @@
// +build !darwin,!linux,!freebsd,!openbsd,!windows,!solaris
// +build !darwin,!linux,!freebsd,!openbsd,!windows,!solaris,!aix
package disk

@ -349,7 +349,7 @@ func IOCountersWithContext(ctx context.Context, names ...string) (map[string]IOC
if err != nil {
return nil, err
}
ret := make(map[string]IOCountersStat, 0)
ret := make(map[string]IOCountersStat)
empty := IOCountersStat{}
// use only basename such as "/dev/sda1" to "sda1"

@ -16,7 +16,7 @@ static int getdrivestat(io_registry_entry_t d, DriveStats *stat);
static int fillstat(io_registry_entry_t d, DriveStats *stat);
int
v3readdrivestat(DriveStats a[], int n)
gopsutil_v3_readdrivestat(DriveStats a[], int n)
{
mach_port_t port;
CFMutableDictionaryRef match;

@ -29,4 +29,4 @@ struct CPUStats {
natural_t idle;
};
extern int v3readdrivestat(DriveStats a[], int n);
extern int gopsutil_v3_readdrivestat(DriveStats a[], int n);

@ -34,13 +34,13 @@ func SensorsTemperaturesWithContext(ctx context.Context) ([]TemperatureStat, err
}
var temperatures []TemperatureStat
C.open_smc()
defer C.close_smc()
C.gopsutil_v3_open_smc()
defer C.gopsutil_v3_close_smc()
for _, key := range temperatureKeys {
temperatures = append(temperatures, TemperatureStat{
SensorKey: key,
Temperature: float64(C.get_temperature(C.CString(key))),
Temperature: float64(C.gopsutil_v3_get_temperature(C.CString(key))),
})
}
return temperatures, nil

@ -1,4 +1,3 @@
//go:build windows
// +build windows
package host
@ -14,9 +13,9 @@ import (
"time"
"unsafe"
"github.com/yusufpapurcu/wmi"
"github.com/shirou/gopsutil/v3/internal/common"
"github.com/shirou/gopsutil/v3/process"
"github.com/yusufpapurcu/wmi"
"golang.org/x/sys/windows"
)

@ -68,7 +68,7 @@ typedef struct {
static const int SMC_KEY_SIZE = 4; // number of characters in an SMC key.
static io_connect_t conn; // our connection to the SMC.
kern_return_t open_smc(void) {
kern_return_t gopsutil_v3_open_smc(void) {
kern_return_t result;
io_service_t service;
@ -86,7 +86,7 @@ kern_return_t open_smc(void) {
return result;
}
kern_return_t close_smc(void) { return IOServiceClose(conn); }
kern_return_t gopsutil_v3_close_smc(void) { return IOServiceClose(conn); }
static uint32_t to_uint32(char *key) {
uint32_t ans = 0;
@ -155,7 +155,7 @@ static kern_return_t read_smc(char *key, smc_return_t *result_smc) {
return result;
}
double get_temperature(char *key) {
double gopsutil_v3_get_temperature(char *key) {
kern_return_t result;
smc_return_t result_smc;

@ -25,8 +25,8 @@
#define THUNDERBOLT_1 "TI1P"
#define WIRELESS_MODULE "TW0P"
kern_return_t open_smc(void);
kern_return_t close_smc(void);
double get_temperature(char *);
kern_return_t gopsutil_v3_open_smc(void);
kern_return_t gopsutil_v3_close_smc(void);
double gopsutil_v3_get_temperature(char *);
#endif // __SMC_H__

@ -41,8 +41,7 @@ func CallLsofWithContext(ctx context.Context, invoke Invoker, pid int32, args ..
}
func CallPgrepWithContext(ctx context.Context, invoke Invoker, pid int32) ([]int32, error) {
var cmd []string
cmd = []string{"-P", strconv.Itoa(int(pid))}
cmd := []string{"-P", strconv.Itoa(int(pid))}
pgrep, err := exec.LookPath("pgrep")
if err != nil {
return []int32{}, err

@ -0,0 +1,71 @@
// +build aix
package load
/*
#cgo LDFLAGS: -L/usr/lib -lperfstat
#include <libperfstat.h>
#include <procinfo.h>
*/
import "C"
import (
"context"
"unsafe"
"github.com/power-devops/perfstat"
)
func Avg() (*AvgStat, error) {
return AvgWithContext(context.Background())
}
func AvgWithContext(ctx context.Context) (*AvgStat, error) {
c, err := perfstat.CpuTotalStat()
if err != nil {
return nil, err
}
ret := &AvgStat{
Load1: float64(c.LoadAvg1),
Load5: float64(c.LoadAvg5),
Load15: float64(c.LoadAvg15),
}
return ret, nil
}
// Misc returns miscellaneous host-wide statistics.
// darwin use ps command to get process running/blocked count.
// Almost same as Darwin implementation, but state is different.
func Misc() (*MiscStat, error) {
return MiscWithContext(context.Background())
}
func MiscWithContext(ctx context.Context) (*MiscStat, error) {
info := C.struct_procentry64{}
cpid := C.pid_t(0)
ret := MiscStat{}
for {
// getprocs first argument is a void*
num, err := C.getprocs64(unsafe.Pointer(&info), C.sizeof_struct_procentry64, nil, 0, &cpid, 1)
if err != nil {
return nil, err
}
ret.ProcsTotal++
switch info.pi_state {
case C.SACTIVE:
ret.ProcsRunning++
case C.SSTOP:
ret.ProcsBlocked++
}
if num == 0 {
break
}
}
return &ret, nil
}

@ -1,4 +1,4 @@
// +build !darwin,!linux,!freebsd,!openbsd,!windows,!solaris
// +build !darwin,!linux,!freebsd,!openbsd,!windows,!solaris,!aix
package load

@ -0,0 +1,58 @@
// +build aix
package mem
import (
"context"
"github.com/power-devops/perfstat"
)
func VirtualMemory() (*VirtualMemoryStat, error) {
return VirtualMemoryWithContext(context.Background())
}
func VirtualMemoryWithContext(ctx context.Context) (*VirtualMemoryStat, error) {
m, err := perfstat.MemoryTotalStat()
if err != nil {
return nil, err
}
pagesize := uint64(4096)
ret := VirtualMemoryStat{
Total: uint64(m.RealTotal) * pagesize,
Available: uint64(m.RealAvailable) * pagesize,
Free: uint64(m.RealFree) * pagesize,
Used: uint64(m.RealInUse) * pagesize,
UsedPercent: 100 * float64(m.RealInUse) / float64(m.RealTotal),
Active: uint64(m.VirtualActive) * pagesize,
SwapTotal: uint64(m.PgSpTotal) * pagesize,
SwapFree: uint64(m.PgSpFree) * pagesize,
}
return &ret, nil
}
func SwapMemory() (*SwapMemoryStat, error) {
return SwapMemoryWithContext(context.Background())
}
func SwapMemoryWithContext(ctx context.Context) (*SwapMemoryStat, error) {
m, err := perfstat.MemoryTotalStat()
if err != nil {
return nil, err
}
pagesize := uint64(4096)
swapUsed := uint64(m.PgSpTotal - m.PgSpFree - m.PgSpRsvd) * pagesize
swapTotal := uint64(m.PgSpTotal) * pagesize
ret := SwapMemoryStat{
Total: swapTotal,
Free: uint64(m.PgSpFree) * pagesize,
Used: swapUsed,
UsedPercent: float64(100 * swapUsed) / float64(swapTotal),
Sin: uint64(m.PgSpIn),
Sout: uint64(m.PgSpOut),
PgIn: uint64(m.PageIn),
PgOut: uint64(m.PageOut),
PgFault: uint64(m.PageFaults),
}
return &ret, nil
}

@ -1,4 +1,4 @@
// +build !darwin,!linux,!freebsd,!openbsd,!solaris,!windows,!plan9
// +build !darwin,!linux,!freebsd,!openbsd,!solaris,!windows,!plan9,!aix
package mem

@ -131,7 +131,7 @@ func (l *ConntrackStatList) Append(c *ConntrackStat) {
}
func (l *ConntrackStatList) Items() []ConntrackStat {
items := make([]ConntrackStat, len(l.items), len(l.items))
items := make([]ConntrackStat, len(l.items))
for i, el := range l.items {
items[i] = *el
}

@ -140,7 +140,7 @@ func IOCountersByFileWithContext(ctx context.Context, pernic bool, filename stri
ret = append(ret, nic)
}
if pernic == false {
if !pernic {
return getIOCountersAll(ret)
}

@ -45,13 +45,30 @@ type Process struct {
// Process status
const (
// Running marks a task a running or runnable (on the run queue)
Running = "running"
Sleep = "sleep"
Stop = "stop"
Idle = "idle"
Zombie = "zombie"
Wait = "wait"
Lock = "lock"
// Blocked marks a task waiting on a short, uninterruptable operation (usually IO)
Blocked = "blocked"
// Idle marks a task sleeping for more than about 20 seconds
Idle = "idle"
// Lock marks a task waiting to acquire a lock
Lock = "lock"
// Sleep marks task waiting for short, interruptable operation
Sleep = "sleep"
// Stop marks a stopped process
Stop = "stop"
// Wait marks an idle interrupt thread (or paging in pre 2.6.xx Linux)
Wait = "wait"
// Zombie marks a defunct process, terminated but not reaped by its parent
Zombie = "zombie"
// Solaris states. See https://github.com/collectd/collectd/blob/1da3305c10c8ff9a63081284cf3d4bb0f6daffd8/src/processes.c#L2115
Daemon = "daemon"
Detached = "detached"
System = "system"
Orphan = "orphan"
UnknownState = ""
)
type OpenFilesStat struct {
@ -554,23 +571,41 @@ func (p *Process) Environ() ([]string, error) {
return p.EnvironWithContext(context.Background())
}
// convertStatusChar as reported by the ps command across different platforms.
func convertStatusChar(letter string) string {
// Sources
// Darwin: http://www.mywebuniversity.com/Man_Pages/Darwin/man_ps.html
// FreeBSD: https://www.freebsd.org/cgi/man.cgi?ps
// Linux https://man7.org/linux/man-pages/man1/ps.1.html
// OpenBSD: https://man.openbsd.org/ps.1#state
// Solaris: https://github.com/collectd/collectd/blob/1da3305c10c8ff9a63081284cf3d4bb0f6daffd8/src/processes.c#L2115
switch letter {
case "A":
return Daemon
case "D", "U":
return Blocked
case "E":
return Detached
case "I":
return Idle
case "L":
return Lock
case "O":
return Orphan
case "R":
return Running
case "S":
return Sleep
case "T":
case "T", "t":
// "t" is used by Linux to signal stopped by the debugger during tracing
return Stop
case "I":
return Idle
case "Z":
return Zombie
case "W":
return Wait
case "L":
return Lock
case "Y":
return System
case "Z":
return Zombie
default:
return ""
return UnknownState
}
}

@ -1,234 +0,0 @@
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_darwin.go
package process
const (
sizeofPtr = 0x8
sizeofShort = 0x2
sizeofInt = 0x4
sizeofLong = 0x8
sizeofLongLong = 0x8
)
type (
_C_short int16
_C_int int32
_C_long int64
_C_long_long int64
)
type Timespec struct {
Sec int64
Nsec int64
}
type Timeval struct {
Sec int64
Usec int32
Pad_cgo_0 [4]byte
}
type Rusage struct {
Utime Timeval
Stime Timeval
Maxrss int64
Ixrss int64
Idrss int64
Isrss int64
Minflt int64
Majflt int64
Nswap int64
Inblock int64
Oublock int64
Msgsnd int64
Msgrcv int64
Nsignals int64
Nvcsw int64
Nivcsw int64
}
type Rlimit struct {
Cur uint64
Max uint64
}
type UGid_t uint32
type KinfoProc struct {
Proc ExternProc
Eproc Eproc
}
type Eproc struct {
Paddr *uint64
Sess *Session
Pcred Upcred
Ucred Uucred
Pad_cgo_0 [4]byte
Vm Vmspace
Ppid int32
Pgid int32
Jobc int16
Pad_cgo_1 [2]byte
Tdev int32
Tpgid int32
Pad_cgo_2 [4]byte
Tsess *Session
Wmesg [8]int8
Xsize int32
Xrssize int16
Xccount int16
Xswrss int16
Pad_cgo_3 [2]byte
Flag int32
Login [12]int8
Spare [4]int32
Pad_cgo_4 [4]byte
}
type Proc struct{}
type Session struct{}
type ucred struct {
Link _Ctype_struct___0
Ref uint64
Posix Posix_cred
Label *Label
Audit Au_session
}
type Uucred struct {
Ref int32
UID uint32
Ngroups int16
Pad_cgo_0 [2]byte
Groups [16]uint32
}
type Upcred struct {
Pc_lock [72]int8
Pc_ucred *ucred
P_ruid uint32
P_svuid uint32
P_rgid uint32
P_svgid uint32
P_refcnt int32
Pad_cgo_0 [4]byte
}
type Vmspace struct {
Dummy int32
Pad_cgo_0 [4]byte
Dummy2 *int8
Dummy3 [5]int32
Pad_cgo_1 [4]byte
Dummy4 [3]*int8
}
type Sigacts struct{}
type ExternProc struct {
P_un [16]byte
P_vmspace uint64
P_sigacts uint64
Pad_cgo_0 [3]byte
P_flag int32
P_stat int8
P_pid int32
P_oppid int32
P_dupfd int32
Pad_cgo_1 [4]byte
User_stack uint64
Exit_thread uint64
P_debugger int32
Sigwait int32
P_estcpu uint32
P_cpticks int32
P_pctcpu uint32
Pad_cgo_2 [4]byte
P_wchan uint64
P_wmesg uint64
P_swtime uint32
P_slptime uint32
P_realtimer Itimerval
P_rtime Timeval
P_uticks uint64
P_sticks uint64
P_iticks uint64
P_traceflag int32
Pad_cgo_3 [4]byte
P_tracep uint64
P_siglist int32
Pad_cgo_4 [4]byte
P_textvp uint64
P_holdcnt int32
P_sigmask uint32
P_sigignore uint32
P_sigcatch uint32
P_priority uint8
P_usrpri uint8
P_nice int8
P_comm [17]int8
Pad_cgo_5 [4]byte
P_pgrp uint64
P_addr uint64
P_xstat uint16
P_acflag uint16
Pad_cgo_6 [4]byte
P_ru uint64
}
type Itimerval struct {
Interval Timeval
Value Timeval
}
type Vnode struct{}
type Pgrp struct{}
type UserStruct struct{}
type Au_session struct {
Aia_p *AuditinfoAddr
Mask AuMask
}
type Posix_cred struct {
UID uint32
Ruid uint32
Svuid uint32
Ngroups int16
Pad_cgo_0 [2]byte
Groups [16]uint32
Rgid uint32
Svgid uint32
Gmuid uint32
Flags int32
}
type Label struct{}
type AuditinfoAddr struct {
Auid uint32
Mask AuMask
Termid AuTidAddr
Asid int32
Flags uint64
}
type AuMask struct {
Success uint32
Failure uint32
}
type AuTidAddr struct {
Port int32
Type uint32
Addr [4]uint32
}
type UcredQueue struct {
Next *ucred
Prev **ucred
}

@ -726,10 +726,7 @@ func (p *Process) fillFromIOWithContext(ctx context.Context) (*IOCountersStat, e
if err != nil {
return nil, err
}
param := field[0]
if strings.HasSuffix(param, ":") {
param = param[:len(param)-1]
}
param := strings.TrimSuffix(field[0], ":")
switch param {
case "syscr":
ret.ReadCount = t

@ -660,7 +660,11 @@ func Test_CPUTimes(t *testing.T) {
func Test_OpenFiles(t *testing.T) {
fp, err := os.Open("process_test.go")
defer fp.Close()
assert.Nil(t, err)
defer func() {
err := fp.Close()
assert.Nil(t, err)
}()
pid := os.Getpid()
p, err := NewProcess(int32(pid))

Loading…
Cancel
Save