Skip to content

Commit 8bf6714

Browse files
authored
structured logging for hpascaletargetmarker controller (#6654)
* structured logging for hpascaletargetmarker controller Signed-off-by: Tessa Pham <[email protected]> * make error messages more detailed Signed-off-by: Tessa Pham <[email protected]> --------- Signed-off-by: Tessa Pham <[email protected]>
1 parent 980ee22 commit 8bf6714

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

pkg/controllers/hpascaletargetmarker/hpa_scale_target_marker_predicate.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ limitations under the License.
1717
package hpascaletargetmarker
1818

1919
import (
20+
"errors"
21+
2022
autoscalingv2 "k8s.io/api/autoscaling/v2"
2123
"k8s.io/klog/v2"
2224
"sigs.k8s.io/controller-runtime/pkg/event"
@@ -31,7 +33,8 @@ var _ predicate.Predicate = &HpaScaleTargetMarker{}
3133
func (r *HpaScaleTargetMarker) Create(e event.CreateEvent) bool {
3234
hpa, ok := e.Object.(*autoscalingv2.HorizontalPodAutoscaler)
3335
if !ok {
34-
klog.Errorf("create predicates in hpa controller called, but obj is not hpa type")
36+
err := errors.New("object is not HPA type")
37+
klog.ErrorS(err, "create predicate in hpa controller failed on type assertion")
3538
return false
3639
}
3740

@@ -47,13 +50,15 @@ func (r *HpaScaleTargetMarker) Create(e event.CreateEvent) bool {
4750
func (r *HpaScaleTargetMarker) Update(e event.UpdateEvent) bool {
4851
oldHPA, ok := e.ObjectOld.(*autoscalingv2.HorizontalPodAutoscaler)
4952
if !ok {
50-
klog.Errorf("update predicates in hpa controller called, but old obj is not hpa type")
53+
err := errors.New("old object is not HPA type")
54+
klog.ErrorS(err, "update predicate in hpa controller failed on type assertion")
5155
return false
5256
}
5357

5458
newHPA, ok := e.ObjectNew.(*autoscalingv2.HorizontalPodAutoscaler)
5559
if !ok {
56-
klog.Errorf("update predicates in hpa controller called, but new obj is not hpa type")
60+
err := errors.New("new object is not HPA type")
61+
klog.ErrorS(err, "update predicate in hpa controller failed on type assertion")
5762
return false
5863
}
5964

@@ -75,7 +80,8 @@ func (r *HpaScaleTargetMarker) Update(e event.UpdateEvent) bool {
7580
func (r *HpaScaleTargetMarker) Delete(e event.DeleteEvent) bool {
7681
hpa, ok := e.Object.(*autoscalingv2.HorizontalPodAutoscaler)
7782
if !ok {
78-
klog.Errorf("delete predicates in hpa controller called, but obj is not hpa type")
83+
err := errors.New("object is not HPA type")
84+
klog.ErrorS(err, "delete predicate in hpa controller failed on type assertion")
7985
return false
8086
}
8187

pkg/controllers/hpascaletargetmarker/hpa_scale_target_marker_worker.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package hpascaletargetmarker
1818

1919
import (
2020
"context"
21+
"errors"
2122
"fmt"
2223

2324
autoscalingv2 "k8s.io/api/autoscaling/v2"
@@ -48,8 +49,9 @@ type labelEvent struct {
4849
func (r *HpaScaleTargetMarker) reconcileScaleRef(key util.QueueKey) (err error) {
4950
event, ok := key.(labelEvent)
5051
if !ok {
51-
klog.Errorf("Found invalid key when reconciling hpa scale ref: %+v", key)
52-
return nil
52+
err = errors.New("invalid key")
53+
klog.ErrorS(err, "reconcile hpa scale ref failed on type assertion", "key", key)
54+
return err
5355
}
5456

5557
switch event.kind {
@@ -58,12 +60,13 @@ func (r *HpaScaleTargetMarker) reconcileScaleRef(key util.QueueKey) (err error)
5860
case deleteLabelEvent:
5961
err = r.deleteHPALabelFromScaleRef(context.TODO(), event.hpa)
6062
default:
61-
klog.Errorf("Found invalid key when reconciling hpa scale ref: %+v", key)
62-
return nil
63+
err = errors.New("invalid label event")
64+
klog.ErrorS(err, "reconcile hpa scale ref failed", "key", key)
65+
return err
6366
}
6467

6568
if err != nil {
66-
klog.Errorf("reconcile scale ref failed: %+v", err)
69+
klog.ErrorS(err, "reconcile hpa scale ref failed")
6770
}
6871
return err
6972
}
@@ -78,7 +81,7 @@ func (r *HpaScaleTargetMarker) addHPALabelToScaleRef(ctx context.Context, hpa *a
7881
scaleRef, err := r.DynamicClient.Resource(mapping.Resource).Namespace(hpa.Namespace).Get(ctx, hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
7982
if err != nil {
8083
if apierrors.IsNotFound(err) {
81-
klog.Infof("scale ref resource is not found (%s/%v), skip processing", hpa.Namespace, hpa.Spec.ScaleTargetRef)
84+
klog.InfoS("scale ref resource is not found, skip processing", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
8285
return nil
8386
}
8487
return fmt.Errorf("failed to find scale ref resource (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
@@ -92,21 +95,21 @@ func (r *HpaScaleTargetMarker) addHPALabelToScaleRef(ctx context.Context, hpa *a
9295
return fmt.Errorf("failed to gen merge patch (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
9396
}
9497
if len(patchBytes) == 0 {
95-
klog.Infof("hpa labels already exist, skip adding (%s/%v)", hpa.Namespace, hpa.Spec.ScaleTargetRef)
98+
klog.InfoS("hpa labels already exist, skip adding", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
9699
return nil
97100
}
98101

99102
_, err = r.DynamicClient.Resource(mapping.Resource).Namespace(newScaleRef.GetNamespace()).
100103
Patch(ctx, newScaleRef.GetName(), types.MergePatchType, patchBytes, metav1.PatchOptions{})
101104
if err != nil {
102105
if apierrors.IsNotFound(err) {
103-
klog.Infof("scale ref resource is not found (%s/%v), skip processing", hpa.Namespace, hpa.Spec.ScaleTargetRef)
106+
klog.InfoS("scale ref resource is not found, skip processing", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
104107
return nil
105108
}
106109
return fmt.Errorf("failed to patch scale ref resource (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
107110
}
108111

109-
klog.Infof("add hpa labels to %s/%v success", hpa.Namespace, hpa.Spec.ScaleTargetRef)
112+
klog.InfoS("add hpa labels to scale ref success", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
110113
return nil
111114
}
112115

@@ -120,7 +123,7 @@ func (r *HpaScaleTargetMarker) deleteHPALabelFromScaleRef(ctx context.Context, h
120123
scaleRef, err := r.DynamicClient.Resource(mapping.Resource).Namespace(hpa.Namespace).Get(ctx, hpa.Spec.ScaleTargetRef.Name, metav1.GetOptions{})
121124
if err != nil {
122125
if apierrors.IsNotFound(err) {
123-
klog.Infof("scale ref resource is not found (%s/%v), skip processing", hpa.Namespace, hpa.Spec.ScaleTargetRef)
126+
klog.InfoS("scale ref resource is not found, skip processing", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
124127
return nil
125128
}
126129
return fmt.Errorf("failed to find scale ref resource (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
@@ -134,20 +137,20 @@ func (r *HpaScaleTargetMarker) deleteHPALabelFromScaleRef(ctx context.Context, h
134137
return fmt.Errorf("failed to gen merge patch (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
135138
}
136139
if len(patchBytes) == 0 {
137-
klog.Infof("hpa labels not exist, skip deleting (%s/%v)", hpa.Namespace, hpa.Spec.ScaleTargetRef)
140+
klog.InfoS("hpa labels not exist, skip deleting", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
138141
return nil
139142
}
140143

141144
_, err = r.DynamicClient.Resource(mapping.Resource).Namespace(newScaleRef.GetNamespace()).
142145
Patch(ctx, newScaleRef.GetName(), types.MergePatchType, patchBytes, metav1.PatchOptions{})
143146
if err != nil {
144147
if apierrors.IsNotFound(err) {
145-
klog.Infof("scale ref resource is not found (%s/%v), skip processing", hpa.Namespace, hpa.Spec.ScaleTargetRef)
148+
klog.InfoS("scale ref resource is not found, skip processing", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
146149
return nil
147150
}
148151
return fmt.Errorf("failed to patch scale ref resource (%s/%v), err: %+v", hpa.Namespace, hpa.Spec.ScaleTargetRef, err)
149152
}
150153

151-
klog.Infof("delete hpa labels from %s/%+v success", hpa.Namespace, hpa.Spec.ScaleTargetRef)
154+
klog.InfoS("delete hpa labels from scale ref success", "namespace", hpa.Namespace, "scaleTargetRef", hpa.Spec.ScaleTargetRef)
152155
return nil
153156
}

0 commit comments

Comments
 (0)