Skip to content

Commit f5cbcbb

Browse files
authored
Merge pull request #6457 from linyao22/scheduler-estimator-json-logging
JSON logging support for Karmada scheduler-estimator
2 parents 33d46e5 + 6eb2e71 commit f5cbcbb

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

artifacts/deploy/karmada-scheduler-estimator.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ spec:
4040
- --grpc-client-ca-file=/etc/karmada/pki/server/ca.crt
4141
- --metrics-bind-address=$(POD_IP):8080
4242
- --health-probe-bind-address=$(POD_IP):10351
43+
- --logging-format=json
4344
livenessProbe:
4445
httpGet:
4546
path: /healthz

cmd/scheduler-estimator/app/scheduler-estimator.go

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,15 @@ import (
3131
"k8s.io/client-go/tools/clientcmd"
3232
"k8s.io/client-go/util/flowcontrol"
3333
cliflag "k8s.io/component-base/cli/flag"
34+
"k8s.io/component-base/logs"
35+
logsv1 "k8s.io/component-base/logs/api/v1"
3436
"k8s.io/component-base/term"
3537
"k8s.io/klog/v2"
3638
ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
3739

3840
"github.com/karmada-io/karmada/cmd/scheduler-estimator/app/options"
3941
"github.com/karmada-io/karmada/pkg/estimator/server"
42+
"github.com/karmada-io/karmada/pkg/features"
4043
versionmetrics "github.com/karmada-io/karmada/pkg/metrics"
4144
"github.com/karmada-io/karmada/pkg/sharedcli"
4245
"github.com/karmada-io/karmada/pkg/sharedcli/klogflag"
@@ -77,12 +80,29 @@ const (
7780

7881
// NewSchedulerEstimatorCommand creates a *cobra.Command object with default parameters
7982
func NewSchedulerEstimatorCommand(ctx context.Context) *cobra.Command {
83+
logConfig := logsv1.NewLoggingConfiguration()
84+
fss := cliflag.NamedFlagSets{}
85+
86+
logsFlagSet := fss.FlagSet("logs")
87+
logs.AddFlags(logsFlagSet, logs.SkipLoggingConfigurationFlags())
88+
logsv1.AddFlags(logConfig, logsFlagSet)
89+
klogflag.Add(logsFlagSet)
90+
91+
genericFlagSet := fss.FlagSet("generic")
8092
opts := options.NewOptions()
93+
opts.AddFlags(genericFlagSet)
8194

8295
cmd := &cobra.Command{
8396
Use: names.KarmadaSchedulerEstimatorComponentName,
84-
Long: `The karmada-scheduler-estimator runs an accurate scheduler estimator of a cluster. It
97+
Long: `The karmada-scheduler-estimator runs an accurate scheduler estimator of a cluster. It
8598
provides the scheduler with more accurate cluster resource information.`,
99+
PersistentPreRunE: func(_ *cobra.Command, _ []string) error {
100+
if err := logsv1.ValidateAndApply(logConfig, features.FeatureGate); err != nil {
101+
return err
102+
}
103+
logs.InitLogs()
104+
return nil
105+
},
86106
RunE: func(_ *cobra.Command, _ []string) error {
87107
// validate options
88108
if errs := opts.Validate(); len(errs) != 0 {
@@ -95,15 +115,6 @@ provides the scheduler with more accurate cluster resource information.`,
95115
},
96116
}
97117

98-
fss := cliflag.NamedFlagSets{}
99-
100-
genericFlagSet := fss.FlagSet("generic")
101-
opts.AddFlags(genericFlagSet)
102-
103-
// Set klog flags
104-
logsFlagSet := fss.FlagSet("logs")
105-
klogflag.Add(logsFlagSet)
106-
107118
cmd.AddCommand(sharedcommand.NewCmdVersion(names.KarmadaSchedulerEstimatorComponentName))
108119
cmd.Flags().AddFlagSet(genericFlagSet)
109120
cmd.Flags().AddFlagSet(logsFlagSet)

cmd/scheduler-estimator/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"os"
2121

2222
"k8s.io/component-base/cli"
23+
"k8s.io/component-base/logs"
2324
_ "k8s.io/component-base/logs/json/register" // for JSON log format registration
2425
controllerruntime "sigs.k8s.io/controller-runtime"
2526

@@ -30,5 +31,7 @@ func main() {
3031
ctx := controllerruntime.SetupSignalHandler()
3132
cmd := app.NewSchedulerEstimatorCommand(ctx)
3233
code := cli.Run(cmd)
34+
// Ensure any buffered log entries are flushed
35+
logs.FlushLogs()
3336
os.Exit(code)
3437
}

0 commit comments

Comments
 (0)