Skip to content

Commit 88ab3c2

Browse files
authored
[Feature] Add new logger services (#750)
1 parent b068b88 commit 88ab3c2

File tree

16 files changed

+106
-38
lines changed

16 files changed

+106
-38
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Deprecate Alpine image usage
66
- Use persistent name and namespace in ArangoDeployment reconcilation loop
77
- Remove finalizers when Server container is already terminated and reduce initial reconciliation delay
8+
- Add new logger services - reconciliation and event
89

910
## [1.1.9](https://github.com/arangodb/kube-arangodb/tree/1.1.9) (2021-05-28)
1011
- Add IP, DNS, ShortDNS, HeadlessService (Default) communication methods

main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func init() {
139139
f.StringVar(&serverOptions.tlsSecretName, "server.tls-secret-name", "", "Name of secret containing tls.crt & tls.key for HTTPS server (if empty, self-signed certificate is used)")
140140
f.StringVar(&serverOptions.adminSecretName, "server.admin-secret-name", defaultAdminSecretName, "Name of secret containing username + password for login to the dashboard")
141141
f.BoolVar(&serverOptions.allowAnonymous, "server.allow-anonymous-access", false, "Allow anonymous access to the dashboard")
142-
f.StringArrayVar(&logLevels, "log.level", []string{defaultLogLevel}, "Set log levels in format <level> or <logger>=<level>")
142+
f.StringArrayVar(&logLevels, "log.level", []string{defaultLogLevel}, fmt.Sprintf("Set log levels in format <level> or <logger>=<level>. Possible loggers: %s", strings.Join(logging.LoggerNames(), ", ")))
143143
f.BoolVar(&operatorOptions.enableDeployment, "operator.deployment", false, "Enable to run the ArangoDeployment operator")
144144
f.BoolVar(&operatorOptions.enableDeploymentReplication, "operator.deployment-replication", false, "Enable to run the ArangoDeploymentReplication operator")
145145
f.BoolVar(&operatorOptions.enableStorage, "operator.storage", false, "Enable to run the ArangoLocalStorage operator")
@@ -193,7 +193,7 @@ func cmdMainRun(cmd *cobra.Command, args []string) {
193193
return log.With().Str("operator-id", operatorID).Logger()
194194
})
195195

196-
klog.SetOutput(logService.MustGetLogger("klog"))
196+
klog.SetOutput(logService.MustGetLogger(logging.LoggerNameKLog))
197197
klog.Info("nice to meet you")
198198
klog.Flush()
199199

@@ -253,7 +253,7 @@ func cmdMainRun(cmd *cobra.Command, args []string) {
253253
AdminSecretName: serverOptions.adminSecretName,
254254
AllowAnonymous: serverOptions.allowAnonymous,
255255
}, server.Dependencies{
256-
Log: logService.MustGetLogger("server"),
256+
Log: logService.MustGetLogger(logging.LoggerNameServer),
257257
LivenessProbe: &livenessProbe,
258258
Deployment: server.OperatorDependency{
259259
Enabled: cfg.EnableDeployment,

pkg/backup/handlers/arango/backup/backup_suite_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"fmt"
2828
"testing"
2929

30+
"github.com/rs/zerolog/log"
31+
3032
"github.com/arangodb/kube-arangodb/pkg/util/errors"
3133

3234
"github.com/arangodb/go-driver"
@@ -59,7 +61,7 @@ func newFakeHandler() *handler {
5961
kubeClient: k,
6062

6163
arangoClientTimeout: defaultArangoClientTimeout,
62-
eventRecorder: newEventInstance(event.NewEventRecorder("mock", k)),
64+
eventRecorder: newEventInstance(event.NewEventRecorder(log.Logger, "mock", k)),
6365
}
6466
}
6567

pkg/backup/handlers/arango/policy/handler_suite_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"fmt"
2828
"testing"
2929

30+
"github.com/rs/zerolog/log"
31+
3032
"github.com/arangodb/kube-arangodb/pkg/apis/backup"
3133
"github.com/arangodb/kube-arangodb/pkg/apis/deployment"
3234

@@ -50,7 +52,7 @@ func newFakeHandler() *handler {
5052
h := &handler{
5153
client: f,
5254
kubeClient: k,
53-
eventRecorder: newEventInstance(event.NewEventRecorder("mock", k)),
55+
eventRecorder: newEventInstance(event.NewEventRecorder(log.Logger, "mock", k)),
5456
}
5557

5658
return h

pkg/backup/operator/event/event.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,20 @@ import (
2626
"context"
2727
"fmt"
2828

29-
"github.com/rs/zerolog/log"
29+
"github.com/rs/zerolog"
30+
3031
core "k8s.io/api/core/v1"
3132
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
3233
"k8s.io/apimachinery/pkg/util/uuid"
3334
"k8s.io/client-go/kubernetes"
3435
)
3536

3637
// NewEventRecorder creates new event recorder
37-
func NewEventRecorder(name string, kubeClientSet kubernetes.Interface) Recorder {
38+
func NewEventRecorder(logger zerolog.Logger, name string, kubeClientSet kubernetes.Interface) Recorder {
3839
return &eventRecorder{
3940
kubeClientSet: kubeClientSet,
4041
name: name,
42+
logger: logger,
4143
}
4244
}
4345

@@ -51,6 +53,7 @@ type Recorder interface {
5153
type eventRecorder struct {
5254
name string
5355
kubeClientSet kubernetes.Interface
56+
logger zerolog.Logger
5457
}
5558

5659
func (e *eventRecorder) newEvent(group, version, kind string, object meta.Object, eventType, reason, message string) *core.Event {
@@ -90,15 +93,15 @@ func (e *eventRecorder) newObjectReference(group, version, kind string, object m
9093
func (e *eventRecorder) event(group, version, kind string, object meta.Object, eventType, reason, message string) {
9194
_, err := e.kubeClientSet.CoreV1().Events(object.GetNamespace()).Create(context.Background(), e.newEvent(group, version, kind, object, eventType, reason, message), meta.CreateOptions{})
9295
if err != nil {
93-
log.Warn().Err(err).
96+
e.logger.Warn().Err(err).
9497
Str("APIVersion", fmt.Sprintf("%s/%s", group, version)).
9598
Str("Kind", kind).
9699
Str("Object", fmt.Sprintf("%s/%s", object.GetNamespace(), object.GetName())).
97100
Msgf("Unable to send event")
98101
return
99102
}
100103

101-
log.Info().
104+
e.logger.Info().
102105
Str("APIVersion", fmt.Sprintf("%s/%s", group, version)).
103106
Str("Kind", kind).
104107
Str("Object", fmt.Sprintf("%s/%s", object.GetNamespace(), object.GetName())).

pkg/backup/operator/event/event_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"fmt"
2828
"testing"
2929

30+
"github.com/rs/zerolog/log"
31+
3032
"github.com/stretchr/testify/assert"
3133
"github.com/stretchr/testify/require"
3234
core "k8s.io/api/core/v1"
@@ -39,7 +41,7 @@ func Test_Event_Handler(t *testing.T) {
3941
// Arrange
4042
c := fake.NewSimpleClientset()
4143

42-
recorder := NewEventRecorder("mock", c)
44+
recorder := NewEventRecorder(log.Logger, "mock", c)
4345

4446
group := string(uuid.NewUUID())
4547
version := "v1"

pkg/backup/operator/operator.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ import (
2626
"sync"
2727
"time"
2828

29+
"github.com/rs/zerolog"
30+
2931
"github.com/arangodb/kube-arangodb/pkg/util/errors"
3032

3133
"github.com/arangodb/kube-arangodb/pkg/backup/operator/operation"
3234

3335
"github.com/prometheus/client_golang/prometheus"
3436

35-
"github.com/rs/zerolog/log"
3637
"k8s.io/apimachinery/pkg/util/wait"
3738
"k8s.io/client-go/tools/cache"
3839
"k8s.io/client-go/util/workqueue"
@@ -62,10 +63,11 @@ type Operator interface {
6263
}
6364

6465
// NewOperator creates new operator
65-
func NewOperator(name, namespace string) Operator {
66+
func NewOperator(logger zerolog.Logger, name, namespace string) Operator {
6667
o := &operator{
6768
name: name,
6869
namespace: namespace,
70+
logger: logger,
6971
workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), name),
7072
}
7173

@@ -80,6 +82,8 @@ type operator struct {
8082

8183
started bool
8284

85+
logger zerolog.Logger
86+
8387
name string
8488
namespace string
8589

@@ -192,14 +196,14 @@ func (o *operator) Start(threadiness int, stopCh <-chan struct{}) error {
192196

193197
func (o *operator) start(threadiness int, stopCh <-chan struct{}) error {
194198
// Execute pre checks
195-
log.Info().Msgf("Executing Lifecycle PreStart")
199+
o.logger.Info().Msgf("Executing Lifecycle PreStart")
196200
for _, handler := range o.handlers {
197201
if err := ExecLifecyclePreStart(handler); err != nil {
198202
return err
199203
}
200204
}
201205

202-
log.Info().Msgf("Starting informers")
206+
o.logger.Info().Msgf("Starting informers")
203207
for _, starter := range o.starters {
204208
starter.Start(stopCh)
205209
}
@@ -208,12 +212,12 @@ func (o *operator) start(threadiness int, stopCh <-chan struct{}) error {
208212
return err
209213
}
210214

211-
log.Info().Msgf("Starting workers")
215+
o.logger.Info().Msgf("Starting workers")
212216
for i := 0; i < threadiness; i++ {
213217
go wait.Until(o.worker, time.Second, stopCh)
214218
}
215219

216-
log.Info().Msgf("Operator started")
220+
o.logger.Info().Msgf("Operator started")
217221
return nil
218222
}
219223

pkg/backup/operator/operator_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import (
2626
"context"
2727
"time"
2828

29+
"github.com/rs/zerolog/log"
30+
2931
"github.com/arangodb/kube-arangodb/pkg/backup/operator/operation"
3032

3133
"github.com/stretchr/testify/assert"
@@ -43,7 +45,7 @@ import (
4345
func Test_Operator_InformerProcessing(t *testing.T) {
4446
// Arrange
4547
name := string(uuid.NewUUID())
46-
o := NewOperator(name, name)
48+
o := NewOperator(log.Logger, name, name)
4749
size := 64
4850

4951
objects := make([]string, size)
@@ -92,7 +94,7 @@ func Test_Operator_InformerProcessing(t *testing.T) {
9294
func Test_Operator_MultipleInformers(t *testing.T) {
9395
// Arrange
9496
name := string(uuid.NewUUID())
95-
o := NewOperator(name, name)
97+
o := NewOperator(log.Logger, name, name)
9698
size := 16
9799

98100
objects := make([]string, size)
@@ -153,7 +155,7 @@ func Test_Operator_MultipleInformers(t *testing.T) {
153155
func Test_Operator_MultipleInformers_IgnoredTypes(t *testing.T) {
154156
// Arrange
155157
name := string(uuid.NewUUID())
156-
o := NewOperator(name, name)
158+
o := NewOperator(log.Logger, name, name)
157159
size := 16
158160

159161
objects := make([]string, size)
@@ -213,7 +215,7 @@ func Test_Operator_MultipleInformers_IgnoredTypes(t *testing.T) {
213215
func Test_Operator_MultipleInformers_MultipleHandlers(t *testing.T) {
214216
// Arrange
215217
name := string(uuid.NewUUID())
216-
o := NewOperator(name, name)
218+
o := NewOperator(log.Logger, name, name)
217219
size := 16
218220

219221
objects := make([]string, size)
@@ -321,7 +323,7 @@ func Test_Operator_MultipleInformers_MultipleHandlers(t *testing.T) {
321323
func Test_Operator_InformerProcessing_Namespaced(t *testing.T) {
322324
// Arrange
323325
name := string(uuid.NewUUID())
324-
o := NewOperator(name, name)
326+
o := NewOperator(log.Logger, name, name)
325327
size := 16
326328

327329
objects := make([]string, size)

pkg/backup/operator/operator_worker.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ package operator
2525
import (
2626
"github.com/arangodb/kube-arangodb/pkg/backup/operator/operation"
2727
"github.com/arangodb/kube-arangodb/pkg/util/errors"
28-
29-
"github.com/rs/zerolog/log"
3028
)
3129

3230
func (o *operator) worker() {
@@ -39,7 +37,7 @@ func (o *operator) processNextItem() bool {
3937
defer func() {
4038
// Recover from panic to not shutdown whole operator
4139
if err := recover(); err != nil {
42-
e := log.Error()
40+
e := o.logger.Error()
4341

4442
switch obj := err.(type) {
4543
case error:
@@ -65,7 +63,7 @@ func (o *operator) processNextItem() bool {
6563
err := o.processObject(obj)
6664

6765
if err != nil {
68-
log.Error().Err(err).Interface("object", obj).Msgf("Error during object handling")
66+
o.logger.Error().Err(err).Interface("object", obj).Msgf("Error during object handling")
6967
return true
7068
}
7169

@@ -98,7 +96,7 @@ func (o *operator) processObject(obj interface{}) error {
9896

9997
o.objectProcessed.Inc()
10098

101-
log.Debug().Msgf("Received Item Action: %s, Type: %s/%s/%s, Namespace: %s, Name: %s",
99+
o.logger.Trace().Msgf("Received Item Action: %s, Type: %s/%s/%s, Namespace: %s, Name: %s",
102100
item.Operation,
103101
item.Group,
104102
item.Version,
@@ -111,7 +109,7 @@ func (o *operator) processObject(obj interface{}) error {
111109
return errors.Newf("error syncing '%s': %s, requeuing", key, err.Error())
112110
}
113111

114-
log.Debug().Msgf("Processed Item Action: %s, Type: %s/%s/%s, Namespace: %s, Name: %s",
112+
o.logger.Trace().Msgf("Processed Item Action: %s, Type: %s/%s/%s, Namespace: %s, Name: %s",
115113
item.Operation,
116114
item.Group,
117115
item.Version,

pkg/backup/operator/operator_worker_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ package operator
2525
import (
2626
"testing"
2727

28+
"github.com/rs/zerolog/log"
29+
2830
"github.com/stretchr/testify/assert"
2931
"github.com/stretchr/testify/require"
3032
"k8s.io/apimachinery/pkg/util/uuid"
@@ -33,7 +35,7 @@ import (
3335
func Test_Worker_Empty(t *testing.T) {
3436
// Arrange
3537
name := string(uuid.NewUUID())
36-
o := NewOperator(name, name)
38+
o := NewOperator(log.Logger, name, name)
3739

3840
stopCh := make(chan struct{})
3941

@@ -53,7 +55,7 @@ func Test_Worker_Empty(t *testing.T) {
5355
func Test_Worker_CatchAll(t *testing.T) {
5456
// Arrange
5557
name := string(uuid.NewUUID())
56-
o := NewOperator(name, name)
58+
o := NewOperator(log.Logger, name, name)
5759

5860
stopCh := make(chan struct{})
5961

@@ -82,7 +84,7 @@ func Test_Worker_CatchAll(t *testing.T) {
8284
func Test_Worker_EnsureFirstProcessStopLoop(t *testing.T) {
8385
// Arrange
8486
name := string(uuid.NewUUID())
85-
o := NewOperator(name, name)
87+
o := NewOperator(log.Logger, name, name)
8688

8789
stopCh := make(chan struct{})
8890

@@ -116,7 +118,7 @@ func Test_Worker_EnsureFirstProcessStopLoop(t *testing.T) {
116118
func Test_Worker_EnsureObjectIsProcessedBySecondHandler(t *testing.T) {
117119
// Arrange
118120
name := string(uuid.NewUUID())
119-
o := NewOperator(name, name)
121+
o := NewOperator(log.Logger, name, name)
120122

121123
stopCh := make(chan struct{})
122124

0 commit comments

Comments
 (0)