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
"k8s.io/apimachinery/pkg/runtime"
@@ -18,12 +20,14 @@ import (
18
20
"k8s.io/component-base/metrics/legacyregistry"
19
21
klog "k8s.io/klog/v2"
20
22
ctrl "sigs.k8s.io/controller-runtime"
23
+ "sigs.k8s.io/controller-runtime/pkg/log/zap"
21
24
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
22
25
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha1"
23
26
"sigs.k8s.io/gateway-api-inference-extension/pkg/ext-proc/backend"
24
27
"sigs.k8s.io/gateway-api-inference-extension/pkg/ext-proc/backend/vllm"
25
28
"sigs.k8s.io/gateway-api-inference-extension/pkg/ext-proc/metrics"
26
29
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/ext-proc/server"
30
+ "sigs.k8s.io/gateway-api-inference-extension/pkg/ext-proc/util/logging"
27
31
)
28
32
29
33
const (
73
77
"refreshPrometheusMetricsInterval" ,
74
78
runserver .DefaultRefreshPrometheusMetricsInterval ,
75
79
"interval to flush prometheus metrics" )
80
+ logVerbosity = flag .Int ("v" , logging .DEFAULT , "number for the log level verbosity" )
76
81
77
82
scheme = runtime .NewScheme ()
78
83
)
@@ -83,10 +88,13 @@ func init() {
83
88
}
84
89
85
90
func main () {
86
- klog .InitFlags (nil )
91
+ opts := zap.Options {
92
+ Development : true ,
93
+ }
94
+ opts .BindFlags (flag .CommandLine )
87
95
flag .Parse ()
96
+ initLogging (& opts )
88
97
89
- ctrl .SetLogger (klog .TODO ())
90
98
cfg , err := ctrl .GetConfig ()
91
99
if err != nil {
92
100
klog .Fatalf ("Failed to get rest config: %v" , err )
@@ -152,6 +160,25 @@ func main() {
152
160
klog .Info ("All components shutdown" )
153
161
}
154
162
163
+ func initLogging (opts * zap.Options ) {
164
+ // Unless -zap-log-level is explicitly set, use -v
165
+ useV := true
166
+ flag .Visit (func (f * flag.Flag ) {
167
+ if f .Name == "zap-log-level" {
168
+ useV = false
169
+ }
170
+ })
171
+ if useV {
172
+ // See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
173
+ lvl := - 1 * (* logVerbosity )
174
+ opts .Level = uberzap .NewAtomicLevelAt (zapcore .Level (int8 (lvl )))
175
+ }
176
+
177
+ logger := zap .New (zap .UseFlagOptions (opts ), zap .RawZapOpts (uberzap .AddCaller ()))
178
+ ctrl .SetLogger (logger )
179
+ klog .SetLogger (logger )
180
+ }
181
+
155
182
// startHealthServer starts the gRPC health probe server in a goroutine.
156
183
func startHealthServer (ds * backend.K8sDatastore , port int ) * grpc.Server {
157
184
svr := grpc .NewServer ()
0 commit comments