Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2ce07a6

Browse files
authored
Merge pull request #920 from devlights/add-procfs-cpuinfo
2 parents 4e8cb73 + 586d2f8 commit 2ce07a6

File tree

6 files changed

+94
-3
lines changed

6 files changed

+94
-3
lines changed

examples/procfs/cpuinfo/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
app

examples/procfs/cpuinfo/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# これは何?
2+
3+
[procfs](https://github.com/prometheus/procfs) を使って、/procファイルシステム上のCPU情報を取得するサンプルです。
4+
5+
```sh
6+
$ task
7+
task: [clean] rm -f ./app
8+
task: [build] go build -o app .
9+
task: [run] ./app
10+
CPU-COUNT: 16
11+
[CPU-01] CoreId=0 ModelName="AMD EPYC 7B13", Processor=00
12+
[CPU-02] CoreId=1 ModelName="AMD EPYC 7B13", Processor=01
13+
[CPU-03] CoreId=2 ModelName="AMD EPYC 7B13", Processor=02
14+
[CPU-04] CoreId=3 ModelName="AMD EPYC 7B13", Processor=03
15+
[CPU-05] CoreId=4 ModelName="AMD EPYC 7B13", Processor=04
16+
[CPU-06] CoreId=5 ModelName="AMD EPYC 7B13", Processor=05
17+
[CPU-07] CoreId=6 ModelName="AMD EPYC 7B13", Processor=06
18+
[CPU-08] CoreId=7 ModelName="AMD EPYC 7B13", Processor=07
19+
[CPU-09] CoreId=0 ModelName="AMD EPYC 7B13", Processor=08
20+
[CPU-10] CoreId=1 ModelName="AMD EPYC 7B13", Processor=09
21+
[CPU-11] CoreId=2 ModelName="AMD EPYC 7B13", Processor=10
22+
[CPU-12] CoreId=3 ModelName="AMD EPYC 7B13", Processor=11
23+
[CPU-13] CoreId=4 ModelName="AMD EPYC 7B13", Processor=12
24+
[CPU-14] CoreId=5 ModelName="AMD EPYC 7B13", Processor=13
25+
[CPU-15] CoreId=6 ModelName="AMD EPYC 7B13", Processor=14
26+
[CPU-16] CoreId=7 ModelName="AMD EPYC 7B13", Processor=15
27+
```

examples/procfs/cpuinfo/Taskfile.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# https://taskfile.dev
2+
3+
version: '3'
4+
5+
tasks:
6+
default:
7+
cmds:
8+
- task: clean
9+
- task: build
10+
- task: run
11+
build:
12+
cmds:
13+
- go build -o app .
14+
run:
15+
cmds:
16+
- ./app
17+
clean:
18+
cmds:
19+
- rm -f ./app

examples/procfs/cpuinfo/main.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package main
2+
3+
import (
4+
"log"
5+
6+
"github.com/prometheus/procfs"
7+
)
8+
9+
func main() {
10+
log.SetFlags(0)
11+
12+
if err := run(); err != nil {
13+
log.Fatal(err)
14+
}
15+
}
16+
17+
func run() error {
18+
var (
19+
fs procfs.FS
20+
err error
21+
)
22+
fs, err = procfs.NewDefaultFS() // デフォルトは /proc を見ている
23+
if err != nil {
24+
return err
25+
}
26+
27+
var (
28+
cpuInfos []procfs.CPUInfo
29+
)
30+
cpuInfos, err = fs.CPUInfo()
31+
if err != nil {
32+
return err
33+
}
34+
35+
log.Printf("CPU-COUNT: %d", len(cpuInfos))
36+
for i, cpu := range cpuInfos {
37+
log.Printf("\t[CPU-%02d] CoreId=%s ModelName=%q, Processor=%02d", i+1, cpu.CoreID, cpu.ModelName, cpu.Processor)
38+
}
39+
40+
return nil
41+
}

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/shopspring/decimal v1.4.0
1010
golang.org/x/crypto v0.36.0
1111
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e
12-
golang.org/x/sync v0.12.0
12+
golang.org/x/sync v0.13.0
1313
golang.org/x/sys v0.32.0
1414
golang.org/x/term v0.30.0
1515
golang.org/x/text v0.23.0
@@ -22,6 +22,7 @@ require github.com/muesli/cancelreader v0.2.2
2222

2323
require (
2424
github.com/devlights/fdpassing v1.0.1
25+
github.com/prometheus/procfs v0.16.1
2526
github.com/shirou/gopsutil/v4 v4.25.3
2627
)
2728

go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
2323
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2424
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
2525
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
26+
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
27+
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
2628
github.com/shirou/gopsutil/v4 v4.25.3 h1:SeA68lsu8gLggyMbmCn8cmp97V1TI9ld9sVzAUcKcKE=
2729
github.com/shirou/gopsutil/v4 v4.25.3/go.mod h1:xbuxyoZj+UsgnZrENu3lQivsngRR5BdjbJwf2fv4szA=
2830
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
@@ -39,8 +41,8 @@ golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
3941
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
4042
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk=
4143
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
42-
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
43-
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
44+
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
45+
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
4446
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4547
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4648
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

0 commit comments

Comments
 (0)