@@ -9,20 +9,24 @@ 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
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
22
25
"k8s.io/client-go/rest"
23
26
"k8s.io/component-base/metrics/legacyregistry"
24
27
klog "k8s.io/klog/v2"
25
28
ctrl "sigs.k8s.io/controller-runtime"
29
+ "sigs.k8s.io/controller-runtime/pkg/log/zap"
26
30
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
27
31
)
28
32
69
73
"refreshMetricsInterval" ,
70
74
runserver .DefaultRefreshMetricsInterval ,
71
75
"interval to refresh metrics" )
76
+ logVerbosity = flag .Int ("v" , logging .DEFAULT , "number for the log level verbosity" )
72
77
73
78
scheme = runtime .NewScheme ()
74
79
)
@@ -79,10 +84,13 @@ func init() {
79
84
}
80
85
81
86
func main () {
82
- klog .InitFlags (nil )
87
+ opts := zap.Options {
88
+ Development : true ,
89
+ }
90
+ opts .BindFlags (flag .CommandLine )
83
91
flag .Parse ()
92
+ initLogging (& opts )
84
93
85
- ctrl .SetLogger (klog .TODO ())
86
94
cfg , err := ctrl .GetConfig ()
87
95
if err != nil {
88
96
klog .Fatalf ("Failed to get rest config: %v" , err )
@@ -147,6 +155,25 @@ func main() {
147
155
klog .Info ("All components shutdown" )
148
156
}
149
157
158
+ func initLogging (opts * zap.Options ) {
159
+ // Unless -zap-log-level is explicitly set, use -v
160
+ useV := true
161
+ flag .Visit (func (f * flag.Flag ) {
162
+ if f .Name == "zap-log-level" {
163
+ useV = false
164
+ }
165
+ })
166
+ if useV {
167
+ // See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
168
+ lvl := - 1 * (* logVerbosity )
169
+ opts .Level = uberzap .NewAtomicLevelAt (zapcore .Level (int8 (lvl )))
170
+ }
171
+
172
+ logger := zap .New (zap .UseFlagOptions (opts ))
173
+ ctrl .SetLogger (logger )
174
+ klog .SetLogger (logger )
175
+ }
176
+
150
177
// startHealthServer starts the gRPC health probe server in a goroutine.
151
178
func startHealthServer (ds * backend.K8sDatastore , port int ) * grpc.Server {
152
179
svr := grpc .NewServer ()
0 commit comments