Skip to content

Commit 8d4ffa7

Browse files
committed
enhance log init process
1 parent 46a100f commit 8d4ffa7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+90
-151
lines changed

cmd/bbr/health.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
healthPb "google.golang.org/grpc/health/grpc_health_v1"
2626
"google.golang.org/grpc/status"
2727

28-
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
28+
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
2929
)
3030

3131
type healthServer struct {

cmd/bbr/main.go

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import (
2222
"os"
2323

2424
"github.com/go-logr/logr"
25-
uberzap "go.uber.org/zap"
26-
"go.uber.org/zap/zapcore"
2725
"google.golang.org/grpc"
2826
healthPb "google.golang.org/grpc/health/grpc_health_v1"
2927
ctrl "sigs.k8s.io/controller-runtime"
@@ -33,9 +31,9 @@ import (
3331
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3432

3533
"sigs.k8s.io/gateway-api-inference-extension/internal/runnable"
34+
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
3635
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
3736
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/server"
38-
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
3937
)
4038

4139
var (
@@ -51,7 +49,7 @@ var (
5149
"metrics-port", 9090, "The metrics port")
5250
streaming = flag.Bool(
5351
"streaming", false, "Enables streaming support for Envoy full-duplex streaming mode")
54-
logVerbosity = flag.Int("v", logging.DEFAULT, "number for the log level verbosity")
52+
logVerbosity = flag.String("log-level", logging.DefaultLogLevel, "log level verbosity, support: debug, info, warn, error, dpanic, panic, fatal")
5553

5654
setupLog = ctrl.Log.WithName("setup")
5755
)
@@ -66,7 +64,8 @@ func run() error {
6664
opts := zap.Options{Development: true}
6765
opts.BindFlags(flag.CommandLine)
6866
flag.Parse()
69-
initLogging(&opts)
67+
// --- set up logger
68+
ctrl.SetLogger(logging.InitLogging(*logVerbosity, true))
7069

7170
// Print all flag values
7271
flags := make(map[string]any)
@@ -138,20 +137,3 @@ func registerHealthServer(mgr manager.Manager, logger logr.Logger, port int) err
138137
}
139138
return nil
140139
}
141-
142-
func initLogging(opts *zap.Options) {
143-
useV := true
144-
flag.Visit(func(f *flag.Flag) {
145-
if f.Name == "zap-log-level" {
146-
useV = false
147-
}
148-
})
149-
if useV {
150-
// See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
151-
lvl := -1 * (*logVerbosity)
152-
opts.Level = uberzap.NewAtomicLevelAt(zapcore.Level(int8(lvl)))
153-
}
154-
155-
logger := zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
156-
ctrl.SetLogger(logger)
157-
}

cmd/epp/runner/health.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ import (
2727
healthPb "google.golang.org/grpc/health/grpc_health_v1"
2828
"google.golang.org/grpc/status"
2929

30+
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
3031
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
31-
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
3232
)
3333

3434
type healthServer struct {

cmd/epp/runner/runner.go

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,19 @@ import (
3030

3131
"github.com/go-logr/logr"
3232
"github.com/prometheus/client_golang/prometheus"
33-
uberzap "go.uber.org/zap"
3433
"go.uber.org/zap/zapcore"
3534
"google.golang.org/grpc"
3635
healthPb "google.golang.org/grpc/health/grpc_health_v1"
3736
"k8s.io/apimachinery/pkg/runtime/schema"
3837
"k8s.io/apimachinery/pkg/types"
3938
ctrl "sigs.k8s.io/controller-runtime"
4039
"sigs.k8s.io/controller-runtime/pkg/log"
41-
"sigs.k8s.io/controller-runtime/pkg/log/zap"
4240
"sigs.k8s.io/controller-runtime/pkg/manager"
4341
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
4442
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
4543

4644
"sigs.k8s.io/gateway-api-inference-extension/internal/runnable"
45+
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
4746
"sigs.k8s.io/gateway-api-inference-extension/pkg/common"
4847
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
4948
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/config/loader"
@@ -63,7 +62,6 @@ import (
6362
testfilter "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/test/filter"
6463
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
6564
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/env"
66-
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
6765
"sigs.k8s.io/gateway-api-inference-extension/version"
6866
)
6967

@@ -81,7 +79,7 @@ var (
8179
poolName = flag.String("pool-name", runserver.DefaultPoolName, "Name of the InferencePool this Endpoint Picker is associated with.")
8280
poolGroup = flag.String("pool-group", runserver.DefaultPoolGroup, "group of the InferencePool this Endpoint Picker is associated with.")
8381
poolNamespace = flag.String("pool-namespace", runserver.DefaultPoolNamespace, "Namespace of the InferencePool this Endpoint Picker is associated with.")
84-
logVerbosity = flag.Int("v", logging.DEFAULT, "number for the log level verbosity")
82+
logVerbosity = flag.String("log-level", logging.DefaultLogLevel, "log level verbosity, support: debug, info, warn, error, dpanic, panic, fatal")
8583
secureServing = flag.Bool("secure-serving", runserver.DefaultSecureServing, "Enables secure serving. Defaults to true.")
8684
healthChecking = flag.Bool("health-checking", runserver.DefaultHealthChecking, "Enables health checking")
8785
certPath = flag.String("cert-path", runserver.DefaultCertPath, "The path to the certificate for secure serving. The certificate and private key files "+
@@ -134,13 +132,10 @@ func (r *Runner) WithSchedulerConfig(schedulerConfig *scheduling.SchedulerConfig
134132
}
135133

136134
func (r *Runner) Run(ctx context.Context) error {
137-
opts := zap.Options{
138-
Development: true,
139-
}
140-
opts.BindFlags(flag.CommandLine)
141135
flag.Parse()
142-
initLogging(&opts)
143136

137+
// --- set up logger
138+
ctrl.SetLogger(logging.InitLogging(*logVerbosity, true))
144139
setupLog.Info("GIE build", "commit-sha", version.CommitSHA, "build-ref", version.BuildRef)
145140

146141
// Validate flags
@@ -419,24 +414,6 @@ func setupDatalayer() (datalayer.EndpointFactory, error) {
419414
return factory, nil
420415
}
421416

422-
func initLogging(opts *zap.Options) {
423-
// Unless -zap-log-level is explicitly set, use -v
424-
useV := true
425-
flag.Visit(func(f *flag.Flag) {
426-
if f.Name == "zap-log-level" {
427-
useV = false
428-
}
429-
})
430-
if useV {
431-
// See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
432-
lvl := -1 * (*logVerbosity)
433-
opts.Level = uberzap.NewAtomicLevelAt(zapcore.Level(int8(lvl)))
434-
}
435-
436-
logger := zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
437-
ctrl.SetLogger(logger)
438-
}
439-
440417
// registerExtProcServer adds the ExtProcServerRunner as a Runnable to the manager.
441418
func registerExtProcServer(mgr manager.Manager, runner *runserver.ExtProcServerRunner, logger logr.Logger) error {
442419
if err := mgr.Add(runner.AsRunnable(logger)); err != nil {
@@ -474,6 +451,9 @@ func validateFlags() error {
474451
if *modelServerMetricsScheme != "http" && *modelServerMetricsScheme != "https" {
475452
return fmt.Errorf("unexpected %q value for %q flag, it can only be set to 'http' or 'https'", *modelServerMetricsScheme, "model-server-metrics-scheme")
476453
}
454+
if _, err := zapcore.ParseLevel(*logVerbosity); err != nil {
455+
return err
456+
}
477457

478458
return nil
479459
}

config/charts/body-based-routing/templates/bbr.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ spec:
1919
imagePullPolicy: {{ .Values.bbr.image.pullPolicy | default "Always" }}
2020
args:
2121
- "--streaming"
22-
- "--v"
23-
- "3"
22+
- "--log-level"
23+
- "error"
2424
ports:
2525
- containerPort: {{ .Values.bbr.port }}
2626
# health check

config/charts/inferencepool/templates/epp-deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ spec:
3333
{{- end }}
3434
- --zap-encoder
3535
- "json"
36+
- "--log-level"
37+
- "error"
3638
- --config-file
3739
- "/config/{{ .Values.inferenceExtension.pluginsConfigFile }}"
3840
{{- range .Values.inferenceExtension.flags }}

pkg/epp/util/logging/logger.go renamed to internal/telemetry/logging/logger.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,24 @@ package logging
1818

1919
import (
2020
"context"
21+
"os"
2122

2223
"github.com/go-logr/logr"
2324
uberzap "go.uber.org/zap"
25+
"go.uber.org/zap/zapcore"
2426
"sigs.k8s.io/controller-runtime/pkg/log"
2527
"sigs.k8s.io/controller-runtime/pkg/log/zap"
2628
)
2729

30+
const (
31+
DEFAULT = 2
32+
VERBOSE = 3
33+
DEBUG = 4
34+
TRACE = 5
35+
36+
DefaultLogLevel = "error"
37+
)
38+
2839
// NewTestLogger creates a new Zap logger using the dev mode.
2940
func NewTestLogger() logr.Logger {
3041
return zap.New(zap.UseDevMode(true), zap.RawZapOpts(uberzap.AddCaller()))
@@ -34,3 +45,22 @@ func NewTestLogger() logr.Logger {
3445
func NewTestLoggerIntoContext(ctx context.Context) context.Context {
3546
return log.IntoContext(ctx, zap.New(zap.UseDevMode(true), zap.RawZapOpts(uberzap.AddCaller())))
3647
}
48+
49+
// Fatal calls logger.Error followed by os.Exit(1).
50+
//
51+
// This is a utility function and should not be used in production code!
52+
func Fatal(logger logr.Logger, err error, msg string, keysAndValues ...any) {
53+
logger.Error(err, msg, keysAndValues...)
54+
os.Exit(1)
55+
}
56+
57+
func InitLogging(text string, development bool) logr.Logger {
58+
level, _ := zapcore.ParseLevel(text)
59+
opts := &zap.Options{
60+
Development: development,
61+
Level: uberzap.NewAtomicLevelAt(level),
62+
}
63+
logger := zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
64+
65+
return logger
66+
}

pkg/bbr/handlers/request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import (
2424
eppb "github.com/envoyproxy/go-control-plane/envoy/service/ext_proc/v3"
2525
"sigs.k8s.io/controller-runtime/pkg/log"
2626

27+
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
2728
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
28-
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
2929
)
3030

3131
const modelHeader = "X-Gateway-Model-Name"

pkg/bbr/handlers/request_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ import (
2929
metricsutils "k8s.io/component-base/metrics/testutil"
3030
crmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
3131

32+
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
3233
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
33-
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
3434
)
3535

3636
func TestHandleRequestBody(t *testing.T) {

pkg/bbr/handlers/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"google.golang.org/grpc/status"
2828
"sigs.k8s.io/controller-runtime/pkg/log"
2929

30-
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
30+
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
3131
requtil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/request"
3232
)
3333

0 commit comments

Comments
 (0)