Skip to content

Commit 999e741

Browse files
committed
feat: support cat system info
1 parent da135ef commit 999e741

File tree

11 files changed

+145
-29
lines changed

11 files changed

+145
-29
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ domain.toml
1818
# Output of the go coverage tool, specifically when used with LiteIDE
1919
*.out
2020
main
21+
main.go
2122

2223
# OS X
2324
.DS_Store

components/tsdb/def/def.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package def
22

33
import (
4+
"context"
45
"time"
56
)
67

@@ -24,6 +25,7 @@ func WithOrg(org string) Option {
2425
}
2526

2627
type Metric interface {
27-
LogPoint(measurement string, tags map[string]string, fields map[string]any) error
28-
LogPointWithTime(measurement string, tags map[string]string, fields map[string]any, date time.Time) error
28+
LogPoint(bucket, measurement string, tags map[string]string, fields map[string]any) error
29+
LogPointWithTime(bucket, measurement string, tags map[string]string, fields map[string]any, date time.Time) error
30+
Ping(ctx context.Context) error
2931
}

components/tsdb/internal/influxdb.go

+20-13
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import (
44
"context"
55
"errors"
66
"fmt"
7+
"time"
8+
79
"github.com/alomerry/go-tools/components/tsdb/def"
810
"github.com/alomerry/go-tools/static/env/influxdb"
911
tsdb_err "github.com/alomerry/go-tools/static/errors/tsdb"
10-
"github.com/influxdata/influxdb-client-go/v2"
11-
"time"
12+
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
1213
)
1314

1415
type defaultCat struct {
@@ -32,13 +33,7 @@ func NewDefaultCat(ctx context.Context, options ...def.Option) (*defaultCat, err
3233
}
3334

3435
cat.client = influxdb2.NewClient(cat.Endpoint, influxdb.GetToken())
35-
36-
running, err := cat.client.Ping(ctx)
37-
if err != nil || !running {
38-
return nil, errors.Join(tsdb_err.ErrUnhealthy, errors.New(fmt.Sprintf("running: %v, err: %v", running, err)))
39-
}
40-
41-
return cat, nil
36+
return cat, cat.Ping(context.Background())
4237
}
4338

4439
func (d *defaultCat) init() {
@@ -56,12 +51,14 @@ func (d *defaultCat) validate() error {
5651
return nil
5752
}
5853

59-
func (d *defaultCat) LogPoint(measurement string, tags map[string]string, fields map[string]any) error {
60-
return d.LogPointWithTime(measurement, tags, fields, time.Now())
54+
func (d *defaultCat) LogPoint(bucket, measurement string, tags map[string]string, fields map[string]any) error {
55+
return d.LogPointWithTime(bucket, measurement, tags, fields, time.Now())
6156
}
6257

63-
func (d *defaultCat) LogPointWithTime(measurement string, tags map[string]string, fields map[string]any, date time.Time) error {
64-
bucket := "tmp" // 层级
58+
func (d *defaultCat) LogPointWithTime(bucket, measurement string, tags map[string]string, fields map[string]any, date time.Time) error {
59+
if len(bucket) == 0 {
60+
return tsdb_err.ErrEmptyBucket
61+
}
6562
writeAPI := d.client.WriteAPIBlocking(d.Org, bucket)
6663
p := influxdb2.NewPoint(measurement, tags, fields, date)
6764
err := writeAPI.WritePoint(context.Background(), p)
@@ -70,3 +67,13 @@ func (d *defaultCat) LogPointWithTime(measurement string, tags map[string]string
7067
}
7168
return nil
7269
}
70+
71+
func (d *defaultCat) Ping(ctx context.Context) error {
72+
running, err := d.client.Ping(ctx)
73+
if err != nil || !running {
74+
75+
return errors.Join(tsdb_err.ErrUnhealthy, fmt.Errorf("running: %v, err: %v", running, err))
76+
}
77+
78+
return nil
79+
}

components/tsdb/tsdb.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ package tsdb
22

33
import (
44
"context"
5+
56
"github.com/alomerry/go-tools/components/tsdb/def"
67
"github.com/alomerry/go-tools/components/tsdb/internal"
78
)
89

9-
func NewMetric(ctx context.Context, options ...def.Option) def.Metric {
10-
cat, err := internal.NewDefaultCat(ctx, options...)
11-
if err != nil {
12-
panic(err)
13-
}
14-
return cat
10+
func NewMetric(ctx context.Context, options ...def.Option) (def.Metric, error) {
11+
return internal.NewDefaultCat(ctx, options...)
1512
}

go.mod

+9-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ require (
1111
github.com/google/martian v2.1.0+incompatible
1212
github.com/influxdata/influxdb-client-go/v2 v2.14.0
1313
github.com/magiconair/properties v1.8.7
14+
github.com/shirou/gopsutil v3.21.11+incompatible
15+
github.com/sirupsen/logrus v1.8.1
1416
github.com/spf13/cast v1.5.1
1517
github.com/spf13/viper v1.16.0
16-
github.com/stretchr/testify v1.8.4
18+
github.com/stretchr/testify v1.10.0
1719
github.com/tealeg/xlsx/v3 v3.3.0
1820
gorm.io/driver/mysql v1.5.6
1921
gorm.io/gorm v1.25.10
@@ -38,9 +40,10 @@ require (
3840
github.com/davecgh/go-spew v1.1.1 // indirect
3941
github.com/frankban/quicktest v1.14.5 // indirect
4042
github.com/fsnotify/fsnotify v1.6.0 // indirect
43+
github.com/go-ole/go-ole v1.2.6 // indirect
4144
github.com/go-sql-driver/mysql v1.7.0 // indirect
4245
github.com/google/btree v1.0.0 // indirect
43-
github.com/google/go-cmp v0.5.9 // indirect
46+
github.com/google/go-cmp v0.6.0 // indirect
4447
github.com/google/uuid v1.3.1 // indirect
4548
github.com/hashicorp/hcl v1.0.0 // indirect
4649
github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 // indirect
@@ -60,8 +63,11 @@ require (
6063
github.com/spf13/jwalterweatherman v1.1.0 // indirect
6164
github.com/spf13/pflag v1.0.5 // indirect
6265
github.com/subosito/gotenv v1.4.2 // indirect
66+
github.com/tklauser/go-sysconf v0.3.12 // indirect
67+
github.com/tklauser/numcpus v0.6.1 // indirect
68+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
6369
golang.org/x/net v0.23.0 // indirect
64-
golang.org/x/sys v0.18.0 // indirect
70+
golang.org/x/sys v0.28.0 // indirect
6571
golang.org/x/text v0.14.0 // indirect
6672
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
6773
gopkg.in/ini.v1 v1.67.0 // indirect

go.sum

+22-4
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS
105105
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
106106
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
107107
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
108+
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
109+
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
108110
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
109111
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
110112
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -144,8 +146,9 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
144146
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
145147
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
146148
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
147-
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
148149
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
150+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
151+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
149152
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
150153
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
151154
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@@ -219,6 +222,10 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV
219222
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
220223
github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa h1:2cO3RojjYl3hVTbEvJVqrMaFmORhL6O06qdW42toftk=
221224
github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa/go.mod h1:Yjr3bdWaVWyME1kha7X0jsz3k2DgXNa1Pj3XGyUAbx8=
225+
github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
226+
github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
227+
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
228+
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
222229
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
223230
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
224231
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
@@ -240,16 +247,23 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
240247
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
241248
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
242249
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
243-
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
244250
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
251+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
252+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
245253
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
246254
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
247255
github.com/tealeg/xlsx/v3 v3.3.0 h1:GTm5dBwjHIclUGP8nSdxZ4WDAe0op9Y8lVdGnM/81/s=
248256
github.com/tealeg/xlsx/v3 v3.3.0/go.mod h1:89pBNWeVVSonnnrL2V2SjIvdel0DU8XDi7W0XsNSzfk=
257+
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
258+
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
259+
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
260+
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
249261
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
250262
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
251263
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
252264
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
265+
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
266+
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
253267
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
254268
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
255269
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -358,7 +372,9 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w
358372
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
359373
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
360374
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
375+
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
361376
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
377+
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
362378
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
363379
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
364380
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -385,8 +401,10 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
385401
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
386402
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
387403
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
388-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
389-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
404+
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
405+
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
406+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
407+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
390408
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
391409
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
392410
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

static/cons/tsdb/influxdb/influxdb.go

+1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ package influxdb
22

33
const (
44
Endpoint = "INFLUXDB_ENDPOINT"
5+
Org = "INFLUXDB_ORG"
56
Token = "INFLUXDB_TOKEN"
67
)

static/env/influxdb/env.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package influxdb
22

33
import (
4-
"github.com/alomerry/go-tools/static/cons/tsdb/influxdb"
54
"os"
5+
6+
"github.com/alomerry/go-tools/static/cons/tsdb/influxdb"
67
)
78

89
func GetEndpoint() string {
@@ -12,6 +13,13 @@ func GetEndpoint() string {
1213
return "http://localhost:8086"
1314
}
1415

16+
func GetOrg() string {
17+
if v := os.Getenv(influxdb.Org); len(v) > 0 {
18+
return v
19+
}
20+
return "alomerry.com"
21+
}
22+
1523
func GetToken() string {
1624
if v := os.Getenv(influxdb.Token); len(v) > 0 {
1725
return v

static/errors/tsdb/error.go

+1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ import "errors"
55
var (
66
ErrEmptyEndpoint = errors.New("endpoint is empty")
77
ErrEmptyOrg = errors.New("org is empty")
8+
ErrEmptyBucket = errors.New("bucket is empty")
89
ErrUnhealthy = errors.New("unhealthy")
910
)

utils/pprof/base.go

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package pprof
2+
3+
import (
4+
"context"
5+
"time"
6+
7+
"github.com/alomerry/go-tools/components/tsdb"
8+
"github.com/alomerry/go-tools/components/tsdb/def"
9+
"github.com/alomerry/go-tools/static/env/influxdb"
10+
"github.com/shirou/gopsutil/cpu"
11+
"github.com/shirou/gopsutil/disk"
12+
"github.com/shirou/gopsutil/host"
13+
"github.com/shirou/gopsutil/mem"
14+
"github.com/sirupsen/logrus"
15+
)
16+
17+
func init() {
18+
go collectSysInfo()
19+
}
20+
21+
func collectSysInfo() {
22+
var (
23+
ctx = context.Background()
24+
metric, err = tsdb.NewMetric(ctx, def.WithEndpoint(influxdb.GetEndpoint()), def.WithOrg(influxdb.GetOrg()))
25+
ticker = time.NewTicker(time.Second)
26+
hostInfo, _ = host.Info()
27+
)
28+
29+
if err != nil {
30+
logrus.Panicf("cat init failed: %v", err)
31+
}
32+
33+
for {
34+
<-ticker.C
35+
vm, _ := mem.VirtualMemory()
36+
err := metric.LogPoint("system", "mem_usage", map[string]string{
37+
"hostName": hostInfo.Hostname,
38+
}, map[string]any{
39+
"mem_total": vm.Total,
40+
"mem_used": vm.Used,
41+
"mem_percent": vm.UsedPercent,
42+
})
43+
if err != nil {
44+
logrus.Errorf("cat system info failed: %v", err)
45+
}
46+
47+
vc, _ := cpu.Percent(time.Second, false)
48+
err = metric.LogPoint("system", "cpu_usage", map[string]string{
49+
"hostName": hostInfo.Hostname,
50+
}, map[string]any{
51+
"cpu_percent": vc[0],
52+
})
53+
if err != nil {
54+
logrus.Errorf("cat system info failed: %v", err)
55+
}
56+
57+
vd, _ := disk.Usage("/")
58+
err = metric.LogPoint("system", "disk_usage", map[string]string{
59+
"hostName": hostInfo.Hostname,
60+
}, map[string]any{
61+
"disk_percent": vd.UsedPercent,
62+
})
63+
if err != nil {
64+
logrus.Errorf("cat system info failed: %v", err)
65+
}
66+
}
67+
}

utils/pprof/base_test.go

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package pprof
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestBase(t *testing.T) {
8+
}

0 commit comments

Comments
 (0)