Commit Graph

178 Commits

Author SHA1 Message Date
Martin Reindl 1d89235f34 host: add support for OpenBSD/armv7 2022-04-15 21:11:36 +02:00
Jamie Strandboge 9e6e627ec8 [disk][linux] add HOST_PROC_MOUNTINFO, closes #1271
The changes to gopsutil for reading /proc/1/mountinfo affected
applications running under restricted environments that disallows access
to /proc/1/mountinfo. #1159 was filed for android but other restricted
environments are also affected (eg, snaps)). The fix for #1159 addressed
the application behavior to work under confinement for non-android as
well. However, depending on the system, the attempt to read
/proc/1/mountinfo could cause a sandbox denial in the logs which can be
quite noisy if using gopsutil as part of a monitoring solution that
polls often.

This introduces HOST_PROC_MOUNTINFO to force reading from the parent dir
of the specified path instead of first trying /proc/1. When unset,
retain the current behavior with fallback. This allows people, for
example, to set HOST_PROC_MOUNTINFO=/proc/self/mountinfo when gopsutil
is running under these restricted environments.

This change updates the private readMountFile() to use a root path
instead of a root subpath, and adjusts PartitionsWithContext() to set
the root path to /proc/1 initially and falling back to /proc/self. When
HOST_PROC_MOUNTINFO is not empty, set the root path to the parent
directory of HOST_PROC_MOUNTINFO.
2022-03-29 08:20:28 -05:00
Ville Skyttä 5095c3f51e [disk][linux] recognize more file systems 2022-03-19 22:34:13 +02:00
shirou 49037dd0d8 [disk][linux] add fallback to /proc/self 2022-03-05 03:15:26 +00:00
Ville Skyttä f7e1f36418 refactor: remove unnecessary exec.LookPath calls
Executing the command does the lookup if needed and returns the same
error when not found, no need to do it separately.
2022-03-04 18:56:33 +02:00
shirou 2fa880a4ad
Merge pull request #1256 from scop/feat/solaris-disk-serialnumber
[disk][solaris] implement SerialNumberWithContext
2022-02-25 22:26:39 +09:00
shirou 38e1debe71
Update disk/disk_solaris.go 2022-02-25 21:57:01 +09:00
Ville Skyttä 227df04773 [disk][solaris] implement SerialNumberWithContext 2022-02-23 00:06:36 +02:00
Ville Skyttä ae0364e211 [disk][freebsd] include serial number in IOCounters 2022-02-22 23:48:14 +02:00
Ville Skyttä 31c410026d [disk][freebsd] handle SerialNumberWithContext scanner errors 2022-01-11 08:32:36 +02:00
Ville Skyttä 0d33df272b [disk][freebsd] return empty serial on `(null)` geom disk ident 2022-01-06 23:16:03 +02:00
Ville Skyttä df68a56e2d [disk][freebsd] implement SerialNumberWithContext 2022-01-05 00:38:50 +02:00
Matthieu MOREL 4671e649aa
enable revive linter 2021-12-22 23:49:50 +01:00
mmorel-35 1e6b445a8a gofumpt 2021-12-22 21:54:41 +00:00
mmorel-35 eb5f6203d8 gofmt 2021-12-22 21:46:33 +00:00
shirou b1186a68ed
Merge pull request #1191 from shirou/feature/update_mac_cgo
[disk][host][mac] fix deprecated code in macOS Monterey
2021-12-22 21:54:48 +09:00
Matthieu MOREL b673968d5d
enable errorlint linter 2021-12-04 22:29:38 +01:00
shirou 4c3edcfe56 [mac] fix deprecated code in macOS Monterey 2021-12-04 03:37:03 +00:00
shirou d2e27c1712 fix dependabot v2 deletion. 2021-12-01 00:12:55 +00:00
shirou 0969c9436b delete v2 directory, move v3 to top #1078 2021-11-30 23:47:59 +00:00
shirou b39f8bb90e
[v2][disk][linux] apply DiskPartiton change to v2 2021-09-30 21:42:30 +09:00
Guillaume Ballet 992d17af94 add support for OpenBSD arm64 2021-03-23 15:29:27 +01:00
shirou 1f733a99dc [disk] move without context functions to disk.go. 2020-10-24 22:03:58 +09:00
shirou fb1c75054a [disk] Partition returns all list even if argument is False.
According to https://github.com/giampaolo/psutil/issues/906,
all BSD system returns same information `df` and `df -a`.
2020-10-20 18:13:12 +09:00
Lomanic 32d4603d01 [disk][darwin] fix build with latest golang.org/x/sys/unix
Fixes #958
2020-10-15 23:59:25 +02:00
shirou b94f262e7d
Merge pull request #949 from boogie-byte/vet-target
Add "vet" target to the Makefile
2020-10-11 23:01:10 +09:00
Sergey Vinogradov 8ff2ab3187 Add "vet" target to the Makefile
Making the "vet" target will run "go vet ./..." for each supported
GOOS.

Also, some of the warnings produced by go 1.15 vet were mitigated.
2020-10-10 16:50:49 +03:00
Aman Karmani 23d63601d1 [disk][linux] flag bind mounts 2020-10-07 11:01:01 -07:00
Lomanic 4cfc60d68b
Merge pull request #928 from Lomanic/skip-tests-when-not-implemented 2020-09-06 13:33:31 +02:00
Lomanic 84afaae670 [host][mem][process][openbsd] Add 386 const and types definitions
Continuation of #721, this type using mktypes.sh that I didn't know at the time.
Weirdly, `go tool cgo -godefs` doesn't produce propery go-fmt-ed code, had to do run go-fmt manually afterwards.
2020-09-01 02:02:21 +02:00
Lomanic b7781f5858 [disk] Skip tests on non-implemented platforms #446 2020-08-29 18:29:36 +02:00
Tobias Klauser d5eecd689d Fix FreeBSD build with latest x/sys/unix
There was a breaking change in upstream golang.org/x/sys/unix which
changed the type of some Statvfs members, see #853. As it looks like
this change won't be reverted, adjust gopsutil to work with it and allow
to build against the latest version of x/sys/unix.
2020-06-22 23:41:01 +02:00
Lomanic 5aca383d4f [disk][darwin][cgo] Rename C files dependencies to more descriptive names 2020-05-31 20:41:48 +02:00
Lomanic f98100720e [process][windows] Fix #846 use win32 API in disk.IOCounters() instead of slow WMI call returning wrong values 2020-03-13 23:57:17 +01:00
shirou dce23de000
Merge pull request #819 from devopsext/disk-fix_2.19.11
Fix for track disk stats when running in container
2020-01-26 17:52:06 +09:00
Ilya Prudnikov 256e00319e implement proposed solution 2020-01-20 20:13:45 +02:00
Ilya Prudnikov 7277cdf050 Fix for track disk stats when running in container 2020-01-17 11:09:10 +02:00
shirou bcf28f0c37
Merge pull request #812 from tklauser/darwin-getfsstat
Use Getfsstat from golang.org/x/sys/unix on Darwin
2020-01-11 22:18:05 +09:00
Tobias Klauser 7f9e55b000 Use Getfsstat from golang.org/x/sys/unix on OpenBSD
Use the syscall wrapper and types from golang.org/x/sys/unix instead of
implementing them locally.

Also remove unused generated types and consts.

Follow-up for #810 and #812
2020-01-08 10:42:16 +01:00
Tobias Klauser 422c4f61a1 Use Getfsstat from golang.org/x/sys/unix on Darwin
Starting with Go 1.12, direct syscalls on darwin are no longer
supported. Instead, libSystem is used when making syscalls. See
https://golang.org/doc/go1.12#darwin

In order to still support Getfsstat, use the syscall wrapper and types
from golang.org/x/sys/unix which uses the correct syscall method
depending on the Go version.

Also use the correct MNT_* consts and their respective strings according
to the mount(8) manpage.

Follow-up for #810
2020-01-07 23:24:48 +01:00
Tobias Klauser 6aae71ca26 Use Getstatfs from golang.org/x/sys/unix for 64-bit inode support on FreeBSD 12
Use unix.Getstatfs and its associated Statfs_t type instead of
implementing them locally in this package. This allows to use 64-bit
inode fields on FreeBSD 12 while still keeping backwards compatibility
for old FreeBSD versions, as unix.Getfsstat will use the correct syscall
number and data structure version and convert its result
correspondingly.

Also see https://golang.org/cl/136816 for details.
2020-01-03 13:18:44 +01:00
Tobias Klauser 4d6c82fb03 Add missing OpenBSD mount option strings
Add missing mount option string decoding according to the OpenBSD
mount(8) manpage: https://man.openbsd.org/mount
2019-12-23 13:44:02 +01:00
Tobias Klauser 10cdcee035 Fix typos in FreeBSD mount option strings
Fix typos in FreeBSD mount option strings so they match the values given
in the mount(8) manpage: https://www.freebsd.org/cgi/man.cgi?mount(8)
2019-12-23 13:43:44 +01:00
Tobias Klauser 214c5bdb50 Use MNT_* consts from golang.org/x/sys/unix on freebsd and openbsd
Update vendored version of golang.org/x/sys/unix and use the MNT_*
constants there to replace the locally generated ones.
2019-12-23 13:31:05 +01:00
Dmitri Goutnik 270f6afc22
Add support for freebsd/arm64 2019-12-17 03:12:29 -05:00
Lomanic e4ec7b275a [disk][linux] Fix #555 for kernels >=2.6.26 2019-09-01 13:12:13 +02:00
Lomanic dc5a4756c9 [disk][darwin] Fix #560 using github.com/lufia/iostat cgo implementation 2019-08-15 19:38:03 +02:00
Aman Gupta 74d3cea10f Proper fix for unavailable /proc/filesystems 2019-08-12 18:33:25 -07:00
John Floren 93e08ea089 Fixes a problem when using Docker on a host with an encrypted LLVM root. A docker container with a volume mounted from the host will see /dev/mapper in its mount info file, but will not be able to read it. 2019-08-05 14:01:19 -06:00
eshimizu 91b1c81467
Update disk_linux.go 2019-07-31 22:33:57 +09:00