From 2449b0997cc304920f1c0e94c61c983d3a3f45da Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Fri, 15 Feb 2019 12:20:23 +0800 Subject: [PATCH] Revert "Add network stats for Windows containers" This reverts commit 9cf38de44b3fd469c833e1efbcc28885d9dfc0de. --- pkg/kubelet/stats/BUILD | 9 +- pkg/kubelet/stats/cri_stats_provider.go | 23 +---- .../stats/cri_stats_provider_unsupported.go | 29 ------ .../stats/cri_stats_provider_windows.go | 91 ------------------- pkg/kubelet/stats/helper.go | 7 +- 5 files changed, 7 insertions(+), 152 deletions(-) delete mode 100644 pkg/kubelet/stats/cri_stats_provider_unsupported.go delete mode 100644 pkg/kubelet/stats/cri_stats_provider_windows.go diff --git a/pkg/kubelet/stats/BUILD b/pkg/kubelet/stats/BUILD index dd2c9dd713c..3f6398686bb 100644 --- a/pkg/kubelet/stats/BUILD +++ b/pkg/kubelet/stats/BUILD @@ -5,8 +5,6 @@ go_library( srcs = [ "cadvisor_stats_provider.go", "cri_stats_provider.go", - "cri_stats_provider_unsupported.go", - "cri_stats_provider_windows.go", "helper.go", "log_metrics_provider.go", "stats_provider.go", @@ -34,12 +32,7 @@ go_library( "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", "//vendor/k8s.io/klog:go_default_library", - ] + select({ - "@io_bazel_rules_go//go/platform:windows": [ - "//vendor/github.com/Microsoft/hcsshim:go_default_library", - ], - "//conditions:default": [], - }), + ], ) filegroup( diff --git a/pkg/kubelet/stats/cri_stats_provider.go b/pkg/kubelet/stats/cri_stats_provider.go index 17316ffce8c..c2657d9b6a4 100644 --- a/pkg/kubelet/stats/cri_stats_provider.go +++ b/pkg/kubelet/stats/cri_stats_provider.go @@ -26,10 +26,11 @@ import ( "time" cadvisorfs "github.com/google/cadvisor/fs" + "k8s.io/klog" + cadvisorapiv2 "github.com/google/cadvisor/info/v2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/klog" internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" @@ -134,12 +135,6 @@ func (p *criStatsProvider) ListPodStats() ([]statsapi.PodStats, error) { } caInfos := getCRICadvisorStats(allInfos) - // get network stats for containers. - containerNetworkStats, err := p.listContainerNetworkStats() - if err != nil { - return nil, fmt.Errorf("failed to list container network stats: %v", err) - } - for _, stats := range resp { containerID := stats.Attributes.Id container, found := containerMap[containerID] @@ -163,7 +158,7 @@ func (p *criStatsProvider) ListPodStats() ([]statsapi.PodStats, error) { // Fill available stats for full set of required pod stats cs := p.makeContainerStats(stats, container, &rootFsInfo, fsIDtoInfo, podSandbox.GetMetadata().GetUid()) - p.addPodNetworkStats(ps, podSandboxID, caInfos, cs, containerNetworkStats[podSandboxID]) + p.addPodNetworkStats(ps, podSandboxID, caInfos, cs) p.addPodCPUMemoryStats(ps, types.UID(podSandbox.Metadata.Uid), allInfos, cs) // If cadvisor stats is available for the container, use it to populate @@ -373,21 +368,11 @@ func (p *criStatsProvider) addPodNetworkStats( podSandboxID string, caInfos map[string]cadvisorapiv2.ContainerInfo, cs *statsapi.ContainerStats, - netStats *statsapi.NetworkStats, ) { caPodSandbox, found := caInfos[podSandboxID] // try get network stats from cadvisor first. if found { - networkStats := cadvisorInfoToNetworkStats(ps.PodRef.Name, &caPodSandbox) - if networkStats != nil { - ps.Network = networkStats - return - } - } - - // Not found from cadvisor, get from netStats. - if netStats != nil { - ps.Network = netStats + ps.Network = cadvisorInfoToNetworkStats(ps.PodRef.Name, &caPodSandbox) return } diff --git a/pkg/kubelet/stats/cri_stats_provider_unsupported.go b/pkg/kubelet/stats/cri_stats_provider_unsupported.go deleted file mode 100644 index be08a241ab9..00000000000 --- a/pkg/kubelet/stats/cri_stats_provider_unsupported.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build !windows - -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package stats - -import ( - statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" -) - -// listContainerNetworkStats returns the network stats of all the running containers. -func (p *criStatsProvider) listContainerNetworkStats() (map[string]*statsapi.NetworkStats, error) { - // Always return nil for unsupported platforms. - return nil, nil -} diff --git a/pkg/kubelet/stats/cri_stats_provider_windows.go b/pkg/kubelet/stats/cri_stats_provider_windows.go deleted file mode 100644 index bbc45647424..00000000000 --- a/pkg/kubelet/stats/cri_stats_provider_windows.go +++ /dev/null @@ -1,91 +0,0 @@ -// +build windows - -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package stats - -import ( - "time" - - "github.com/Microsoft/hcsshim" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/klog" - statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" -) - -// listContainerNetworkStats returns the network stats of all the running containers. -func (p *criStatsProvider) listContainerNetworkStats() (map[string]*statsapi.NetworkStats, error) { - containers, err := hcsshim.GetContainers(hcsshim.ComputeSystemQuery{ - Types: []string{"Container"}, - }) - if err != nil { - return nil, err - } - - stats := make(map[string]*statsapi.NetworkStats) - for _, c := range containers { - container, err := hcsshim.OpenContainer(c.ID) - if err != nil { - klog.Warningf("Failed to open container %q with error '%v', continue to get stats for other containers", c.ID, err) - continue - } - - cstats, err := container.Statistics() - if err != nil { - klog.Warningf("Failed to get statistics for container %q with error '%v', continue to get stats for other containers", c.ID, err) - continue - } - - if len(cstats.Network) > 0 { - stats[c.ID] = hcsStatsToNetworkStats(cstats.Timestamp, cstats.Network) - } - } - - return stats, nil -} - -// hcsStatsToNetworkStats converts hcsshim.Statistics.Network to statsapi.NetworkStats -func hcsStatsToNetworkStats(timestamp time.Time, hcsStats []hcsshim.NetworkStats) *statsapi.NetworkStats { - result := &statsapi.NetworkStats{ - Time: metav1.NewTime(timestamp), - Interfaces: make([]statsapi.InterfaceStats, 0), - } - - for _, stat := range hcsStats { - iStat := hcsStatsToInterfaceStats(stat) - if iStat != nil { - result.Interfaces = append(result.Interfaces, *iStat) - } - } - - // TODO(feiskyer): add support of multiple interfaces for getting default interface. - if len(result.Interfaces) > 0 { - result.InterfaceStats = result.Interfaces[0] - } - - return result -} - -// hcsStatsToInterfaceStats converts hcsshim.NetworkStats to statsapi.InterfaceStats. -func hcsStatsToInterfaceStats(stat hcsshim.NetworkStats) *statsapi.InterfaceStats { - return &statsapi.InterfaceStats{ - Name: stat.EndpointId, - RxBytes: &stat.BytesReceived, - TxBytes: &stat.BytesSent, - } -} diff --git a/pkg/kubelet/stats/helper.go b/pkg/kubelet/stats/helper.go index 024f8981d8d..54f3093e553 100644 --- a/pkg/kubelet/stats/helper.go +++ b/pkg/kubelet/stats/helper.go @@ -20,10 +20,11 @@ import ( "fmt" "time" + "k8s.io/klog" + cadvisorapiv1 "github.com/google/cadvisor/info/v1" cadvisorapiv2 "github.com/google/cadvisor/info/v2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/klog" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/cadvisor" ) @@ -157,10 +158,6 @@ func cadvisorInfoToNetworkStats(name string, info *cadvisorapiv2.ContainerInfo) return nil } - if cstat.Network == nil { - return nil - } - iStats := statsapi.NetworkStats{ Time: metav1.NewTime(cstat.Timestamp), }