Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Gautier DI FOLCO 5c2ceccee6
feature: introduce Promethes (#976)
před 8 měsíci
..
internal feature: introduce Promethes (#976) před 8 měsíci
.gitignore feature: introduce Promethes (#976) před 8 měsíci
.golangci.yml feature: introduce Promethes (#976) před 8 měsíci
CODE_OF_CONDUCT.md feature: introduce Promethes (#976) před 8 měsíci
CONTRIBUTING.md feature: introduce Promethes (#976) před 8 měsíci
LICENSE feature: introduce Promethes (#976) před 8 měsíci
MAINTAINERS.md feature: introduce Promethes (#976) před 8 měsíci
Makefile feature: introduce Promethes (#976) před 8 měsíci
Makefile.common feature: introduce Promethes (#976) před 8 měsíci
NOTICE feature: introduce Promethes (#976) před 8 měsíci
README.md feature: introduce Promethes (#976) před 8 měsíci
SECURITY.md feature: introduce Promethes (#976) před 8 měsíci
arp.go feature: introduce Promethes (#976) před 8 měsíci
buddyinfo.go feature: introduce Promethes (#976) před 8 měsíci
cmdline.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_armx.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_loong64.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_mipsx.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_others.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_ppcx.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_riscvx.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_s390x.go feature: introduce Promethes (#976) před 8 měsíci
cpuinfo_x86.go feature: introduce Promethes (#976) před 8 měsíci
crypto.go feature: introduce Promethes (#976) před 8 měsíci
doc.go feature: introduce Promethes (#976) před 8 měsíci
fs.go feature: introduce Promethes (#976) před 8 měsíci
fs_statfs_notype.go feature: introduce Promethes (#976) před 8 měsíci
fs_statfs_type.go feature: introduce Promethes (#976) před 8 měsíci
fscache.go feature: introduce Promethes (#976) před 8 měsíci
ipvs.go feature: introduce Promethes (#976) před 8 měsíci
kernel_random.go feature: introduce Promethes (#976) před 8 měsíci
loadavg.go feature: introduce Promethes (#976) před 8 měsíci
mdstat.go feature: introduce Promethes (#976) před 8 měsíci
meminfo.go feature: introduce Promethes (#976) před 8 měsíci
mountinfo.go feature: introduce Promethes (#976) před 8 měsíci
mountstats.go feature: introduce Promethes (#976) před 8 měsíci
net_conntrackstat.go feature: introduce Promethes (#976) před 8 měsíci
net_dev.go feature: introduce Promethes (#976) před 8 měsíci
net_ip_socket.go feature: introduce Promethes (#976) před 8 měsíci
net_protocols.go feature: introduce Promethes (#976) před 8 měsíci
net_route.go feature: introduce Promethes (#976) před 8 měsíci
net_sockstat.go feature: introduce Promethes (#976) před 8 měsíci
net_softnet.go feature: introduce Promethes (#976) před 8 měsíci
net_tcp.go feature: introduce Promethes (#976) před 8 měsíci
net_udp.go feature: introduce Promethes (#976) před 8 měsíci
net_unix.go feature: introduce Promethes (#976) před 8 měsíci
net_wireless.go feature: introduce Promethes (#976) před 8 měsíci
net_xfrm.go feature: introduce Promethes (#976) před 8 měsíci
netstat.go feature: introduce Promethes (#976) před 8 měsíci
proc.go feature: introduce Promethes (#976) před 8 měsíci
proc_cgroup.go feature: introduce Promethes (#976) před 8 měsíci
proc_cgroups.go feature: introduce Promethes (#976) před 8 měsíci
proc_environ.go feature: introduce Promethes (#976) před 8 měsíci
proc_fdinfo.go feature: introduce Promethes (#976) před 8 měsíci
proc_interrupts.go feature: introduce Promethes (#976) před 8 měsíci
proc_io.go feature: introduce Promethes (#976) před 8 měsíci
proc_limits.go feature: introduce Promethes (#976) před 8 měsíci
proc_maps.go feature: introduce Promethes (#976) před 8 měsíci
proc_netstat.go feature: introduce Promethes (#976) před 8 měsíci
proc_ns.go feature: introduce Promethes (#976) před 8 měsíci
proc_psi.go feature: introduce Promethes (#976) před 8 měsíci
proc_smaps.go feature: introduce Promethes (#976) před 8 měsíci
proc_snmp.go feature: introduce Promethes (#976) před 8 měsíci
proc_snmp6.go feature: introduce Promethes (#976) před 8 měsíci
proc_stat.go feature: introduce Promethes (#976) před 8 měsíci
proc_status.go feature: introduce Promethes (#976) před 8 měsíci
proc_sys.go feature: introduce Promethes (#976) před 8 měsíci
schedstat.go feature: introduce Promethes (#976) před 8 měsíci
slab.go feature: introduce Promethes (#976) před 8 měsíci
softirqs.go feature: introduce Promethes (#976) před 8 měsíci
stat.go feature: introduce Promethes (#976) před 8 měsíci
swaps.go feature: introduce Promethes (#976) před 8 měsíci
thread.go feature: introduce Promethes (#976) před 8 měsíci
ttar feature: introduce Promethes (#976) před 8 měsíci
vm.go feature: introduce Promethes (#976) před 8 měsíci
zoneinfo.go feature: introduce Promethes (#976) před 8 měsíci

README.md

procfs

This package provides functions to retrieve system, kernel, and process metrics from the pseudo-filesystems /proc and /sys.

WARNING: This package is a work in progress. Its API may still break in backwards-incompatible ways without warnings. Use it at your own risk.

Go Reference CircleCI Go Report Card

Usage

The procfs library is organized by packages based on whether the gathered data is coming from /proc, /sys, or both. Each package contains an FS type which represents the path to either /proc, /sys, or both. For example, cpu statistics are gathered from /proc/stat and are available via the root procfs package. First, the proc filesystem mount point is initialized, and then the stat information is read.

fs, err := procfs.NewFS("/proc")
stats, err := fs.Stat()

Some sub-packages such as blockdevice, require access to both the proc and sys filesystems.

    fs, err := blockdevice.NewFS("/proc", "/sys")
    stats, err := fs.ProcDiskstats()

Package Organization

The packages in this project are organized according to (1) whether the data comes from the /proc or /sys filesystem and (2) the type of information being retrieved. For example, most process information can be gathered from the functions in the root procfs package. Information about block devices such as disk drives is available in the blockdevices sub-package.

Building and Testing

The procfs library is intended to be built as part of another application, so there are no distributable binaries.
However, most of the API includes unit tests which can be run with make test.

Updating Test Fixtures

The procfs library includes a set of test fixtures which include many example files from the /proc and /sys filesystems. These fixtures are included as a ttar file which is extracted automatically during testing. To add/update the test fixtures, first ensure the fixtures directory is up to date by removing the existing directory and then extracting the ttar file using make fixtures/.unpacked or just make test.

rm -rf testdata/fixtures
make test

Next, make the required changes to the extracted files in the fixtures directory. When the changes are complete, run make update_fixtures to create a new fixtures.ttar file based on the updated fixtures directory. And finally, verify the changes using git diff testdata/fixtures.ttar.