Migrate pkg/kubelet/stats to structured logging

This commit is contained in:
Krzysztof Gibuła 2021-03-01 18:52:34 +01:00
parent f6152d1521
commit 7097d4f8e2
4 changed files with 20 additions and 20 deletions

View File

@ -144,11 +144,11 @@ func (p *cadvisorStatsProvider) ListPodStats() ([]statsapi.PodStats, error) {
logStats, err := p.hostStatsProvider.getPodLogStats(podStats.PodRef.Namespace, podStats.PodRef.Name, podUID, &rootFsInfo)
if err != nil {
klog.Errorf("Unable to fetch pod log stats: %v", err)
klog.ErrorS(err, "Unable to fetch pod log stats", "pod", klog.KRef(podStats.PodRef.Namespace, podStats.PodRef.Name))
}
etcHostsStats, err := p.hostStatsProvider.getPodEtcHostsStats(podUID, &rootFsInfo)
if err != nil {
klog.Errorf("unable to fetch pod etc hosts stats: %v", err)
klog.ErrorS(err, "Unable to fetch pod etc hosts stats", "pod", klog.KRef(podStats.PodRef.Namespace, podStats.PodRef.Name))
}
podStats.EphemeralStorage = calcEphemeralStorage(podStats.Containers, ephemeralStats, &rootFsInfo, logStats, etcHostsStats, false)
@ -294,9 +294,9 @@ func isPodManagedContainer(cinfo *cadvisorapiv2.ContainerInfo) bool {
podNamespace := kubetypes.GetPodNamespace(cinfo.Spec.Labels)
managed := podName != "" && podNamespace != ""
if !managed && podName != podNamespace {
klog.Warningf(
"Expect container to have either both podName (%s) and podNamespace (%s) labels, or neither.",
podName, podNamespace)
klog.InfoS(
"Expect container to have either both podName and podNamespace labels, or neither",
"podNameLabel", podName, "podNamespaceLabel", podNamespace)
}
return managed
}
@ -412,7 +412,7 @@ func getCadvisorContainerInfo(ca cadvisor.Interface) (map[string]cadvisorapiv2.C
if _, ok := infos["/"]; ok {
// If the failure is partial, log it and return a best-effort
// response.
klog.Errorf("Partial failure issuing cadvisor.ContainerInfoV2: %v", err)
klog.ErrorS(err, "Partial failure issuing cadvisor.ContainerInfoV2")
} else {
return nil, fmt.Errorf("failed to get root cgroup stats: %v", err)
}

View File

@ -198,7 +198,7 @@ func (p *criStatsProvider) listPodStats(updateCPUNanoCoreUsage bool) ([]statsapi
// container stats
caStats, caFound := caInfos[containerID]
if !caFound {
klog.V(5).Infof("Unable to find cadvisor stats for %q", containerID)
klog.V(5).InfoS("Unable to find cadvisor stats for container", "containerID", containerID)
} else {
p.addCadvisorContainerStats(cs, &caStats)
}
@ -283,7 +283,7 @@ func (p *criStatsProvider) ListPodCPUAndMemoryStats() ([]statsapi.PodStats, erro
// container stats
caStats, caFound := caInfos[containerID]
if !caFound {
klog.V(4).Infof("Unable to find cadvisor stats for %q", containerID)
klog.V(4).InfoS("Unable to find cadvisor stats for container", "containerID", containerID)
} else {
p.addCadvisorContainerCPUAndMemoryStats(cs, &caStats)
}
@ -356,17 +356,17 @@ func (p *criStatsProvider) ImageFsDevice() (string, error) {
// nil.
func (p *criStatsProvider) getFsInfo(fsID *runtimeapi.FilesystemIdentifier) *cadvisorapiv2.FsInfo {
if fsID == nil {
klog.V(2).Infof("Failed to get filesystem info: fsID is nil.")
klog.V(2).InfoS("Failed to get filesystem info: fsID is nil")
return nil
}
mountpoint := fsID.GetMountpoint()
fsInfo, err := p.cadvisor.GetDirFsInfo(mountpoint)
if err != nil {
msg := fmt.Sprintf("Failed to get the info of the filesystem with mountpoint %q: %v.", mountpoint, err)
msg := "Failed to get the info of the filesystem with mountpoint"
if err == cadvisorfs.ErrNoSuchDevice {
klog.V(2).Info(msg)
klog.V(2).InfoS(msg, "mountpoint", mountpoint, "err", err)
} else {
klog.Error(msg)
klog.ErrorS(err, msg, "mountpoint", mountpoint)
}
return nil
}
@ -396,7 +396,7 @@ func (p *criStatsProvider) makePodStorageStats(s *statsapi.PodStats, rootFsInfo
}
logStats, err := p.hostStatsProvider.getPodLogStats(podNs, podName, podUID, rootFsInfo)
if err != nil {
klog.Errorf("Unable to fetch pod log stats: %v", err)
klog.ErrorS(err, "Unable to fetch pod log stats", "pod", klog.KRef(podNs, podName))
// If people do in-place upgrade, there might be pods still using
// the old log path. For those pods, no pod log stats is returned.
// We should continue generating other stats in that case.
@ -404,7 +404,7 @@ func (p *criStatsProvider) makePodStorageStats(s *statsapi.PodStats, rootFsInfo
}
etcHostsStats, err := p.hostStatsProvider.getPodEtcHostsStats(podUID, rootFsInfo)
if err != nil {
klog.Errorf("unable to fetch pod etc hosts stats: %v", err)
klog.ErrorS(err, "Unable to fetch pod etc hosts stats", "pod", klog.KRef(podNs, podName))
}
ephemeralStats := make([]statsapi.VolumeStats, len(vstats.EphemeralVolumes))
copy(ephemeralStats, vstats.EphemeralVolumes)
@ -436,7 +436,7 @@ func (p *criStatsProvider) addPodNetworkStats(
}
// TODO: sum Pod network stats from container stats.
klog.V(4).Infof("Unable to find network stats for sandbox %q", podSandboxID)
klog.V(4).InfoS("Unable to find network stats for sandbox", "sandboxID", podSandboxID)
}
func (p *criStatsProvider) addPodCPUMemoryStats(
@ -580,7 +580,7 @@ func (p *criStatsProvider) makeContainerStats(
var err error
result.Logs, err = p.hostStatsProvider.getPodContainerLogStats(meta.GetNamespace(), meta.GetName(), types.UID(meta.GetUid()), container.GetMetadata().GetName(), rootFsInfo)
if err != nil {
klog.Errorf("Unable to fetch container log stats: %v ", err)
klog.ErrorS(err, "Unable to fetch container log stats", "containerName", container.GetMetadata().GetName())
}
return result
}
@ -680,7 +680,7 @@ func (p *criStatsProvider) getAndUpdateContainerUsageNanoCores(stats *runtimeapi
if err != nil {
// This should not happen. Log now to raise visibility
klog.Errorf("failed updating cpu usage nano core: %v", err)
klog.ErrorS(err, "Failed updating cpu usage nano core")
}
return usage
}

View File

@ -43,7 +43,7 @@ func (p *criStatsProvider) listContainerNetworkStats() (map[string]*statsapi.Net
for _, c := range containers {
cstats, err := fetchContainerStats(c)
if err != nil {
klog.V(4).Infof("Failed to fetch statistics for container %q with error '%v', continue to get stats for other containers", c.ID, err)
klog.V(4).InfoS("Failed to fetch statistics for container, continue to get stats for other containers", "containerID", c.ID, "err", err)
continue
}
if len(cstats.Network) > 0 {
@ -86,7 +86,7 @@ func hcsStatsToNetworkStats(timestamp time.Time, hcsStats []hcsshim.NetworkStats
for _, stat := range hcsStats {
iStat, err := hcsStatsToInterfaceStats(stat)
if err != nil {
klog.Warningf("Failed to get HNS endpoint %q with error '%v', continue to get stats for other endpoints", stat.EndpointId, err)
klog.InfoS("Failed to get HNS endpoint, continue to get stats for other endpoints", "endpointID", stat.EndpointId, "err", err)
continue
}

View File

@ -246,7 +246,7 @@ func cadvisorInfoToUserDefinedMetrics(info *cadvisorapiv2.ContainerInfo) []stats
for name, values := range stat.CustomMetrics {
specVal, ok := udmMap[name]
if !ok {
klog.Warningf("spec for custom metric %q is missing from cAdvisor output. Spec: %+v, Metrics: %+v", name, info.Spec, stat.CustomMetrics)
klog.InfoS("Spec for custom metric is missing from cAdvisor output", "metric", name, "spec", info.Spec, "metrics", stat.CustomMetrics)
continue
}
for _, value := range values {