mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Migrate pkg/kubelet/stats to structured logging
This commit is contained in:
parent
f6152d1521
commit
7097d4f8e2
@ -144,11 +144,11 @@ func (p *cadvisorStatsProvider) ListPodStats() ([]statsapi.PodStats, error) {
|
|||||||
|
|
||||||
logStats, err := p.hostStatsProvider.getPodLogStats(podStats.PodRef.Namespace, podStats.PodRef.Name, podUID, &rootFsInfo)
|
logStats, err := p.hostStatsProvider.getPodLogStats(podStats.PodRef.Namespace, podStats.PodRef.Name, podUID, &rootFsInfo)
|
||||||
if err != nil {
|
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)
|
etcHostsStats, err := p.hostStatsProvider.getPodEtcHostsStats(podUID, &rootFsInfo)
|
||||||
if err != nil {
|
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)
|
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)
|
podNamespace := kubetypes.GetPodNamespace(cinfo.Spec.Labels)
|
||||||
managed := podName != "" && podNamespace != ""
|
managed := podName != "" && podNamespace != ""
|
||||||
if !managed && podName != podNamespace {
|
if !managed && podName != podNamespace {
|
||||||
klog.Warningf(
|
klog.InfoS(
|
||||||
"Expect container to have either both podName (%s) and podNamespace (%s) labels, or neither.",
|
"Expect container to have either both podName and podNamespace labels, or neither",
|
||||||
podName, podNamespace)
|
"podNameLabel", podName, "podNamespaceLabel", podNamespace)
|
||||||
}
|
}
|
||||||
return managed
|
return managed
|
||||||
}
|
}
|
||||||
@ -412,7 +412,7 @@ func getCadvisorContainerInfo(ca cadvisor.Interface) (map[string]cadvisorapiv2.C
|
|||||||
if _, ok := infos["/"]; ok {
|
if _, ok := infos["/"]; ok {
|
||||||
// If the failure is partial, log it and return a best-effort
|
// If the failure is partial, log it and return a best-effort
|
||||||
// response.
|
// response.
|
||||||
klog.Errorf("Partial failure issuing cadvisor.ContainerInfoV2: %v", err)
|
klog.ErrorS(err, "Partial failure issuing cadvisor.ContainerInfoV2")
|
||||||
} else {
|
} else {
|
||||||
return nil, fmt.Errorf("failed to get root cgroup stats: %v", err)
|
return nil, fmt.Errorf("failed to get root cgroup stats: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,7 @@ func (p *criStatsProvider) listPodStats(updateCPUNanoCoreUsage bool) ([]statsapi
|
|||||||
// container stats
|
// container stats
|
||||||
caStats, caFound := caInfos[containerID]
|
caStats, caFound := caInfos[containerID]
|
||||||
if !caFound {
|
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 {
|
} else {
|
||||||
p.addCadvisorContainerStats(cs, &caStats)
|
p.addCadvisorContainerStats(cs, &caStats)
|
||||||
}
|
}
|
||||||
@ -283,7 +283,7 @@ func (p *criStatsProvider) ListPodCPUAndMemoryStats() ([]statsapi.PodStats, erro
|
|||||||
// container stats
|
// container stats
|
||||||
caStats, caFound := caInfos[containerID]
|
caStats, caFound := caInfos[containerID]
|
||||||
if !caFound {
|
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 {
|
} else {
|
||||||
p.addCadvisorContainerCPUAndMemoryStats(cs, &caStats)
|
p.addCadvisorContainerCPUAndMemoryStats(cs, &caStats)
|
||||||
}
|
}
|
||||||
@ -356,17 +356,17 @@ func (p *criStatsProvider) ImageFsDevice() (string, error) {
|
|||||||
// nil.
|
// nil.
|
||||||
func (p *criStatsProvider) getFsInfo(fsID *runtimeapi.FilesystemIdentifier) *cadvisorapiv2.FsInfo {
|
func (p *criStatsProvider) getFsInfo(fsID *runtimeapi.FilesystemIdentifier) *cadvisorapiv2.FsInfo {
|
||||||
if fsID == nil {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
mountpoint := fsID.GetMountpoint()
|
mountpoint := fsID.GetMountpoint()
|
||||||
fsInfo, err := p.cadvisor.GetDirFsInfo(mountpoint)
|
fsInfo, err := p.cadvisor.GetDirFsInfo(mountpoint)
|
||||||
if err != nil {
|
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 {
|
if err == cadvisorfs.ErrNoSuchDevice {
|
||||||
klog.V(2).Info(msg)
|
klog.V(2).InfoS(msg, "mountpoint", mountpoint, "err", err)
|
||||||
} else {
|
} else {
|
||||||
klog.Error(msg)
|
klog.ErrorS(err, msg, "mountpoint", mountpoint)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -396,7 +396,7 @@ func (p *criStatsProvider) makePodStorageStats(s *statsapi.PodStats, rootFsInfo
|
|||||||
}
|
}
|
||||||
logStats, err := p.hostStatsProvider.getPodLogStats(podNs, podName, podUID, rootFsInfo)
|
logStats, err := p.hostStatsProvider.getPodLogStats(podNs, podName, podUID, rootFsInfo)
|
||||||
if err != nil {
|
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
|
// 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.
|
// the old log path. For those pods, no pod log stats is returned.
|
||||||
// We should continue generating other stats in that case.
|
// 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)
|
etcHostsStats, err := p.hostStatsProvider.getPodEtcHostsStats(podUID, rootFsInfo)
|
||||||
if err != nil {
|
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))
|
ephemeralStats := make([]statsapi.VolumeStats, len(vstats.EphemeralVolumes))
|
||||||
copy(ephemeralStats, vstats.EphemeralVolumes)
|
copy(ephemeralStats, vstats.EphemeralVolumes)
|
||||||
@ -436,7 +436,7 @@ func (p *criStatsProvider) addPodNetworkStats(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: sum Pod network stats from container stats.
|
// 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(
|
func (p *criStatsProvider) addPodCPUMemoryStats(
|
||||||
@ -580,7 +580,7 @@ func (p *criStatsProvider) makeContainerStats(
|
|||||||
var err error
|
var err error
|
||||||
result.Logs, err = p.hostStatsProvider.getPodContainerLogStats(meta.GetNamespace(), meta.GetName(), types.UID(meta.GetUid()), container.GetMetadata().GetName(), rootFsInfo)
|
result.Logs, err = p.hostStatsProvider.getPodContainerLogStats(meta.GetNamespace(), meta.GetName(), types.UID(meta.GetUid()), container.GetMetadata().GetName(), rootFsInfo)
|
||||||
if err != nil {
|
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
|
return result
|
||||||
}
|
}
|
||||||
@ -680,7 +680,7 @@ func (p *criStatsProvider) getAndUpdateContainerUsageNanoCores(stats *runtimeapi
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// This should not happen. Log now to raise visibility
|
// 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
|
return usage
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ func (p *criStatsProvider) listContainerNetworkStats() (map[string]*statsapi.Net
|
|||||||
for _, c := range containers {
|
for _, c := range containers {
|
||||||
cstats, err := fetchContainerStats(c)
|
cstats, err := fetchContainerStats(c)
|
||||||
if err != nil {
|
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
|
continue
|
||||||
}
|
}
|
||||||
if len(cstats.Network) > 0 {
|
if len(cstats.Network) > 0 {
|
||||||
@ -86,7 +86,7 @@ func hcsStatsToNetworkStats(timestamp time.Time, hcsStats []hcsshim.NetworkStats
|
|||||||
for _, stat := range hcsStats {
|
for _, stat := range hcsStats {
|
||||||
iStat, err := hcsStatsToInterfaceStats(stat)
|
iStat, err := hcsStatsToInterfaceStats(stat)
|
||||||
if err != nil {
|
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
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ func cadvisorInfoToUserDefinedMetrics(info *cadvisorapiv2.ContainerInfo) []stats
|
|||||||
for name, values := range stat.CustomMetrics {
|
for name, values := range stat.CustomMetrics {
|
||||||
specVal, ok := udmMap[name]
|
specVal, ok := udmMap[name]
|
||||||
if !ok {
|
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
|
continue
|
||||||
}
|
}
|
||||||
for _, value := range values {
|
for _, value := range values {
|
||||||
|
Loading…
Reference in New Issue
Block a user