K8s: Logging improvements (#76646)

This commit is contained in:
Todd Treece
2023-10-17 10:44:23 -04:00
committed by GitHub
parent 797a3c57af
commit ec7ed11ea1
4 changed files with 24 additions and 22 deletions
+9 -6
View File
@@ -10,11 +10,12 @@ import (
var _ logr.LogSink = (*logAdapter)(nil)
type logAdapter struct {
log log.Logger
level int
log log.Logger
}
func newLogAdapter() *logAdapter {
return &logAdapter{log: log.New("k8s.apiserver")}
func newLogAdapter(level int) *logAdapter {
return &logAdapter{log: log.New("grafana-apiserver"), level: level}
}
func (l *logAdapter) WithName(name string) logr.LogSink {
@@ -28,19 +29,21 @@ func (l *logAdapter) WithValues(keysAndValues ...any) logr.LogSink {
}
func (l *logAdapter) Init(_ logr.RuntimeInfo) {
// TODO: shrug emoji
// we aren't using the logr library for logging, so this is a no-op
}
func (l *logAdapter) Enabled(level int) bool {
return level <= 5
return level <= l.level
}
func (l *logAdapter) Info(level int, msg string, keysAndValues ...any) {
msg = strings.TrimSpace(msg)
if level < 1 {
// kubernetes uses level 0 for critical messages, so map that to Info
if level == 0 {
l.log.Info(msg, keysAndValues...)
return
}
// every other level is mapped to Debug
l.log.Debug(msg, keysAndValues...)
}
+13 -12
View File
@@ -91,10 +91,11 @@ type RestConfigProvider interface {
type service struct {
*services.BasicService
restConfig *clientrest.Config
etcd_servers []string
restConfig *clientrest.Config
etcdServers []string
enabled bool
logLevel int
dataPath string
stopCh chan struct{}
stoppedCh chan error
@@ -112,13 +113,14 @@ func ProvideService(
authz authorizer.Authorizer,
) (*service, error) {
s := &service{
etcd_servers: cfg.SectionWithEnvOverrides("grafana-apiserver").Key("etcd_servers").Strings(","),
enabled: cfg.IsFeatureToggleEnabled(featuremgmt.FlagGrafanaAPIServer),
rr: rr,
dataPath: path.Join(cfg.DataPath, "k8s"),
stopCh: make(chan struct{}),
builders: []APIGroupBuilder{},
authorizer: authz,
logLevel: cfg.SectionWithEnvOverrides("grafana-apiserver").Key("log_level").MustInt(10),
etcdServers: cfg.SectionWithEnvOverrides("grafana-apiserver").Key("etcd_servers").Strings(","),
enabled: cfg.IsFeatureToggleEnabled(featuremgmt.FlagGrafanaAPIServer),
rr: rr,
dataPath: path.Join(cfg.DataPath, "k8s"),
stopCh: make(chan struct{}),
builders: []APIGroupBuilder{},
authorizer: authz,
}
// This will be used when running as a dskit service
@@ -171,15 +173,14 @@ func (s *service) RegisterAPI(builder APIGroupBuilder) {
}
func (s *service) start(ctx context.Context) error {
logger := logr.New(newLogAdapter())
logger.V(9)
logger := logr.New(newLogAdapter(s.logLevel))
klog.SetLoggerWithOptions(logger, klog.ContextualLogger(true))
o := options.NewRecommendedOptions("", unstructured.UnstructuredJSONScheme)
o.SecureServing.BindPort = 6443
o.Authentication.RemoteKubeConfigFileOptional = true
o.Authorization.RemoteKubeConfigFileOptional = true
o.Etcd.StorageConfig.Transport.ServerList = s.etcd_servers
o.Etcd.StorageConfig.Transport.ServerList = s.etcdServers
o.Admission = nil
o.CoreAPI = nil