From e557f61784a90adf8dfe4a0bca875043e895cc8b Mon Sep 17 00:00:00 2001 From: "mengjiao.liu" Date: Fri, 26 Feb 2021 11:36:05 +0800 Subject: [PATCH] Migrate pkg/kubelet/lifecycle,oom to structured logging Co-authored-by: Elana Hashman --- pkg/kubelet/lifecycle/handlers.go | 10 +++++----- pkg/kubelet/lifecycle/handlers_test.go | 2 +- pkg/kubelet/lifecycle/predicate.go | 16 ++++++++-------- pkg/kubelet/oom/oom_watcher_linux.go | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pkg/kubelet/lifecycle/handlers.go b/pkg/kubelet/lifecycle/handlers.go index b71682f4beb..b4f804c3d74 100644 --- a/pkg/kubelet/lifecycle/handlers.go +++ b/pkg/kubelet/lifecycle/handlers.go @@ -64,20 +64,20 @@ func (hr *handlerRunner) Run(containerID kubecontainer.ContainerID, pod *v1.Pod, output, err := hr.commandRunner.RunInContainer(containerID, handler.Exec.Command, 0) if err != nil { msg = fmt.Sprintf("Exec lifecycle hook (%v) for Container %q in Pod %q failed - error: %v, message: %q", handler.Exec.Command, container.Name, format.Pod(pod), err, string(output)) - klog.V(1).Infof(msg) + klog.V(1).ErrorS(err, "Exec lifecycle hook for Container in Pod failed", "execCommand", handler.Exec.Command, "containerName", container.Name, "pod", klog.KObj(pod), "message", string(output)) } return msg, err case handler.HTTPGet != nil: msg, err := hr.runHTTPHandler(pod, container, handler) if err != nil { - msg = fmt.Sprintf("Http lifecycle hook (%s) for Container %q in Pod %q failed - error: %v, message: %q", handler.HTTPGet.Path, container.Name, format.Pod(pod), err, msg) - klog.V(1).Infof(msg) + msg = fmt.Sprintf("HTTP lifecycle hook (%s) for Container %q in Pod %q failed - error: %v, message: %q", handler.HTTPGet.Path, container.Name, format.Pod(pod), err, msg) + klog.V(1).ErrorS(err, "HTTP lifecycle hook for Container in Pod failed", "path", handler.HTTPGet.Path, "containerName", container.Name, "pod", klog.KObj(pod)) } return msg, err default: err := fmt.Errorf("invalid handler: %v", handler) msg := fmt.Sprintf("Cannot run handler: %v", err) - klog.Errorf(msg) + klog.ErrorS(err, "Cannot run handler") return msg, err } } @@ -110,7 +110,7 @@ func (hr *handlerRunner) runHTTPHandler(pod *v1.Pod, container *v1.Container, ha if len(host) == 0 { status, err := hr.containerManager.GetPodStatus(pod.UID, pod.Name, pod.Namespace) if err != nil { - klog.Errorf("Unable to get pod info, event handlers may be invalid.") + klog.ErrorS(err, "Unable to get pod info, event handlers may be invalid.") return "", err } if len(status.IPs) == 0 { diff --git a/pkg/kubelet/lifecycle/handlers_test.go b/pkg/kubelet/lifecycle/handlers_test.go index 88711cc5b20..b4d5aaa7074 100644 --- a/pkg/kubelet/lifecycle/handlers_test.go +++ b/pkg/kubelet/lifecycle/handlers_test.go @@ -247,7 +247,7 @@ func TestRunHandlerHttpFailure(t *testing.T) { pod.ObjectMeta.Name = "podFoo" pod.ObjectMeta.Namespace = "nsFoo" pod.Spec.Containers = []v1.Container{container} - expectedErrMsg := fmt.Sprintf("Http lifecycle hook (%s) for Container %q in Pod %q failed - error: %v, message: %q", "bar", containerName, format.Pod(&pod), expectedErr, expectedErr.Error()) + expectedErrMsg := fmt.Sprintf("HTTP lifecycle hook (%s) for Container %q in Pod %q failed - error: %v, message: %q", "bar", containerName, format.Pod(&pod), expectedErr, expectedErr.Error()) msg, err := handlerRunner.Run(containerID, &pod, &container, container.Lifecycle.PostStart) if err == nil { t.Errorf("expected error: %v", expectedErr) diff --git a/pkg/kubelet/lifecycle/predicate.go b/pkg/kubelet/lifecycle/predicate.go index a5b2bbf5a0c..07b8792dc36 100644 --- a/pkg/kubelet/lifecycle/predicate.go +++ b/pkg/kubelet/lifecycle/predicate.go @@ -62,7 +62,7 @@ func NewPredicateAdmitHandler(getNodeAnyWayFunc getNodeAnyWayFuncType, admission func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult { node, err := w.getNodeAnyWayFunc() if err != nil { - klog.Errorf("Cannot get Node info: %v", err) + klog.ErrorS(err, "Cannot get Node info") return PodAdmitResult{ Admit: false, Reason: "InvalidNodeInfo", @@ -76,7 +76,7 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult // ensure the node has enough plugin resources for that required in pods if err = w.pluginResourceUpdateFunc(nodeInfo, attrs); err != nil { message := fmt.Sprintf("Update plugin resources failed due to %v, which is unexpected.", err) - klog.Warningf("Failed to admit pod %v - %s", format.Pod(admitPod), message) + klog.InfoS("Failed to admit pod", "pod", klog.KObj(admitPod), "message", message) return PodAdmitResult{ Admit: false, Reason: "UnexpectedAdmissionError", @@ -98,7 +98,7 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult fit := len(reasons) == 0 && err == nil if err != nil { message := fmt.Sprintf("GeneralPredicates failed due to %v, which is unexpected.", err) - klog.Warningf("Failed to admit pod %v - %s", format.Pod(admitPod), message) + klog.InfoS("Failed to admit pod, GeneralPredicates failed", "pod", klog.KObj(admitPod), "err", err) return PodAdmitResult{ Admit: fit, Reason: "UnexpectedAdmissionError", @@ -110,7 +110,7 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult fit = len(reasons) == 0 && err == nil if err != nil { message := fmt.Sprintf("Unexpected error while attempting to recover from admission failure: %v", err) - klog.Warningf("Failed to admit pod %v - %s", format.Pod(admitPod), message) + klog.InfoS("Failed to admit pod, unexpected error while attempting to recover from admission failure", "pod", klog.KObj(admitPod), "err", err) return PodAdmitResult{ Admit: fit, Reason: "UnexpectedAdmissionError", @@ -123,7 +123,7 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult var message string if len(reasons) == 0 { message = fmt.Sprint("GeneralPredicates failed due to unknown reason, which is unexpected.") - klog.Warningf("Failed to admit pod %v - %s", format.Pod(admitPod), message) + klog.InfoS("Failed to admit pod: GeneralPredicates failed due to unknown reason, which is unexpected", "pod", klog.KObj(admitPod)) return PodAdmitResult{ Admit: fit, Reason: "UnknownReason", @@ -136,15 +136,15 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult case *PredicateFailureError: reason = re.PredicateName message = re.Error() - klog.V(2).Infof("Predicate failed on Pod: %v, for reason: %v", format.Pod(admitPod), message) + klog.V(2).InfoS("Predicate failed on Pod", "pod", format.Pod(admitPod), "err", message) case *InsufficientResourceError: reason = fmt.Sprintf("OutOf%s", re.ResourceName) message = re.Error() - klog.V(2).Infof("Predicate failed on Pod: %v, for reason: %v", format.Pod(admitPod), message) + klog.V(2).InfoS("Predicate failed on Pod", "pod", format.Pod(admitPod), "err", message) default: reason = "UnexpectedPredicateFailureType" message = fmt.Sprintf("GeneralPredicates failed due to %v, which is unexpected.", r) - klog.Warningf("Failed to admit pod %v - %s", format.Pod(admitPod), message) + klog.InfoS("Failed to admit pod", "pod", klog.KObj(admitPod), "err", message) } return PodAdmitResult{ Admit: fit, diff --git a/pkg/kubelet/oom/oom_watcher_linux.go b/pkg/kubelet/oom/oom_watcher_linux.go index 21dc7231559..e5c7ab47a22 100644 --- a/pkg/kubelet/oom/oom_watcher_linux.go +++ b/pkg/kubelet/oom/oom_watcher_linux.go @@ -73,7 +73,7 @@ func (ow *realWatcher) Start(ref *v1.ObjectReference) error { for event := range outStream { if event.VictimContainerName == recordEventContainerName { - klog.V(1).Infof("Got sys oom event: %v", event) + klog.V(1).InfoS("Got sys oom event", "event", event) eventMsg := "System OOM encountered" if event.ProcessName != "" && event.Pid != 0 { eventMsg = fmt.Sprintf("%s, victim process: %s, pid: %d", eventMsg, event.ProcessName, event.Pid) @@ -81,7 +81,7 @@ func (ow *realWatcher) Start(ref *v1.ObjectReference) error { ow.recorder.Eventf(ref, v1.EventTypeWarning, systemOOMEvent, eventMsg) } } - klog.Errorf("Unexpectedly stopped receiving OOM notifications") + klog.ErrorS(nil, "Unexpectedly stopped receiving OOM notifications") }() return nil }