Skip to content

Commit 7e444e7

Browse files
authored
Add slogAdapter (#6405)
* Add slogAdapter Signed-off-by: SungJin1212 <[email protected]> * Fix test race condition due to EnableExperimentalFunctions Signed-off-by: SungJin1212 <[email protected]> --------- Signed-off-by: SungJin1212 <[email protected]>
1 parent c9e3d5e commit 7e444e7

File tree

14 files changed

+532
-5
lines changed

14 files changed

+532
-5
lines changed

Diff for: go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ require (
8181
github.com/cespare/xxhash/v2 v2.3.0
8282
github.com/google/go-cmp v0.6.0
8383
github.com/sercand/kuberesolver/v5 v5.1.1
84+
github.com/tjhop/slog-gokit v0.1.2
8485
go.opentelemetry.io/collector/pdata v1.21.0
8586
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8
8687
google.golang.org/protobuf v1.35.2

Diff for: go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -1667,6 +1667,8 @@ github.com/thanos-io/promql-engine v0.0.0-20241203103240-2f49f80c7c68 h1:cChM/Fb
16671667
github.com/thanos-io/promql-engine v0.0.0-20241203103240-2f49f80c7c68/go.mod h1:wx0JlRZtsB2S10JYUgeg5GqLfMxw31SzArP+28yyE00=
16681668
github.com/thanos-io/thanos v0.37.1 h1:PuTMql3S/i5UWlBT0WbCDwwL6Kc6Jf7DLHt2rdj4ivY=
16691669
github.com/thanos-io/thanos v0.37.1/go.mod h1:5Ni7Uc1Bc8UCGOYmZ/2f/LVvDkZKNDdqDJZqjDFG+rI=
1670+
github.com/tjhop/slog-gokit v0.1.2 h1:pmQI4SvU9h4gA0vIQsdhJQSqQg4mOmsPykG2/PM3j1I=
1671+
github.com/tjhop/slog-gokit v0.1.2/go.mod h1:8fhlcp8C8ELbg3GCyKv06tgt4B5sDq2P1r2DQAu1HuM=
16701672
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
16711673
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
16721674
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=

Diff for: pkg/querier/tripperware/queryrange/query_range_middlewares_test.go

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ var (
2525
)
2626

2727
func TestRoundTrip(t *testing.T) {
28-
t.Parallel()
2928
s := httptest.NewServer(
3029
middleware.AuthenticateUser.Wrap(
3130
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

Diff for: pkg/querier/tripperware/queryrange/split_by_interval_test.go

-2
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,6 @@ func TestSplitByDay(t *testing.T) {
330330
}
331331

332332
func Test_evaluateAtModifier(t *testing.T) {
333-
t.Parallel()
334333
const (
335334
start, end = int64(1546300800), int64(1646300800)
336335
)
@@ -386,7 +385,6 @@ func Test_evaluateAtModifier(t *testing.T) {
386385
} {
387386
tt := tt
388387
t.Run(tt.in, func(t *testing.T) {
389-
t.Parallel()
390388
out, err := evaluateAtModifierFunction(tt.in, start, end)
391389
if tt.expectedErrorCode != 0 {
392390
require.Error(t, err)

Diff for: pkg/util/log/log.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ func InitLogger(cfg *server.Config) {
6262

6363
// PrometheusLogger exposes Prometheus counters for each of go-kit's log levels.
6464
type PrometheusLogger struct {
65-
logger log.Logger
65+
logger log.Logger
66+
logLevel logging.Level
6667
}
6768

6869
// NewPrometheusLogger creates a new instance of PrometheusLogger which exposes
@@ -92,7 +93,8 @@ func newPrometheusLoggerFrom(logger log.Logger, logLevel logging.Level, keyvals
9293
logMessages.WithLabelValues(level.String())
9394
}
9495
return &PrometheusLogger{
95-
logger: logger,
96+
logger: logger,
97+
logLevel: logLevel,
9698
}
9799
}
98100

Diff for: pkg/util/log/slog_adapter.go

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package log
2+
3+
import (
4+
"log/slog"
5+
6+
"github.com/go-kit/log"
7+
sloggk "github.com/tjhop/slog-gokit"
8+
)
9+
10+
// GoKitLogToSlog convert go-kit/log to slog
11+
// usage: logutil.GoKitLogToSlog(gokitLogger)
12+
func GoKitLogToSlog(logger log.Logger) *slog.Logger {
13+
levelVar := slog.LevelVar{}
14+
promLogger, ok := logger.(*PrometheusLogger)
15+
if !ok {
16+
levelVar.Set(slog.LevelDebug)
17+
} else {
18+
switch promLogger.logLevel.String() {
19+
case "debug":
20+
levelVar.Set(slog.LevelDebug)
21+
case "info":
22+
levelVar.Set(slog.LevelInfo)
23+
case "warn":
24+
levelVar.Set(slog.LevelWarn)
25+
case "error":
26+
levelVar.Set(slog.LevelError)
27+
}
28+
}
29+
return slog.New(sloggk.NewGoKitHandler(logger, &levelVar))
30+
}

Diff for: pkg/util/log/slog_adapter_test.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package log
2+
3+
import (
4+
"context"
5+
"log/slog"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
"github.com/weaveworks/common/server"
10+
)
11+
12+
func Test_SlogAdapter_LogLevel(t *testing.T) {
13+
ctx := context.Background()
14+
logLevels := []string{"debug", "info", "warn", "error"}
15+
slogLevels := []slog.Level{slog.LevelDebug, slog.LevelInfo, slog.LevelWarn, slog.LevelError}
16+
17+
for i, lv := range logLevels {
18+
cfg := &server.Config{}
19+
require.NoError(t, cfg.LogLevel.Set(lv))
20+
InitLogger(cfg)
21+
22+
slog := GoKitLogToSlog(Logger)
23+
for j, slogLv := range slogLevels {
24+
if i <= j {
25+
t.Logf("[go-kit log level: %v, slog level: %v] slog should be enabled", lv, slogLv)
26+
require.True(t, slog.Enabled(ctx, slogLv))
27+
} else {
28+
t.Logf("[go-kit log level: %v, slog level: %v] slog should be disabled", lv, slogLv)
29+
require.False(t, slog.Enabled(ctx, slogLv))
30+
}
31+
}
32+
}
33+
}

Diff for: vendor/github.com/tjhop/slog-gokit/.goreleaser.yaml

+29
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: vendor/github.com/tjhop/slog-gokit/LICENSE

+201
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: vendor/github.com/tjhop/slog-gokit/Makefile

+27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)