Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/bbr/health.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
healthPb "google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/status"

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

type healthServer struct {
Expand Down
27 changes: 5 additions & 22 deletions cmd/bbr/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import (
"os"

"github.com/go-logr/logr"
uberzap "go.uber.org/zap"
"go.uber.org/zap/zapcore"
"google.golang.org/grpc"
healthPb "google.golang.org/grpc/health/grpc_health_v1"
ctrl "sigs.k8s.io/controller-runtime"
Expand All @@ -33,9 +31,9 @@ import (
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"

"sigs.k8s.io/gateway-api-inference-extension/internal/runnable"
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/server"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

var (
Expand All @@ -51,7 +49,7 @@ var (
"metrics-port", 9090, "The metrics port")
streaming = flag.Bool(
"streaming", false, "Enables streaming support for Envoy full-duplex streaming mode")
logVerbosity = flag.Int("v", logging.DEFAULT, "number for the log level verbosity")
logVerbosity = flag.Int("log-verbosity", logging.DEFAULT, "number for the log level verbosity, higher verbosity means more (and less important) logs will be generated")

setupLog = ctrl.Log.WithName("setup")
)
Expand All @@ -66,7 +64,9 @@ func run() error {
opts := zap.Options{Development: true}
opts.BindFlags(flag.CommandLine)
flag.Parse()
initLogging(&opts)

// --- set up logger
ctrl.SetLogger(logging.InitLogging(&opts))

// Print all flag values
flags := make(map[string]any)
Expand Down Expand Up @@ -138,20 +138,3 @@ func registerHealthServer(mgr manager.Manager, logger logr.Logger, port int) err
}
return nil
}

func initLogging(opts *zap.Options) {
useV := true
flag.Visit(func(f *flag.Flag) {
if f.Name == "zap-log-level" {
useV = false
}
})
if useV {
// See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
lvl := -1 * (*logVerbosity)
opts.Level = uberzap.NewAtomicLevelAt(zapcore.Level(int8(lvl)))
}

logger := zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
ctrl.SetLogger(logger)
}
2 changes: 1 addition & 1 deletion cmd/epp/runner/health.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ import (
healthPb "google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/status"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

type healthServer struct {
Expand Down
29 changes: 3 additions & 26 deletions cmd/epp/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ import (

"github.com/go-logr/logr"
"github.com/prometheus/client_golang/prometheus"
uberzap "go.uber.org/zap"
"go.uber.org/zap/zapcore"
"google.golang.org/grpc"
healthPb "google.golang.org/grpc/health/grpc_health_v1"
"k8s.io/apimachinery/pkg/runtime/schema"
Expand All @@ -44,6 +42,7 @@ import (
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"

"sigs.k8s.io/gateway-api-inference-extension/internal/runnable"
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/common"
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/config/loader"
Expand All @@ -63,7 +62,6 @@ import (
testfilter "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/test/filter"
runserver "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/server"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/env"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
"sigs.k8s.io/gateway-api-inference-extension/version"
)

Expand All @@ -81,7 +79,6 @@ var (
poolName = flag.String("pool-name", runserver.DefaultPoolName, "Name of the InferencePool this Endpoint Picker is associated with.")
poolGroup = flag.String("pool-group", runserver.DefaultPoolGroup, "group of the InferencePool this Endpoint Picker is associated with.")
poolNamespace = flag.String("pool-namespace", "", "Namespace of the InferencePool this Endpoint Picker is associated with.")
logVerbosity = flag.Int("v", logging.DEFAULT, "number for the log level verbosity")
secureServing = flag.Bool("secure-serving", runserver.DefaultSecureServing, "Enables secure serving. Defaults to true.")
healthChecking = flag.Bool("health-checking", runserver.DefaultHealthChecking, "Enables health checking")
certPath = flag.String("cert-path", runserver.DefaultCertPath, "The path to the certificate for secure serving. The certificate and private key files "+
Expand Down Expand Up @@ -134,13 +131,11 @@ func (r *Runner) WithSchedulerConfig(schedulerConfig *scheduling.SchedulerConfig
}

func (r *Runner) Run(ctx context.Context) error {
opts := zap.Options{
Development: true,
}
opts := zap.Options{Development: true}
opts.BindFlags(flag.CommandLine)
flag.Parse()
initLogging(&opts)

ctrl.SetLogger(logging.InitLogging(&opts))
setupLog.Info("GIE build", "commit-sha", version.CommitSHA, "build-ref", version.BuildRef)

// Validate flags
Expand Down Expand Up @@ -430,24 +425,6 @@ func setupDatalayer() (datalayer.EndpointFactory, error) {
return factory, nil
}

func initLogging(opts *zap.Options) {
// Unless -zap-log-level is explicitly set, use -v
useV := true
flag.Visit(func(f *flag.Flag) {
if f.Name == "zap-log-level" {
useV = false
}
})
if useV {
// See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/log/zap#Options.Level
lvl := -1 * (*logVerbosity)
opts.Level = uberzap.NewAtomicLevelAt(zapcore.Level(int8(lvl)))
}

logger := zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
ctrl.SetLogger(logger)
}

// registerExtProcServer adds the ExtProcServerRunner as a Runnable to the manager.
func registerExtProcServer(mgr manager.Manager, runner *runserver.ExtProcServerRunner, logger logr.Logger) error {
if err := mgr.Add(runner.AsRunnable(logger)); err != nil {
Expand Down
4 changes: 2 additions & 2 deletions config/charts/body-based-routing/templates/bbr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ spec:
imagePullPolicy: {{ .Values.bbr.image.pullPolicy | default "Always" }}
args:
- "--streaming"
- "--v"
- "3"
- "--zap-log-level"
- "info"
ports:
- containerPort: {{ .Values.bbr.port }}
# health check
Expand Down
2 changes: 2 additions & 0 deletions config/charts/inferencepool/templates/epp-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ spec:
{{- end }}
- --zap-encoder
- "json"
- --zap-log-level
- "info"
- --config-file
- "/config/{{ .Values.inferenceExtension.pluginsConfigFile }}"
{{- if eq (.Values.inferencePool.modelServerType | default "vllm") "triton-tensorrt-llm" }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,21 @@ package logging

import (
"context"
"os"

"github.com/go-logr/logr"
uberzap "go.uber.org/zap"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
)

const (
DEFAULT = 2
VERBOSE = 3
DEBUG = 4
TRACE = 5
)

// NewTestLogger creates a new Zap logger using the dev mode.
func NewTestLogger() logr.Logger {
return zap.New(zap.UseDevMode(true), zap.RawZapOpts(uberzap.AddCaller()))
Expand All @@ -34,3 +42,15 @@ func NewTestLogger() logr.Logger {
func NewTestLoggerIntoContext(ctx context.Context) context.Context {
return log.IntoContext(ctx, zap.New(zap.UseDevMode(true), zap.RawZapOpts(uberzap.AddCaller())))
}

// Fatal calls logger.Error followed by os.Exit(1).
//
// This is a utility function and should not be used in production code!
func Fatal(logger logr.Logger, err error, msg string, keysAndValues ...any) {
logger.Error(err, msg, keysAndValues...)
os.Exit(1)
}

func InitLogging(opts *zap.Options) logr.Logger {
return zap.New(zap.UseFlagOptions(opts), zap.RawZapOpts(uberzap.AddCaller()))
}
2 changes: 1 addition & 1 deletion pkg/bbr/handlers/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import (
eppb "github.com/envoyproxy/go-control-plane/envoy/service/ext_proc/v3"
"sigs.k8s.io/controller-runtime/pkg/log"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

const modelHeader = "X-Gateway-Model-Name"
Expand Down
2 changes: 1 addition & 1 deletion pkg/bbr/handlers/request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ import (
metricsutils "k8s.io/component-base/metrics/testutil"
crmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/bbr/metrics"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

func TestHandleRequestBody(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/bbr/handlers/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (
"google.golang.org/grpc/status"
"sigs.k8s.io/controller-runtime/pkg/log"

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

Expand Down
2 changes: 1 addition & 1 deletion pkg/bbr/handlers/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (
"google.golang.org/protobuf/testing/protocmp"
"sigs.k8s.io/controller-runtime/pkg/log"

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

func TestProcessRequestBody(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/backend/metrics/fake.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ import (
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/log"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

// FakePodMetrics is an implementation of PodMetrics that doesn't run the async refresh loop.
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/backend/metrics/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import (
"github.com/go-logr/logr"
"sigs.k8s.io/controller-runtime/pkg/log"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/backend/metrics/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ import (
"google.golang.org/protobuf/proto"
"k8s.io/apimachinery/pkg/types"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

// --- Test Helpers ---
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/backend/metrics/pod_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/config/loader/configloader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ import (
"k8s.io/utils/ptr"

configapi "sigs.k8s.io/gateway-api-inference-extension/apix/config/v1alpha1"
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/config"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/plugins"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/multi/prefix"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/picker"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/framework/plugins/profile"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/scheduling/types"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
"sigs.k8s.io/gateway-api-inference-extension/test/utils"
)

Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/controller/inferenceobjective_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/predicate"

"sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/common"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

type InferenceObjectiveReconciler struct {
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/controller/inferencepool_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ import (

v1 "sigs.k8s.io/gateway-api-inference-extension/api/v1"
"sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/common"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

// InferencePoolReconciler utilizes the controller runtime to reconcile Instance Gateway resources
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/controller/pod_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/predicate"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
podutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/pod"
)

Expand Down
4 changes: 2 additions & 2 deletions pkg/epp/datalayer/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ package datalayer
import (
"context"
"errors"

"sync"
"time"

"sigs.k8s.io/controller-runtime/pkg/log"

"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
"sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
)

// TODO:
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/datalayer/metrics/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ import (
"github.com/go-logr/logr"
"sigs.k8s.io/controller-runtime/pkg/log"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/metrics"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

const debugPrintInterval = 5 * time.Second
Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/datastore/datastore.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ import (

v1 "sigs.k8s.io/gateway-api-inference-extension/api/v1"
"sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
dlmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer/metrics"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
podutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/pod"
)

Expand Down
2 changes: 1 addition & 1 deletion pkg/epp/flowcontrol/controller/internal/processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import (
"k8s.io/utils/clock"
"sigs.k8s.io/controller-runtime/pkg/log"

logutil "sigs.k8s.io/gateway-api-inference-extension/internal/telemetry/logging"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/flowcontrol/contracts"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/flowcontrol/framework"
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/flowcontrol/types"
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
)

// maxCleanupWorkers caps the number of concurrent workers for background cleanup tasks. This prevents a single shard
Expand Down
Loading