mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 03:38:43 +00:00
replace goKitLogger in rules and server
This commit is contained in:
parent
5da3c988dd
commit
47ae005e7e
7 changed files with 48 additions and 78 deletions
cmd
pkg
|
@ -64,14 +64,6 @@ func main() {
|
|||
stdlog.Fatal(err)
|
||||
}
|
||||
|
||||
// We're currently migrating our logging library from go-kit to slog.
|
||||
// The go-kit logger is being removed in small PRs. For now, we are creating 2 loggers to avoid breaking changes and
|
||||
// to have a smooth transition.
|
||||
goKitLogger, err := logging.NewLogger(logConfig)
|
||||
if err != nil {
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
|
||||
goruntime.SetMaxProcs(logger)
|
||||
goruntime.SetMemLimit(logger, memlimitRatio)
|
||||
|
||||
|
@ -96,7 +88,7 @@ func main() {
|
|||
w.Write([]byte(`{"status":"up"}`))
|
||||
})
|
||||
|
||||
srv, err := server.NewServer(goKitLogger, &serverConfig, mux)
|
||||
srv, err := server.NewServer(logger, &serverConfig, mux)
|
||||
if err != nil {
|
||||
logger.Error("failed to create web server", "err", err)
|
||||
os.Exit(1)
|
||||
|
|
|
@ -382,7 +382,7 @@ func run(fs *flag.FlagSet) int {
|
|||
|
||||
var po *prometheuscontroller.Operator
|
||||
if prometheusSupported {
|
||||
po, err = prometheuscontroller.New(ctx, restConfig, cfg, goKitLogger, logger, r, promControllerOptions...)
|
||||
po, err = prometheuscontroller.New(ctx, restConfig, cfg, logger, r, promControllerOptions...)
|
||||
if err != nil {
|
||||
logger.Error("instantiating prometheus controller failed", "err", err)
|
||||
cancel()
|
||||
|
@ -444,7 +444,7 @@ func run(fs *flag.FlagSet) int {
|
|||
|
||||
var pao *prometheusagentcontroller.Operator
|
||||
if prometheusAgentSupported {
|
||||
pao, err = prometheusagentcontroller.New(ctx, restConfig, cfg, goKitLogger, logger, r, promAgentControllerOptions...)
|
||||
pao, err = prometheusagentcontroller.New(ctx, restConfig, cfg, logger, r, promAgentControllerOptions...)
|
||||
if err != nil {
|
||||
logger.Error("instantiating prometheus-agent controller failed", "err", err)
|
||||
cancel()
|
||||
|
@ -516,7 +516,7 @@ func run(fs *flag.FlagSet) int {
|
|||
|
||||
var to *thanoscontroller.Operator
|
||||
if thanosRulerSupported {
|
||||
to, err = thanoscontroller.New(ctx, restConfig, cfg, goKitLogger, logger, r, thanosControllerOptions...)
|
||||
to, err = thanoscontroller.New(ctx, restConfig, cfg, logger, r, thanosControllerOptions...)
|
||||
if err != nil {
|
||||
logger.Error("instantiating thanos controller failed", "err", err)
|
||||
cancel()
|
||||
|
@ -575,7 +575,7 @@ func run(fs *flag.FlagSet) int {
|
|||
w.WriteHeader(http.StatusOK)
|
||||
}))
|
||||
|
||||
srv, err := server.NewServer(goKitLogger, &serverConfig, mux)
|
||||
srv, err := server.NewServer(logger, &serverConfig, mux)
|
||||
if err != nil {
|
||||
logger.Error("failed to create web server", "err", err)
|
||||
cancel()
|
||||
|
|
|
@ -22,7 +22,6 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-kit/log"
|
||||
"github.com/mitchellh/hashstructure"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
|
@ -66,11 +65,8 @@ type Operator struct {
|
|||
mclient monitoringclient.Interface
|
||||
|
||||
logger *slog.Logger
|
||||
// We're currently migrating our logging library from go-kit to slog.
|
||||
// The go-kit logger is being removed in small PRs. For now, we are creating 2 loggers to avoid breaking changes and
|
||||
// to have a smooth transition.
|
||||
goKitLogger log.Logger
|
||||
accessor *operator.Accessor
|
||||
|
||||
accessor *operator.Accessor
|
||||
|
||||
controllerID string
|
||||
|
||||
|
@ -130,7 +126,7 @@ func WithStorageClassValidation() ControllerOption {
|
|||
}
|
||||
|
||||
// New creates a new controller.
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitLogger log.Logger, logger *slog.Logger, r prometheus.Registerer, options ...ControllerOption) (*Operator, error) {
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, logger *slog.Logger, r prometheus.Registerer, options ...ControllerOption) (*Operator, error) {
|
||||
logger = logger.With("component", controllerName)
|
||||
|
||||
client, err := kubernetes.NewForConfig(restConfig)
|
||||
|
@ -152,11 +148,10 @@ func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitL
|
|||
r = prometheus.WrapRegistererWith(prometheus.Labels{"controller": "prometheus-agent"}, r)
|
||||
|
||||
o := &Operator{
|
||||
kclient: client,
|
||||
mdClient: mdClient,
|
||||
mclient: mclient,
|
||||
logger: logger,
|
||||
goKitLogger: goKitLogger,
|
||||
kclient: client,
|
||||
mdClient: mdClient,
|
||||
mclient: mclient,
|
||||
logger: logger,
|
||||
config: prompkg.Config{
|
||||
LocalHost: c.LocalHost,
|
||||
ReloaderConfig: c.ReloaderConfig,
|
||||
|
|
|
@ -23,7 +23,6 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-kit/log"
|
||||
"github.com/mitchellh/hashstructure"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
|
@ -66,13 +65,9 @@ type Operator struct {
|
|||
mdClient metadata.Interface
|
||||
mclient monitoringclient.Interface
|
||||
|
||||
// // We're currently migrating our logging library from go-kit to slog.
|
||||
// The go-kit logger is being removed in small PRs. For now, we are creating 2 loggers to avoid breaking changes and
|
||||
// to have a smooth transition.
|
||||
goKitLogger log.Logger
|
||||
logger *slog.Logger
|
||||
accessor *operator.Accessor
|
||||
config prompkg.Config
|
||||
logger *slog.Logger
|
||||
accessor *operator.Accessor
|
||||
config prompkg.Config
|
||||
|
||||
controllerID string
|
||||
|
||||
|
@ -127,8 +122,7 @@ func WithStorageClassValidation() ControllerOption {
|
|||
}
|
||||
|
||||
// New creates a new controller.
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitLogger log.Logger, logger *slog.Logger, r prometheus.Registerer, opts ...ControllerOption) (*Operator, error) {
|
||||
goKitLogger = log.With(goKitLogger, "component", controllerName)
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, logger *slog.Logger, r prometheus.Registerer, opts ...ControllerOption) (*Operator, error) {
|
||||
logger = logger.With("component", controllerName)
|
||||
|
||||
client, err := kubernetes.NewForConfig(restConfig)
|
||||
|
@ -150,12 +144,11 @@ func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitL
|
|||
r = prometheus.WrapRegistererWith(prometheus.Labels{"controller": "prometheus"}, r)
|
||||
|
||||
o := &Operator{
|
||||
kclient: client,
|
||||
mdClient: mdClient,
|
||||
mclient: mclient,
|
||||
goKitLogger: goKitLogger,
|
||||
logger: logger,
|
||||
accessor: operator.NewAccessor(logger),
|
||||
kclient: client,
|
||||
mdClient: mdClient,
|
||||
mclient: mclient,
|
||||
logger: logger,
|
||||
accessor: operator.NewAccessor(logger),
|
||||
|
||||
config: prompkg.Config{
|
||||
LocalHost: c.LocalHost,
|
||||
|
|
|
@ -21,7 +21,6 @@ import (
|
|||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/go-kit/log/level"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
|
@ -96,8 +95,7 @@ func (c *Operator) createOrUpdateRuleConfigMaps(ctx context.Context, p *monitori
|
|||
|
||||
equal := reflect.DeepEqual(newRules, currentRules)
|
||||
if equal && len(currentConfigMaps) != 0 {
|
||||
level.Debug(c.goKitLogger).Log(
|
||||
"msg", "no PrometheusRule changes",
|
||||
c.logger.Debug("no PrometheusRule changes",
|
||||
"namespace", p.Namespace,
|
||||
"prometheus", p.Name,
|
||||
)
|
||||
|
@ -124,8 +122,7 @@ func (c *Operator) createOrUpdateRuleConfigMaps(ctx context.Context, p *monitori
|
|||
}
|
||||
|
||||
if len(currentConfigMaps) == 0 {
|
||||
level.Debug(c.goKitLogger).Log(
|
||||
"msg", "no PrometheusRule configmap found, creating new one",
|
||||
c.logger.Debug("no PrometheusRule configmap found, creating new one",
|
||||
"namespace", p.Namespace,
|
||||
"prometheus", p.Name,
|
||||
)
|
||||
|
@ -147,8 +144,7 @@ func (c *Operator) createOrUpdateRuleConfigMaps(ctx context.Context, p *monitori
|
|||
}
|
||||
}
|
||||
|
||||
level.Debug(c.goKitLogger).Log(
|
||||
"msg", "updating PrometheusRule",
|
||||
c.logger.Debug("updating PrometheusRule",
|
||||
"namespace", p.Namespace,
|
||||
"prometheus", p.Name,
|
||||
)
|
||||
|
@ -184,8 +180,7 @@ func (c *Operator) selectRuleNamespaces(p *monitoringv1.Prometheus) ([]string, e
|
|||
}
|
||||
}
|
||||
|
||||
level.Debug(c.goKitLogger).Log(
|
||||
"msg", "selected RuleNamespaces",
|
||||
c.logger.Debug("selected RuleNamespaces",
|
||||
"namespaces", strings.Join(namespaces, ","),
|
||||
"namespace", p.Namespace,
|
||||
"prometheus", p.Name,
|
||||
|
|
|
@ -19,15 +19,14 @@ import (
|
|||
"crypto/tls"
|
||||
"flag"
|
||||
"fmt"
|
||||
stdlog "log"
|
||||
"log/slog"
|
||||
"math"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/go-kit/log"
|
||||
"github.com/go-kit/log/level"
|
||||
"k8s.io/apiserver/pkg/server/dynamiccertificates"
|
||||
kflag "k8s.io/component-base/cli/flag"
|
||||
|
||||
|
@ -105,9 +104,14 @@ type TLSConfig struct {
|
|||
|
||||
// Convert returns a *tls.Config from the given TLSConfig.
|
||||
// It returns nil when TLS isn't enabled/configured.
|
||||
func (tc *TLSConfig) Convert(logger log.Logger) (*tls.Config, error) {
|
||||
func (tc *TLSConfig) Convert(logger *slog.Logger) (*tls.Config, error) {
|
||||
if logger == nil {
|
||||
logger = log.NewNopLogger()
|
||||
logger = slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
|
||||
// slog level math.MaxInt means no logging
|
||||
// We would like to use the slog buil-in No-op level once it is available
|
||||
// More: https://github.com/golang/go/issues/62005
|
||||
Level: slog.Level(math.MaxInt),
|
||||
}))
|
||||
}
|
||||
|
||||
if !tc.Enabled {
|
||||
|
@ -120,7 +124,7 @@ func (tc *TLSConfig) Convert(logger log.Logger) (*tls.Config, error) {
|
|||
}
|
||||
|
||||
// Disable TLS.
|
||||
level.Warn(logger).Log("msg", "server key and certificate not provided, TLS disabled")
|
||||
logger.Warn("server key and certificate not provided, TLS disabled")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
@ -157,15 +161,15 @@ func (tc *TLSConfig) Convert(logger log.Logger) (*tls.Config, error) {
|
|||
info, err := os.Stat(tc.ClientCAFile)
|
||||
switch {
|
||||
case err != nil:
|
||||
level.Warn(logger).Log("msg", "server TLS client verification disabled", "client_ca_file", tc.ClientCAFile, "err", err)
|
||||
logger.Warn("server TLS client verification disabled", "client_ca_file", tc.ClientCAFile, "err", err)
|
||||
|
||||
case !info.Mode().IsRegular():
|
||||
level.Warn(logger).Log("msg", "server TLS client verification disabled", "client_ca_file", tc.ClientCAFile, "file_mode", info.Mode().String())
|
||||
logger.Warn("server TLS client verification disabled", "client_ca_file", tc.ClientCAFile, "file_mode", info.Mode().String())
|
||||
|
||||
default:
|
||||
// The client CA content will be checked by the cert controller.
|
||||
tlsCfg.ClientAuth = tls.RequireAndVerifyClientCert
|
||||
level.Info(logger).Log("msg", "server TLS client verification enabled", "client_ca_file", tc.ClientCAFile)
|
||||
logger.Info("server TLS client verification enabled", "client_ca_file", tc.ClientCAFile)
|
||||
}
|
||||
|
||||
return tlsCfg, nil
|
||||
|
@ -173,7 +177,7 @@ func (tc *TLSConfig) Convert(logger log.Logger) (*tls.Config, error) {
|
|||
|
||||
// Server is a web server.
|
||||
type Server struct {
|
||||
logger log.Logger
|
||||
logger *slog.Logger
|
||||
|
||||
listener net.Listener
|
||||
srv *http.Server
|
||||
|
@ -183,7 +187,7 @@ type Server struct {
|
|||
}
|
||||
|
||||
// NewServer initializes a web server with the given handler (typically an http.MuxServe).
|
||||
func NewServer(logger log.Logger, c *Config, handler http.Handler) (*Server, error) {
|
||||
func NewServer(logger *slog.Logger, c *Config, handler http.Handler) (*Server, error) {
|
||||
listener, err := net.Listen("tcp", c.ListenAddress)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -268,10 +272,7 @@ func NewServer(logger log.Logger, c *Config, handler http.Handler) (*Server, err
|
|||
TLSConfig: tlsConfig,
|
||||
ReadHeaderTimeout: 30 * time.Second,
|
||||
ReadTimeout: 30 * time.Second,
|
||||
// use flags on standard logger to align with base logger and get consistent parsed fields form adapter:
|
||||
// use shortfile flag to get proper 'caller' field (avoid being wrongly parsed/extracted from message)
|
||||
// and no datetime related flag to keep 'ts' field from base logger (with controlled format)
|
||||
ErrorLog: stdlog.New(log.NewStdlibAdapter(logger), "", stdlog.Lshortfile),
|
||||
ErrorLog: slog.NewLogLogger(logger.Handler(), slog.LevelError),
|
||||
}
|
||||
|
||||
if !c.EnableHTTP2 {
|
||||
|
@ -295,9 +296,9 @@ func (s *Server) Serve(ctx context.Context) error {
|
|||
}
|
||||
|
||||
if s.srv.TLSConfig == nil {
|
||||
level.Info(s.logger).Log("msg", "starting insecure server", "address", s.listener.Addr().String())
|
||||
s.logger.Info("starting insecure server", "address", s.listener.Addr().String())
|
||||
} else {
|
||||
level.Info(s.logger).Log("msg", "starting secure server", "address", s.listener.Addr().String(), "http2", s.cfg.EnableHTTP2)
|
||||
s.logger.Info("starting secure server", "address", s.listener.Addr().String(), "http2", s.cfg.EnableHTTP2)
|
||||
}
|
||||
|
||||
if err := s.srv.Serve(s.listener); err != http.ErrServerClosed {
|
||||
|
@ -309,6 +310,6 @@ func (s *Server) Serve(ctx context.Context) error {
|
|||
|
||||
// Shutdown closes gracefully all active connections.
|
||||
func (s *Server) Shutdown(ctx context.Context) error {
|
||||
level.Info(s.logger).Log("msg", "shutting down web server")
|
||||
s.logger.Info("shutting down web server")
|
||||
return s.srv.Shutdown(ctx)
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-kit/log"
|
||||
"github.com/mitchellh/hashstructure"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
|
@ -59,12 +58,9 @@ type Operator struct {
|
|||
kclient kubernetes.Interface
|
||||
mdClient metadata.Interface
|
||||
mclient monitoringclient.Interface
|
||||
// We're currently migrating our logging library from go-kit to slog.
|
||||
// The go-kit logger is being removed in small PRs. For now, we are creating 2 loggers to avoid breaking changes and
|
||||
// to have a smooth transition.
|
||||
goKitLogger log.Logger
|
||||
logger *slog.Logger
|
||||
accessor *operator.Accessor
|
||||
|
||||
logger *slog.Logger
|
||||
accessor *operator.Accessor
|
||||
|
||||
controllerID string
|
||||
|
||||
|
@ -109,8 +105,7 @@ func WithStorageClassValidation() ControllerOption {
|
|||
}
|
||||
|
||||
// New creates a new controller.
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitLogger log.Logger, logger *slog.Logger, r prometheus.Registerer, options ...ControllerOption) (*Operator, error) {
|
||||
goKitLogger = log.With(goKitLogger, "component", controllerName)
|
||||
func New(ctx context.Context, restConfig *rest.Config, c operator.Config, logger *slog.Logger, r prometheus.Registerer, options ...ControllerOption) (*Operator, error) {
|
||||
logger = logger.With("component", controllerName)
|
||||
|
||||
client, err := kubernetes.NewForConfig(restConfig)
|
||||
|
@ -135,7 +130,6 @@ func New(ctx context.Context, restConfig *rest.Config, c operator.Config, goKitL
|
|||
kclient: client,
|
||||
mdClient: mdClient,
|
||||
mclient: mclient,
|
||||
goKitLogger: goKitLogger,
|
||||
logger: logger,
|
||||
accessor: operator.NewAccessor(logger),
|
||||
metrics: operator.NewMetrics(r),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue