@@ -9,13 +9,16 @@ import (
9
9
"strconv"
10
10
11
11
"github.com/prometheus/client_golang/prometheus/promhttp"
12
+ uberzap "go.uber.org/zap"
13
+ "go.uber.org/zap/zapcore"
12
14
"google.golang.org/grpc"
13
15
healthPb "google.golang.org/grpc/health/grpc_health_v1"
14
16
"inference.networking.x-k8s.io/gateway-api-inference-extension/api/v1alpha1"
15
17
"inference.networking.x-k8s.io/gateway-api-inference-extension/pkg/ext-proc/backend"
16
18
"inference.networking.x-k8s.io/gateway-api-inference-extension/pkg/ext-proc/backend/vllm"
17
19
"inference.networking.x-k8s.io/gateway-api-inference-extension/pkg/ext-proc/metrics"
18
20
runserver "inference.networking.x-k8s.io/gateway-api-inference-extension/pkg/ext-proc/server"
21
+ "inference.networking.x-k8s.io/gateway-api-inference-extension/pkg/ext-proc/util/logging"
19
22
"k8s.io/apimachinery/pkg/runtime"
20
23
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
21
24
"k8s.io/client-go/kubernetes"
@@ -24,6 +27,7 @@ import (
24
27
"k8s.io/component-base/metrics/legacyregistry"
25
28
klog "k8s.io/klog/v2"
26
29
ctrl "sigs.k8s.io/controller-runtime"
30
+ "sigs.k8s.io/controller-runtime/pkg/log/zap"
27
31
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
28
32
)
29
33
62
66
"refreshMetricsInterval" ,
63
67
runserver .DefaultRefreshMetricsInterval ,
64
68
"interval to refresh metrics" )
69
+ logVerbosity = flag .Int ("v" , logging .DEFAULT , "number for the log level verbosity" )
65
70
66
71
scheme = runtime .NewScheme ()
67
72
)
@@ -72,10 +77,13 @@ func init() {
72
77
}
73
78
74
79
func main () {
75
- klog .InitFlags (nil )
80
+ opts := zap.Options {
81
+ Development : true ,
82
+ }
83
+ opts .BindFlags (flag .CommandLine )
76
84
flag .Parse ()
85
+ initLogging (& opts )
77
86
78
- ctrl .SetLogger (klog .TODO ())
79
87
cfg , err := ctrl .GetConfig ()
80
88
if err != nil {
81
89
klog .Fatalf ("Failed to get rest config: %v" , err )
@@ -141,6 +149,25 @@ func main() {
141
149
klog .Info ("All components shutdown" )
142
150
}
143
151
152
+ func initLogging (opts * zap.Options ) {
153
+ // Unless -zap-log-level is explicitly set, use -v
154
+ useV := true
155
+ flag .Visit (func (f * flag.Flag ) {
156
+ if f .Name == "zap-log-level" {
157
+ useV = false
158
+ }
159
+ })
160
+ if useV {
161
+ // See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
162
+ lvl := - 1 * (* logVerbosity )
163
+ opts .Level = uberzap .NewAtomicLevelAt (zapcore .Level (int8 (lvl )))
164
+ }
165
+
166
+ logger := zap .New (zap .UseFlagOptions (opts ), zap .RawZapOpts (uberzap .AddCaller ()))
167
+ ctrl .SetLogger (logger )
168
+ klog .SetLogger (logger )
169
+ }
170
+
144
171
// startHealthServer starts the gRPC health probe server in a goroutine.
145
172
func startHealthServer (ds * backend.K8sDatastore , port int ) * grpc.Server {
146
173
svr := grpc .NewServer ()
0 commit comments