caching/vendor/github.com/prometheus/procfs
Knative Automation 750d0821ef
upgrade to latest dependencies (#816)
bumping github.com/prometheus/procfs 113c501...ff0ad85:
  > ff0ad85 Update for Go 1.21 (# 575)
  > ce949a5 Add `hw_counters` for infiniband device. (# 549)
  > b2168a3 infiniband: do not fail if board_id is not present (# 556)
  > 647e50e Add inode number to fdinfo (# 552)
  > 9d715e8 Add NSpid to proc status (# 557)
  > 8676d3d dongjiang, add nfs over RDMA proc parse (# 558)
  > 607adcf Fix build tags for isRealProc function (# 560)
  > a5ae62f proc_maps: Parse address and device without allocating (# 572)
  > 5056707 Improve sysfs vulnerability parsing (# 568)
  > 340d4b8 NFSd: handle new wdeleg_getattr attribute in /proc/net/rpc/nfsd (# 574)
  > e8dd544 Fixup nfs naming (# 573)
  > f22604f Update common Prometheus files
  > b6ad5a7 fix code comment error (# 561) (# 562)
  > c05b611 fix gofmt checking fail
  > 301089d dongjiang, support v4 proc4ops 38 operations
  > 8f5b8ca dongjiang, fix nfsd v4 ops index
  > e3cbe53 Bump golang.org/x/sys from 0.10.0 to 0.11.0
  > 75c02c7 Update common Prometheus files
  > e7af452 Fix annotation errors
  > c5d92ab Bump golang.org/x/sys from 0.9.0 to 0.10.0
bumping knative.dev/pkg 03265f7...dfa0a2c:
  > dfa0a2c Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (# 2924)
  > 32bea20 Bump google.golang.org/protobuf from 1.31.0 to 1.32.0 (# 2923)
  > d513e48 Bump google.golang.org/grpc from 1.59.0 to 1.60.1 (# 2922)
  > 1709d20 Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (# 2921)
bumping github.com/prometheus/client_model 9a2bf30...1c92cad:
  > 1c92cad Merge pull request # 72 from prometheus/repo_sync
  > cbe84de Merge pull request # 71 from prometheus/superq/update_build
  > 58db340 Update common Prometheus files
  > baaa038 Merge pull request # 70 from prometheus/repo_sync
  > 568c466 Update Go
  > 7b38251 Merge pull request # 69 from prometheus/repo_sync
  > 185bafb Update common Prometheus files
  > cfbcccb Merge pull request # 67 from prometheus/beorn7/histogram
  > 4dbcf4e Update common Prometheus files
  > 95a0733 Merge pull request # 66 from ArthurSens/created-timestamp
  > 2a367b9 histogram: Add a doc comment about when to add a no-op span
bumping google.golang.org/appengine 5d1c1d0...aa58fcd:
  > aa58fcd Replace deprecated command with environment file (# 318)
  > ef2135a Memcache item timestamps (# 323)
  > a080531 ci: Update go-version matrix (# 319)
  > d41edd3 Extend the deadline of a test context to fix a timeout issue. (# 316)
  > f96845d Upgrade python version being used by the ci workflow. (# 315)
  > 93c9fa1 fix: regenerate all protos under new namespace (# 314)
  > f9c3e90 Update go-version matrix (# 309)
  > 4c82e82 Fix the ci-update-workflow GitHub Actions (# 308)
  > a858869 Add a ci-update-workflow GitHub Actions to update the go-version matrix (# 307)
  > 917b599 Revert "all: using the more elegant way to deal milliseconds and nanoseconds (# 292)" (# 306)
  > 9d6c353 all: using the more elegant way to deal milliseconds and nanoseconds (# 292)
  > f882c63 build(deps): bump golang.org/x/text from 0.3.6 to 0.3.8 (# 300)
  > b75a6de Run go get google.golang.org/appengine/v2/search (# 305)
  > 1d09fa9 build(deps): bump golang.org/x/text from 0.3.7 to 0.3.8 in /v2 (# 299)
  > 40eb4d1 Add v2/search (# 297)
  > 28bf581 just a small refactor of api_test (# 291)
  > 6e2c50e Install Python2 in base image for DevAppServer tests and change test matrix for 1.11 and 1.20.x (# 304)
  > 9af54ae all: fix some comments (# 296)
  > 59aced7 README.md: fix typo (# 288)
  > 4e4a7b2 v2/README.md: fix typos (# 276)
  > 06b058b Add Go 1.20 to tested Go versions (# 303)
  > a1ae214 remove golang.org/x/net dependency (# 295)
  > 504804f Add Go 1.18 and Go 1.19 to tested Go versions (# 293)
  > 1bdfe3f re-apply PR # 235 to v2 (# 290)
  > b08cb36 re-apply PR # 232 to v2 (# 289)
  > d981f2f Security Vulnerability Upgrading golang.org/x/text  (# 287)
  > 37ff2b8 allow API calls without GAE context (# 284)
  > 1f27190 prevent github from cancelling all test jobs when one fails (# 285)
  > 65ad43f respect GAE_ENV=localdev (# 283)
  > 0c7f7a8 run gofmt with go1.19 release candidate (# 282)
  > ca3835e Fix golang/appengine CI (# 280)
  > da036ec refactor: pin setup-gcloud gh action to v0 (# 274)
  > e005424 Fix header name to associate log entry & trace (# 263)
  > 5a029e6 switch default logStream from stdout to stderr (# 272)
  > bbd66e8 Add Go 1.16 to tested Go versions (# 255)
  > ab4e2d3 Let users specify unique function keys using delay.MustRegister (# 268)
  > 6d50fa8 Update backgroundcontext comment (# 267)
  > cefb82f Run ci workflow on v2/. (# 260)
  > d0e56bd Migrate travis ci to Github actions. (# 253)
  > 2042caf Fix documented default deadline in urlfetch client (# 249)
  > 856ef3e Merge QA into the main branch (# 247)
  > 8f83b32 [internal] Expose internal.handleHTTP as a standard http middleware (# 235)
  > b48684e [atest] Specify path to dev_appserver datastore file via APPENGINE_DEV_APPSERVER_DATASTORE_PATH (# 232)
  > 07f9b08 [internal] Add LOG_TO_LOGSERVICE env var to disable logservice (# 229)
bumping google.golang.org/protobuf 68463f0...3068604:
  > 3068604 all: release v1.32.0
  > bfcd647 protojson: configurable recursion limit when unmarshalling
  > 24fba63 gha-ci: instruct bazelisk to use previous bazel version
  > 8ed73c7 all: run integration test on longtest builders in CI
  > e8baad6 reflect/protodesc: support editions feature resolution
  > 3bfc0b0 all: drop -mod=vendor in integration test invocations
  > c9d2559 reflect/protoreflect: use go1.20 unsafe interface for strings and slices
  > a1297bf all: set required version to 1.17
  > 2b71f26 all: fix go generate (needs protolegacy build tag for weak fields)
  > 704136e protoc: update to the newest protobuf version (25.1)
  > 2087447 internal/strs: use go1.20 unsafe interface for strings
  > 9b87403 all: remove pre-module support code from integration test
  > a8317fb reflect/protodesc: don't generate invalid syntax values
  > 9492118 internal/benchmarks: make download_benchdata print an error
  > f4a6c1f types/descriptorpb: regenerate using latest protobuf v25.0-rc2 release candidate
  > 86bdc47 internal/impl: preallocate memory when unmarshalling packed repeated fields
  > 322d454 all: avoid non-const reflect.MethodByName calls
  > 6352dec prototext: Fix parsing of unknown repeated message fields
  > 8088bf8 encoding: Add EmitDefaultValues option
  > 01c8445 all: test with Go 1.20 and 1.21
  > 849f2c2 gha-ci: fix builds from cache: add ~/.cache/bazel (+ update actions)
  > 70db1e1 encoding/protojson: ignore unknown enum name if DiscardUnknown=true
  > f9212a8 all: modernize documentation
  > 6d0a5db types/descriptorpb: regenerate using latest protobuf v24.0-rc2 release candidate
  > 31694db types/dynamicpb: make atomicExtFiles the first word of the struct
  > 4396dd4 encoding/protodelim: drop TestUnmarshalFromBufioAllocations
  > 55f120e all: start v1.31.0-devel
bumping github.com/prometheus/client_golang fa1408e...53be91d:
  > 53be91d Revert "change api http.client to interface"
  > 1a2d072 Add 1.18 changelog
  > 239b123 Merge pull request # 1387 from tsipo/main
  > 3f8bd73 Merge pull request # 1370 from prometheus/dependabot/go_modules/tutorial/whatsup/google.golang.org/grpc-1.56.3
  > 24d59e9 change client to interface, allow override by other implementations (e.g. github.com/hashicorp/go-retryablehttp)
  > e96fb18 Merge pull request # 1401 from prometheus/dependabot/go_modules/golang.org/x/sys-0.15.0
  > 5e55b31 Bump google.golang.org/grpc from 1.53.0 to 1.56.3 in /tutorial/whatsup
  > 80d3f0b Normalize empty help values in CollectAndCompare (# 1378)
  > 2a8fc90 Bump golang.org/x/sys from 0.13.0 to 0.15.0
  > 3f80cd1 Add example of NewConstMetricWithCreatedTimestamp (# 1375)
  > e160b50 Bump prometheus/common to 0.45.0 (# 1374)
  > 3879457 This way the import is more readable (# 1383)
  > 0356577 Merge pull request # 1376 from prometheus/repo_sync
  > f030c3d Merge pull request # 1373 from prometheus/dependabot/go_modules/tutorial/whatsup/github.com/prometheus/common-0.45.0
  > f66184f Update common Prometheus files
  > 884bc8e Merge pull request # 1371 from prometheus/dependabot/go_modules/github.com/prometheus/client_model-0.5.0
  > 4e4691d Bump github.com/prometheus/common in /tutorial/whatsup
  > 13a208d Merge pull request # 1366 from prometheus/dependabot/go_modules/golang.org/x/net-0.17.0
  > 16b91f8 Bump github.com/prometheus/client_model
  > cd8cba2 histograms: Add timer to reset ASAP after bucket limiting has happened (# 1367)
  > 5046a13 Bump golang.org/x/net from 0.15.0 to 0.17.0
  > c3e797e Merge pull request # 1365 from prometheus/dependabot/go_modules/tutorial/whatsup/golang.org/x/net-0.17.0
  > 60a8513 Add support for custom validations in promlint (# 1311)
  > 5b75807 Bump golang.org/x/net from 0.10.0 to 0.17.0 in /tutorial/whatsup
  > 486d514 Update dependency golang.org/x/net to v0.15.0 (# 1342)
  > 64e51f5 proccess_collector: add wasip1 stub (# 1350)
  > d81c33f Update MAINTAINERS.md (# 1362)
  > 1803eb9 Update common Prometheus files (# 1361)
  > 51714a5 Merge pull request # 1360 from colega/improve-performance-of-with-label-values
  > dac14aa Merge pull request # 1356 from prometheus/dependabot/go_modules/github.com/prometheus/procfs-0.12.0
  > 005d8de Improve performance of WithLabelValues(...)
  > 556bf30 Merge pull request # 1357 from prometheus/dependabot/go_modules/golang.org/x/sys-0.12.0
  > 87a016c Bump github.com/prometheus/procfs from 0.11.1 to 0.12.0
  > 4c10365 Merge pull request # 1358 from prometheus/dependabot/go_modules/tutorial/whatsup/github.com/prometheus/client_golang-1.17.0
  > 22540dc Configure CI to automerge dependabot PRs (# 1359)
  > 7004b66 Bump golang.org/x/sys from 0.11.0 to 0.12.0
  > 40c7d2f Merge pull request # 1355 from prometheus/dependabot/go_modules/examples/middleware/github.com/prometheus/client_golang-1.17.0
  > 1844c50 Bump github.com/prometheus/client_golang in /tutorial/whatsup
  > 3278043 Add changelog entry for 1.17 (# 1353)
  > e43edfc Bump github.com/prometheus/client_golang in /examples/middleware
bumping google.golang.org/grpc 7765221...dbbcf59:
  > dbbcf59 Update version.go to 1.60.1 (# 6865)
  > 6e384cf Cherry-pick # 6856 to v1.60.x release branch (# 6864)
  > 6430548 Change version to 1.60.1-dev (# 6793)
  > 297d8dd Cherry-pick # 6841 to v1.60.x release branch (# 6847)
  > 3580447 Change version to 1.60.0 (# 6792)
  > 71e67a9 Cherry-pick # 6834 to v1.60.x release branch (# 6839)
  > cb6581d Cherry-pick # 6804 and dependencies to v1.60.x release branch (# 6838)
  > dd39cdb credentials: if not set, restrict to TLS v1.2+ and CipherSuites per RFC7540 (# 6797)
  > 8645f95 resolver: remove ClientConn.NewServiceConfig (# 6784)
  > 8b17a4d vet: various cleanups (# 6780)
  > 591c481 internal/transport: Add LocalAddr to http2Client.getPeer() (# 6779)
  > eb46b7d github: set top-level read-only workflow permissions (# 6775)
  > be1d1c1 security/advancedtls: FileWatcher CRL provider initialization enhancement (# 6760)
  > 482de22 interop/stress: Remove wait-for-ready (# 6773)
  > f1a1fcd grpc: disable and document overrides of OS default TCP keepalive by Go (# 6672)
  > 338d8f1 github: modify codecov.yml (# 6720)
  > 3fe1123 resolver: manual resolver crashes if grpc.Dial isn't called before some methods (# 6754)
  > cf9ae52 stress: Move package under interop (# 6769)
  > b8d1c76 stress: make the client log the total number of calls made (# 6762)
  > a5a7ef2 xds/resolver: extend test to re-add listener (# 6768)
  > 6bed353 envconfig: re-add AdvertiseCompressors temporarily (# 6764)
  > 70f1a40 grpc: Wait until resources finish cleaning up in Stop() and GracefulStop() (# 6489)
  > b82468a crl provider: Static and FileWatcher provider implementations (# 6670)
  > d7ea67b metadata: Use strings.EqualFold for ValueFromIncomingContext (# 6743)
  > 8cb9846 grpc: Add a pointer of server to ctx passed into stats handler (# 6750)
  > 8190d88 envconfig: remove env vars for on-by-default features (# 6749)
  > c76d75f grpc: Move some stats handler calls to gRPC layer, and add local address to peer.Peer (# 6716)
  > 6e14274 Revert "alts: Reduce ALTS counter overflow length from 5 to 4. (# 6699)" (# 6746)
  > 7b8d0fd alts: Reduce ALTS counter overflow length from 5 to 4. (# 6699)
  > e88e849 internal: Exposes underlying channel in testutils.Channel{} (# 6742)
  > b046cca balancer/rls: Fix RLS failure mode by treating response with no targets as an error (# 6735)
  > e14d583 resolver: Add an endpoint map type (# 6679)
  > cb430be Delete deprecated CRL functionality (# 6721)
  > 6e9c88b xds/internal/resolver: final bit of test cleanup (# 6725)
  > 6fe6085 xds/internal/server: switch to generic xDS API for LDS/RDS (# 6726)
  > df8fc99 encoding: move codec tests out of top-level test package (# 6728)
  > ddb026e experimental: add package and move recv buffer pool APIs into it (# 6692)
  > 2cf5619 grpc: add a warning for unsupported codec (# 6658)
  > 3e9b85c xds/internal/server: stop using a fake xDS client in listenerWrapper tests (# 6700)
  > c76442c xds/resolver: move service watching tests to resolver_test package (# 6682)
  > 5a6773c xds/resolver: move cluster specifier plugin tests to test only package (# 6681)
  > dd4c0ad internal/testutils: add a new test type that implements resolver.ClientConn (# 6668)
  > 32e3ef1 credentials/tls: Use Go cipher suites to find TLS suite string name (# 6709)
  > cb3ae76 codes: update docstring to indicate expected usage (# 6701)
  > f2180b4 server: prohibit more than MaxConcurrentStreams handlers from running at once (# 6703)
  > 313861e Explicitly specify the `dns` schema for the ALTS hand-shaker. (# 6686)
  > 59f57b1 randomWRR: remove lock for accessing WRR.items (# 6666)
  > afaf31a deps: update dependencies for all modules (# 6698)
  > eb33677 xds/internal/server: stop using a fake xDS client in rds handler tests (# 6689)
  > 61ee14c Change version to 1.60.0-dev (# 6697)

Signed-off-by: Knative Automation <automation@knative.team>
2024-01-08 12:58:44 +00:00
..
internal upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
.gitignore upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
.golangci.yml upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
CODE_OF_CONDUCT.md upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
CONTRIBUTING.md upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
LICENSE Generate injection client for knative/caching. (#34) 2019-06-05 11:23:38 -07:00
MAINTAINERS.md Migrate caching to go mod (#258) 2020-04-27 14:35:51 -07:00
Makefile upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
Makefile.common upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
NOTICE Generate injection client for knative/caching. (#34) 2019-06-05 11:23:38 -07:00
README.md upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
SECURITY.md upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
arp.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
buddyinfo.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
cmdline.go upgrade to latest dependencies (#678) 2022-09-12 11:40:33 +00:00
cpuinfo.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
cpuinfo_armx.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
cpuinfo_loong64.go upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
cpuinfo_mipsx.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
cpuinfo_others.go upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
cpuinfo_ppcx.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
cpuinfo_riscvx.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
cpuinfo_s390x.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
cpuinfo_x86.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
crypto.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
doc.go upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
fs.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
fs_statfs_notype.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
fs_statfs_type.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
fscache.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
ipvs.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
kernel_random.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
loadavg.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
mdstat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
meminfo.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
mountinfo.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
mountstats.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
net_conntrackstat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_dev.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
net_ip_socket.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_protocols.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_route.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_sockstat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_softnet.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_tcp.go upgrade to latest dependencies (#449) 2021-04-08 06:20:50 -07:00
net_udp.go upgrade to latest dependencies (#449) 2021-04-08 06:20:50 -07:00
net_unix.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_wireless.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
net_xfrm.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
netstat.go upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
proc.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_cgroup.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_cgroups.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_environ.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
proc_fdinfo.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
proc_interrupts.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_io.go [master] Auto-update dependencies (#261) 2020-04-29 09:02:42 -07:00
proc_limits.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_maps.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
proc_netstat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_ns.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_psi.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_smaps.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_snmp.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_snmp6.go upgrade to latest dependencies (#769) 2023-08-03 12:31:21 +00:00
proc_stat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
proc_status.go upgrade to latest dependencies (#816) 2024-01-08 12:58:44 +00:00
proc_sys.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
schedstat.go upgrade to latest dependencies (#753) 2023-05-24 17:16:24 +00:00
slab.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
softirqs.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
stat.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
swaps.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
thread.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
ttar Migrate caching to go mod (#258) 2020-04-27 14:35:51 -07:00
vm.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00
zoneinfo.go upgrade to latest dependencies (#791) 2023-10-02 15:01:03 +00:00

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.