Skip to content

Commit fae8cfb

Browse files
committed
add automemlimit and update deps
Signed-off-by: Markus Blaschke <[email protected]>
1 parent 311c553 commit fae8cfb

File tree

10 files changed

+297
-199
lines changed

10 files changed

+297
-199
lines changed

logger.go renamed to common.logger.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
package main
22

33
import (
4+
"log/slog"
5+
46
"go.uber.org/zap"
7+
"go.uber.org/zap/exp/zapslog"
58
"go.uber.org/zap/zapcore"
69
)
710

811
var (
9-
logger *zap.SugaredLogger
12+
logger *zap.SugaredLogger
13+
slogger *slog.Logger
1014
)
1115

1216
func initLogger() *zap.SugaredLogger {
1317
var config zap.Config
14-
if opts.Logger.Development {
18+
if Opts.Logger.Development {
1519
config = zap.NewDevelopmentConfig()
1620
config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
1721
} else {
@@ -22,12 +26,12 @@ func initLogger() *zap.SugaredLogger {
2226
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
2327

2428
// debug level
25-
if opts.Logger.Debug {
29+
if Opts.Logger.Debug {
2630
config.Level = zap.NewAtomicLevelAt(zapcore.DebugLevel)
2731
}
2832

2933
// json log format
30-
if opts.Logger.Json {
34+
if Opts.Logger.Json {
3135
config.Encoding = "json"
3236

3337
// if running in containers, logs already enriched with timestamp by the container runtime
@@ -39,6 +43,9 @@ func initLogger() *zap.SugaredLogger {
3943
if err != nil {
4044
panic(err)
4145
}
46+
4247
logger = log.Sugar()
48+
slogger = slog.New(zapslog.NewHandler(log.Core(), nil))
49+
4350
return logger
4451
}

common.system.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package main
2+
3+
import (
4+
"github.com/KimMachineGun/automemlimit/memlimit"
5+
humanize "github.com/dustin/go-humanize"
6+
)
7+
8+
func initSystem() {
9+
// set memory limit
10+
goMemLimit, err := memlimit.SetGoMemLimitWithOpts(
11+
memlimit.WithProvider(
12+
memlimit.ApplyFallback(
13+
memlimit.FromCgroup,
14+
memlimit.FromSystem,
15+
),
16+
),
17+
memlimit.WithLogger(slogger),
18+
)
19+
20+
if goMemLimit > 0 {
21+
logger.Infof(`GOMEMLIMIT updated to %v`, humanize.Bytes(uint64(goMemLimit)))
22+
}
23+
24+
if err != nil {
25+
logger.Fatal(err)
26+
}
27+
}

go.mod

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,88 @@
11
module github.com/webdevops/azure-devops-exporter
22

3-
go 1.22.0
4-
5-
toolchain go1.22.3
3+
go 1.23
64

75
require (
8-
github.com/go-resty/resty/v2 v2.13.1
6+
github.com/go-resty/resty/v2 v2.14.0
97
github.com/golang/protobuf v1.5.4 // indirect
10-
github.com/prometheus/client_golang v1.19.1
11-
github.com/prometheus/common v0.53.0 // indirect
8+
github.com/prometheus/client_golang v1.20.3
9+
github.com/prometheus/common v0.59.1 // indirect
1210
github.com/prometheus/procfs v0.15.1 // indirect
1311
github.com/sirupsen/logrus v1.9.3
14-
golang.org/x/net v0.25.0 // indirect
15-
golang.org/x/sys v0.20.0 // indirect
16-
google.golang.org/protobuf v1.34.1 // indirect
12+
golang.org/x/net v0.29.0 // indirect
13+
golang.org/x/sys v0.25.0 // indirect
14+
google.golang.org/protobuf v1.34.2 // indirect
1715
)
1816

1917
require (
20-
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
21-
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2
22-
github.com/jessevdk/go-flags v1.5.0
18+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0
19+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
20+
github.com/KimMachineGun/automemlimit v0.6.1
21+
github.com/dustin/go-humanize v1.0.1
22+
github.com/jessevdk/go-flags v1.6.1
2323
github.com/patrickmn/go-cache v2.1.0+incompatible
2424
github.com/remeh/sizedwaitgroup v1.0.0
25-
github.com/webdevops/go-common v0.0.0-20240601093701-4ba105311439
25+
github.com/webdevops/go-common v0.0.0-20240821190643-248b039cf4c0
2626
go.uber.org/zap v1.27.0
27+
go.uber.org/zap/exp v0.2.0
2728
)
2829

2930
require (
30-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
31+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
3132
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 // indirect
3233
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 // indirect
3334
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.3.0 // indirect
34-
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 // indirect
35+
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 // indirect
3536
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
3637
github.com/beorn7/perks v1.0.1 // indirect
3738
github.com/cespare/xxhash/v2 v2.3.0 // indirect
38-
github.com/davecgh/go-spew v1.1.1 // indirect
39+
github.com/cilium/ebpf v0.9.1 // indirect
40+
github.com/containerd/cgroups/v3 v3.0.1 // indirect
41+
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
42+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
43+
github.com/docker/go-units v0.4.0 // indirect
3944
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
45+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
4046
github.com/go-logr/logr v1.4.2 // indirect
4147
github.com/go-openapi/jsonpointer v0.21.0 // indirect
4248
github.com/go-openapi/jsonreference v0.21.0 // indirect
4349
github.com/go-openapi/swag v0.23.0 // indirect
50+
github.com/godbus/dbus/v5 v5.0.4 // indirect
4451
github.com/gogo/protobuf v1.3.2 // indirect
4552
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
4653
github.com/google/gnostic-models v0.6.8 // indirect
54+
github.com/google/go-cmp v0.6.0 // indirect
4755
github.com/google/gofuzz v1.2.0 // indirect
4856
github.com/google/uuid v1.6.0 // indirect
4957
github.com/josharian/intern v1.0.0 // indirect
5058
github.com/json-iterator/go v1.1.12 // indirect
59+
github.com/klauspost/compress v1.17.9 // indirect
5160
github.com/kylelemons/godebug v1.1.0 // indirect
5261
github.com/mailru/easyjson v0.7.7 // indirect
5362
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
5463
github.com/modern-go/reflect2 v1.0.2 // indirect
5564
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
65+
github.com/opencontainers/runtime-spec v1.0.2 // indirect
66+
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
5667
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
5768
github.com/prometheus/client_model v0.6.1 // indirect
5869
github.com/robfig/cron v1.2.0 // indirect
70+
github.com/x448/float16 v0.8.4 // indirect
5971
go.uber.org/multierr v1.11.0 // indirect
60-
golang.org/x/crypto v0.23.0 // indirect
61-
golang.org/x/oauth2 v0.20.0 // indirect
62-
golang.org/x/term v0.20.0 // indirect
63-
golang.org/x/text v0.15.0 // indirect
64-
golang.org/x/time v0.5.0 // indirect
72+
golang.org/x/crypto v0.27.0 // indirect
73+
golang.org/x/oauth2 v0.23.0 // indirect
74+
golang.org/x/term v0.24.0 // indirect
75+
golang.org/x/text v0.18.0 // indirect
76+
golang.org/x/time v0.6.0 // indirect
6577
gopkg.in/inf.v0 v0.9.1 // indirect
6678
gopkg.in/yaml.v2 v2.4.0 // indirect
6779
gopkg.in/yaml.v3 v3.0.1 // indirect
68-
k8s.io/api v0.30.1 // indirect
69-
k8s.io/apimachinery v0.30.1 // indirect
70-
k8s.io/client-go v0.30.1 // indirect
71-
k8s.io/klog/v2 v2.120.1 // indirect
72-
k8s.io/kube-openapi v0.0.0-20240521193020-835d969ad83a // indirect
73-
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
80+
k8s.io/api v0.31.1 // indirect
81+
k8s.io/apimachinery v0.31.1 // indirect
82+
k8s.io/client-go v0.31.1 // indirect
83+
k8s.io/klog/v2 v2.130.1 // indirect
84+
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect
85+
k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 // indirect
7486
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
7587
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
7688
sigs.k8s.io/yaml v1.4.0 // indirect

0 commit comments

Comments
 (0)