summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/k8s_kubelet
diff options
context:
space:
mode:
Diffstat (limited to 'src/go/collectors/go.d.plugin/modules/k8s_kubelet')
l---------src/go/collectors/go.d.plugin/modules/k8s_kubelet/README.md1
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/charts.go236
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/collect.go348
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/config_schema.json177
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/init.go35
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/integrations/kubelet.md219
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet.go122
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet_test.go213
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml331
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/metrics.go113
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.json21
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.yaml18
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/metrics.txt574
-rw-r--r--src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/token.txt1
14 files changed, 0 insertions, 2409 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/README.md b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/README.md
deleted file mode 120000
index 036630b3e..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/README.md
+++ /dev/null
@@ -1 +0,0 @@
-integrations/kubelet.md \ No newline at end of file
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/charts.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/charts.go
deleted file mode 100644
index 564f7be58..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/charts.go
+++ /dev/null
@@ -1,236 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import "github.com/netdata/netdata/go/go.d.plugin/agent/module"
-
-type (
- // Charts is an alias for module.Charts
- Charts = module.Charts
- // Chart is an alias for module.Chart
- Chart = module.Chart
- // Dims is an alias for module.Dims
- Dims = module.Dims
- // Dim is an alias for module.Dim
- Dim = module.Dim
-)
-
-var charts = Charts{
- {
- ID: "apiserver_audit_requests_rejected_total",
- Title: "API Server Audit Requests",
- Units: "requests/s",
- Fam: "api server",
- Ctx: "k8s_kubelet.apiserver_audit_requests_rejected",
- Dims: Dims{
- {ID: "apiserver_audit_requests_rejected_total", Name: "rejected", Algo: module.Incremental},
- },
- },
- {
- ID: "apiserver_storage_data_key_generation_failures_total",
- Title: "API Server Failed Data Encryption Key(DEK) Generation Operations",
- Units: "events/s",
- Fam: "api server",
- Ctx: "k8s_kubelet.apiserver_storage_data_key_generation_failures",
- Dims: Dims{
- {ID: "apiserver_storage_data_key_generation_failures_total", Name: "failures", Algo: module.Incremental},
- },
- },
- {
- ID: "apiserver_storage_data_key_generation_latencies",
- Title: "API Server Latencies Of Data Encryption Key(DEK) Generation Operations",
- Units: "observes/s",
- Fam: "api server",
- Ctx: "k8s_kubelet.apiserver_storage_data_key_generation_latencies",
- Type: module.Stacked,
- Dims: Dims{
- {ID: "apiserver_storage_data_key_generation_bucket_5", Name: "5 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_10", Name: "10 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_20", Name: "20 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_40", Name: "40 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_80", Name: "80 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_160", Name: "160 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_320", Name: "320 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_640", Name: "640 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_1280", Name: "1280 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_2560", Name: "2560 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_5120", Name: "5120 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_10240", Name: "10240 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_20480", Name: "20480 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_40960", Name: "40960 µs", Algo: module.Incremental},
- {ID: "apiserver_storage_data_key_generation_bucket_+Inf", Name: "+Inf", Algo: module.Incremental},
- },
- },
- {
- ID: "apiserver_storage_data_key_generation_latencies_percentage",
- Title: "API Server Latencies Of Data Encryption Key(DEK) Generation Operations Percentage",
- Units: "%",
- Fam: "api server",
- Ctx: "k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent",
- Type: module.Stacked,
- Dims: Dims{
- {ID: "apiserver_storage_data_key_generation_bucket_5", Name: "5 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_10", Name: "10 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_20", Name: "20 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_40", Name: "40 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_80", Name: "80 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_160", Name: "160 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_320", Name: "320 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_640", Name: "640 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_1280", Name: "1280 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_2560", Name: "2560 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_5120", Name: "5120 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_10240", Name: "10240 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_20480", Name: "20480 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_40960", Name: "40960 µs", Algo: module.PercentOfIncremental},
- {ID: "apiserver_storage_data_key_generation_bucket_+Inf", Name: "+Inf", Algo: module.PercentOfIncremental},
- },
- },
- {
- ID: "apiserver_storage_envelope_transformation_cache_misses_total",
- Title: "API Server Storage Envelope Transformation Cache Misses",
- Units: "events/s",
- Fam: "api server",
- Ctx: "k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses",
- Dims: Dims{
- {ID: "apiserver_storage_envelope_transformation_cache_misses_total", Name: "cache misses", Algo: module.Incremental},
- },
- },
- {
- ID: "kubelet_containers_running",
- Title: "Number Of Containers Currently Running",
- Units: "running containers",
- Fam: "containers",
- Ctx: "k8s_kubelet.kubelet_containers_running",
- Dims: Dims{
- {ID: "kubelet_running_container", Name: "total"},
- },
- },
- {
- ID: "kubelet_pods_running",
- Title: "Number Of Pods Currently Running",
- Units: "running pods",
- Fam: "pods",
- Ctx: "k8s_kubelet.kubelet_pods_running",
- Dims: Dims{
- {ID: "kubelet_running_pod", Name: "total"},
- },
- },
- {
- ID: "kubelet_pods_log_filesystem_used_bytes",
- Title: "Bytes Used By The Pod Logs On The Filesystem",
- Units: "B",
- Fam: "pods",
- Ctx: "k8s_kubelet.kubelet_pods_log_filesystem_used_bytes",
- Type: module.Stacked,
- },
- {
- ID: "kubelet_runtime_operations",
- Title: "Runtime Operations By Type",
- Units: "operations/s",
- Fam: "operations",
- Ctx: "k8s_kubelet.kubelet_runtime_operations",
- Type: module.Stacked,
- },
- {
- ID: "kubelet_runtime_operations_errors",
- Title: "Runtime Operations Errors By Type",
- Units: "errors/s",
- Fam: "operations",
- Ctx: "k8s_kubelet.kubelet_runtime_operations_errors",
- Type: module.Stacked,
- },
- {
- ID: "kubelet_docker_operations",
- Title: "Docker Operations By Type",
- Units: "operations/s",
- Fam: "operations",
- Ctx: "k8s_kubelet.kubelet_docker_operations",
- Type: module.Stacked,
- },
- {
- ID: "kubelet_docker_operations_errors",
- Title: "Docker Operations Errors By Type",
- Units: "errors/s",
- Fam: "operations",
- Ctx: "k8s_kubelet.kubelet_docker_operations_errors",
- Type: module.Stacked,
- },
- {
- ID: "kubelet_node_config_error",
- Title: "Node Configuration-Related Error",
- Units: "bool",
- Fam: "config error",
- Ctx: "k8s_kubelet.kubelet_node_config_error",
- Dims: Dims{
- {ID: "kubelet_node_config_error", Name: "experiencing_error"},
- },
- },
- {
- ID: "kubelet_pleg_relist_interval_microseconds",
- Title: "PLEG Relisting Interval Summary",
- Units: "microseconds",
- Fam: "pleg relisting",
- Ctx: "k8s_kubelet.kubelet_pleg_relist_interval_microseconds",
- Type: module.Stacked,
- Dims: Dims{
- {ID: "kubelet_pleg_relist_interval_05", Name: "0.5"},
- {ID: "kubelet_pleg_relist_interval_09", Name: "0.9"},
- {ID: "kubelet_pleg_relist_interval_099", Name: "0.99"},
- },
- },
- {
- ID: "kubelet_pleg_relist_latency_microseconds",
- Title: "PLEG Relisting Latency Summary",
- Units: "microseconds",
- Fam: "pleg relisting",
- Ctx: "k8s_kubelet.kubelet_pleg_relist_latency_microseconds",
- Type: module.Stacked,
- Dims: Dims{
- {ID: "kubelet_pleg_relist_latency_05", Name: "0.5"},
- {ID: "kubelet_pleg_relist_latency_09", Name: "0.9"},
- {ID: "kubelet_pleg_relist_latency_099", Name: "0.99"},
- },
- },
- {
- ID: "kubelet_token_requests",
- Title: "Token() Requests To The Alternate Token Source",
- Units: "token requests/s",
- Fam: "token",
- Ctx: "k8s_kubelet.kubelet_token_requests",
- Dims: Dims{
- {ID: "token_count", Name: "total", Algo: module.Incremental},
- {ID: "token_fail_count", Name: "failed", Algo: module.Incremental},
- },
- },
- {
- ID: "rest_client_requests_by_code",
- Title: "HTTP Requests By Status Code",
- Units: "requests/s",
- Fam: "rest client",
- Ctx: "k8s_kubelet.rest_client_requests_by_code",
- Type: module.Stacked,
- },
- {
- ID: "rest_client_requests_by_method",
- Title: "HTTP Requests By Status Method",
- Units: "requests/s",
- Fam: "rest client",
- Ctx: "k8s_kubelet.rest_client_requests_by_method",
- Type: module.Stacked,
- },
-}
-
-func newVolumeManagerChart(name string) *Chart {
- return &Chart{
- ID: "volume_manager_total_volumes_" + name,
- Title: "Volume Manager State Of The World, Plugin " + name,
- Units: "state",
- Fam: "volume manager",
- Ctx: "k8s_kubelet.volume_manager_total_volumes",
- Dims: Dims{
- {ID: "volume_manager_plugin_" + name + "_state_actual", Name: "actual"},
- {ID: "volume_manager_plugin_" + name + "_state_desired", Name: "desired"},
- },
- }
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/collect.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/collect.go
deleted file mode 100644
index 350c0bf45..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/collect.go
+++ /dev/null
@@ -1,348 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import (
- "math"
-
- mtx "github.com/netdata/netdata/go/go.d.plugin/pkg/metrics"
- "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus"
- "github.com/netdata/netdata/go/go.d.plugin/pkg/stm"
-
- "github.com/netdata/netdata/go/go.d.plugin/agent/module"
-)
-
-func (k *Kubelet) collect() (map[string]int64, error) {
- raw, err := k.prom.ScrapeSeries()
-
- if err != nil {
- return nil, err
- }
-
- mx := newMetrics()
-
- k.collectToken(raw, mx)
- k.collectRESTClientHTTPRequests(raw, mx)
- k.collectAPIServer(raw, mx)
- k.collectKubelet(raw, mx)
- k.collectVolumeManager(raw, mx)
-
- return stm.ToMap(mx), nil
-}
-
-func (k *Kubelet) collectLogsUsagePerPod(raw prometheus.Series, mx *metrics) {
- chart := k.charts.Get("kubelet_pods_log_filesystem_used_bytes")
- seen := make(map[string]bool)
-
- for _, metric := range raw.FindByName("kubelet_container_log_filesystem_used_bytes") {
- pod := metric.Labels.Get("pod")
- namespace := metric.Labels.Get("namespace")
-
- if pod == "" || namespace == "" {
- continue
- }
-
- key := namespace + "_" + pod
- dimID := "kubelet_log_file_system_usage_" + key
-
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: pod})
- chart.MarkNotCreated()
- }
-
- seen[dimID] = true
- v := mx.Kubelet.PodLogFileSystemUsage[key]
- v.Add(metric.Value)
- mx.Kubelet.PodLogFileSystemUsage[key] = v
- }
-
- for _, dim := range chart.Dims {
- if seen[dim.ID] {
- continue
- }
- _ = chart.MarkDimRemove(dim.ID, false)
- chart.MarkNotCreated()
- }
-}
-
-func (k *Kubelet) collectVolumeManager(raw prometheus.Series, mx *metrics) {
- vmPlugins := make(map[string]*volumeManagerPlugin)
-
- for _, metric := range raw.FindByName("volume_manager_total_volumes") {
- pluginName := metric.Labels.Get("plugin_name")
- state := metric.Labels.Get("state")
-
- if !k.collectedVMPlugins[pluginName] {
- _ = k.charts.Add(newVolumeManagerChart(pluginName))
- k.collectedVMPlugins[pluginName] = true
- }
- if _, ok := vmPlugins[pluginName]; !ok {
- vmPlugins[pluginName] = &volumeManagerPlugin{}
- }
-
- switch state {
- case "actual_state_of_world":
- vmPlugins[pluginName].State.Actual.Set(metric.Value)
- case "desired_state_of_world":
- vmPlugins[pluginName].State.Desired.Set(metric.Value)
- }
- }
-
- mx.VolumeManager.Plugins = vmPlugins
-}
-
-func (k *Kubelet) collectKubelet(raw prometheus.Series, mx *metrics) {
- value := raw.FindByName("kubelet_node_config_error").Max()
- mx.Kubelet.NodeConfigError.Set(value)
-
- /*
- # HELP kubelet_running_containers [ALPHA] Number of containers currently running
- # TYPE kubelet_running_containers gauge
- kubelet_running_containers{container_state="created"} 1
- kubelet_running_containers{container_state="exited"} 13
- kubelet_running_containers{container_state="running"} 42
- kubelet_running_containers{container_state="unknown"} 1
- */
-
- ms := raw.FindByName("kubelet_running_container_count")
- value = ms.Max()
- if ms.Len() == 0 {
- for _, m := range raw.FindByName("kubelet_running_containers") {
- if m.Labels.Get("container_state") == "running" {
- value = m.Value
- break
- }
- }
- }
- mx.Kubelet.RunningContainerCount.Set(value)
-
- /*
- # HELP kubelet_running_pods [ALPHA] Number of pods currently running
- # TYPE kubelet_running_pods gauge
- kubelet_running_pods 37
- */
- value = raw.FindByNames("kubelet_running_pod_count", "kubelet_running_pods").Max()
- mx.Kubelet.RunningPodCount.Set(value)
-
- k.collectRuntimeOperations(raw, mx)
- k.collectRuntimeOperationsErrors(raw, mx)
- k.collectDockerOperations(raw, mx)
- k.collectDockerOperationsErrors(raw, mx)
- k.collectPLEGRelisting(raw, mx)
- k.collectLogsUsagePerPod(raw, mx)
-}
-
-func (k *Kubelet) collectAPIServer(raw prometheus.Series, mx *metrics) {
- value := raw.FindByName("apiserver_audit_requests_rejected_total").Max()
- mx.APIServer.Audit.Requests.Rejected.Set(value)
-
- value = raw.FindByName("apiserver_storage_data_key_generation_failures_total").Max()
- mx.APIServer.Storage.DataKeyGeneration.Failures.Set(value)
-
- value = raw.FindByName("apiserver_storage_envelope_transformation_cache_misses_total").Max()
- mx.APIServer.Storage.EnvelopeTransformation.CacheMisses.Set(value)
-
- k.collectStorageDataKeyGenerationLatencies(raw, mx)
-}
-
-func (k *Kubelet) collectToken(raw prometheus.Series, mx *metrics) {
- value := raw.FindByName("get_token_count").Max()
- mx.Token.Count.Set(value)
-
- value = raw.FindByName("get_token_fail_count").Max()
- mx.Token.FailCount.Set(value)
-}
-
-func (k *Kubelet) collectPLEGRelisting(raw prometheus.Series, mx *metrics) {
- // Summary
- for _, metric := range raw.FindByName("kubelet_pleg_relist_interval_microseconds") {
- if math.IsNaN(metric.Value) {
- continue
- }
- quantile := metric.Labels.Get("quantile")
- switch quantile {
- case "0.5":
- mx.Kubelet.PLEG.Relist.Interval.Quantile05.Set(metric.Value)
- case "0.9":
- mx.Kubelet.PLEG.Relist.Interval.Quantile09.Set(metric.Value)
- case "0.99":
- mx.Kubelet.PLEG.Relist.Interval.Quantile099.Set(metric.Value)
- }
- }
- for _, metric := range raw.FindByName("kubelet_pleg_relist_latency_microseconds") {
- if math.IsNaN(metric.Value) {
- continue
- }
- quantile := metric.Labels.Get("quantile")
- switch quantile {
- case "0.5":
- mx.Kubelet.PLEG.Relist.Latency.Quantile05.Set(metric.Value)
- case "0.9":
- mx.Kubelet.PLEG.Relist.Latency.Quantile09.Set(metric.Value)
- case "0.99":
- mx.Kubelet.PLEG.Relist.Latency.Quantile099.Set(metric.Value)
- }
- }
-}
-
-func (k *Kubelet) collectStorageDataKeyGenerationLatencies(raw prometheus.Series, mx *metrics) {
- latencies := &mx.APIServer.Storage.DataKeyGeneration.Latencies
- metricName := "apiserver_storage_data_key_generation_latencies_microseconds_bucket"
-
- for _, metric := range raw.FindByName(metricName) {
- value := metric.Value
- bucket := metric.Labels.Get("le")
- switch bucket {
- case "5":
- latencies.LE5.Set(value)
- case "10":
- latencies.LE10.Set(value)
- case "20":
- latencies.LE20.Set(value)
- case "40":
- latencies.LE40.Set(value)
- case "80":
- latencies.LE80.Set(value)
- case "160":
- latencies.LE160.Set(value)
- case "320":
- latencies.LE320.Set(value)
- case "640":
- latencies.LE640.Set(value)
- case "1280":
- latencies.LE1280.Set(value)
- case "2560":
- latencies.LE2560.Set(value)
- case "5120":
- latencies.LE5120.Set(value)
- case "10240":
- latencies.LE10240.Set(value)
- case "20480":
- latencies.LE20480.Set(value)
- case "40960":
- latencies.LE40960.Set(value)
- case "+Inf":
- latencies.LEInf.Set(value)
- }
- }
-
- latencies.LEInf.Sub(latencies.LE40960.Value())
- latencies.LE40960.Sub(latencies.LE20480.Value())
- latencies.LE20480.Sub(latencies.LE10240.Value())
- latencies.LE10240.Sub(latencies.LE5120.Value())
- latencies.LE5120.Sub(latencies.LE2560.Value())
- latencies.LE2560.Sub(latencies.LE1280.Value())
- latencies.LE1280.Sub(latencies.LE640.Value())
- latencies.LE640.Sub(latencies.LE320.Value())
- latencies.LE320.Sub(latencies.LE160.Value())
- latencies.LE160.Sub(latencies.LE80.Value())
- latencies.LE80.Sub(latencies.LE40.Value())
- latencies.LE40.Sub(latencies.LE20.Value())
- latencies.LE20.Sub(latencies.LE10.Value())
- latencies.LE10.Sub(latencies.LE5.Value())
-}
-
-func (k *Kubelet) collectRESTClientHTTPRequests(raw prometheus.Series, mx *metrics) {
- metricName := "rest_client_requests_total"
- chart := k.charts.Get("rest_client_requests_by_code")
-
- for _, metric := range raw.FindByName(metricName) {
- code := metric.Labels.Get("code")
- if code == "" {
- continue
- }
- dimID := "rest_client_requests_" + code
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: code, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.RESTClient.Requests.ByStatusCode[code] = mtx.Gauge(metric.Value)
- }
-
- chart = k.charts.Get("rest_client_requests_by_method")
-
- for _, metric := range raw.FindByName(metricName) {
- method := metric.Labels.Get("method")
- if method == "" {
- continue
- }
- dimID := "rest_client_requests_" + method
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: method, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.RESTClient.Requests.ByMethod[method] = mtx.Gauge(metric.Value)
- }
-}
-
-func (k *Kubelet) collectRuntimeOperations(raw prometheus.Series, mx *metrics) {
- chart := k.charts.Get("kubelet_runtime_operations")
-
- // kubelet_runtime_operations_total
- for _, metric := range raw.FindByNames("kubelet_runtime_operations", "kubelet_runtime_operations_total") {
- opType := metric.Labels.Get("operation_type")
- if opType == "" {
- continue
- }
- dimID := "kubelet_runtime_operations_" + opType
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: opType, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.Kubelet.Runtime.Operations[opType] = mtx.Gauge(metric.Value)
- }
-}
-
-func (k *Kubelet) collectRuntimeOperationsErrors(raw prometheus.Series, mx *metrics) {
- chart := k.charts.Get("kubelet_runtime_operations_errors")
-
- // kubelet_runtime_operations_errors_total
- for _, metric := range raw.FindByNames("kubelet_runtime_operations_errors", "kubelet_runtime_operations_errors_total") {
- opType := metric.Labels.Get("operation_type")
- if opType == "" {
- continue
- }
- dimID := "kubelet_runtime_operations_errors_" + opType
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: opType, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.Kubelet.Runtime.OperationsErrors[opType] = mtx.Gauge(metric.Value)
- }
-}
-
-func (k *Kubelet) collectDockerOperations(raw prometheus.Series, mx *metrics) {
- chart := k.charts.Get("kubelet_docker_operations")
-
- // kubelet_docker_operations_total
- for _, metric := range raw.FindByNames("kubelet_docker_operations", "kubelet_docker_operations_total") {
- opType := metric.Labels.Get("operation_type")
- if opType == "" {
- continue
- }
- dimID := "kubelet_docker_operations_" + opType
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: opType, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.Kubelet.Docker.Operations[opType] = mtx.Gauge(metric.Value)
- }
-}
-
-func (k *Kubelet) collectDockerOperationsErrors(raw prometheus.Series, mx *metrics) {
- chart := k.charts.Get("kubelet_docker_operations_errors")
-
- // kubelet_docker_operations_errors_total
- for _, metric := range raw.FindByNames("kubelet_docker_operations_errors", "kubelet_docker_operations_errors_total") {
- opType := metric.Labels.Get("operation_type")
- if opType == "" {
- continue
- }
- dimID := "kubelet_docker_operations_errors_" + opType
- if !chart.HasDim(dimID) {
- _ = chart.AddDim(&Dim{ID: dimID, Name: opType, Algo: module.Incremental})
- chart.MarkNotCreated()
- }
- mx.Kubelet.Docker.OperationsErrors[opType] = mtx.Gauge(metric.Value)
- }
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/config_schema.json b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/config_schema.json
deleted file mode 100644
index ffc55b837..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/config_schema.json
+++ /dev/null
@@ -1,177 +0,0 @@
-{
- "jsonSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Kubelet collector configuration.",
- "type": "object",
- "properties": {
- "update_every": {
- "title": "Update every",
- "description": "Data collection interval, measured in seconds.",
- "type": "integer",
- "minimum": 1,
- "default": 1
- },
- "url": {
- "title": "URL",
- "description": "The URL of the Kubelet metrics endpoint.",
- "type": "string",
- "default": "http://127.0.0.1:10255/metrics",
- "format": "uri"
- },
- "timeout": {
- "title": "Timeout",
- "description": "The timeout in seconds for the HTTP request.",
- "type": "number",
- "minimum": 0.5,
- "default": 1
- },
- "not_follow_redirects": {
- "title": "Not follow redirects",
- "description": "If set, the client will not follow HTTP redirects automatically.",
- "type": "boolean"
- },
- "username": {
- "title": "Username",
- "description": "The username for basic authentication.",
- "type": "string",
- "sensitive": true
- },
- "password": {
- "title": "Password",
- "description": "The password for basic authentication.",
- "type": "string",
- "sensitive": true
- },
- "proxy_url": {
- "title": "Proxy URL",
- "description": "The URL of the proxy server.",
- "type": "string"
- },
- "proxy_username": {
- "title": "Proxy username",
- "description": "The username for proxy authentication.",
- "type": "string",
- "sensitive": true
- },
- "proxy_password": {
- "title": "Proxy password",
- "description": "The password for proxy authentication.",
- "type": "string",
- "sensitive": true
- },
- "headers": {
- "title": "Headers",
- "description": "Additional HTTP headers to include in the request.",
- "type": [
- "object",
- "null"
- ],
- "additionalProperties": {
- "type": "string"
- }
- },
- "tls_skip_verify": {
- "title": "Skip TLS verification",
- "description": "If set, TLS certificate verification will be skipped.",
- "type": "boolean"
- },
- "tls_ca": {
- "title": "TLS CA",
- "description": "The path to the CA certificate file for TLS verification.",
- "type": "string",
- "pattern": "^$|^/"
- },
- "tls_cert": {
- "title": "TLS certificate",
- "description": "The path to the client certificate file for TLS authentication.",
- "type": "string",
- "pattern": "^$|^/"
- },
- "tls_key": {
- "title": "TLS key",
- "description": "The path to the client key file for TLS authentication.",
- "type": "string",
- "pattern": "^$|^/"
- },
- "body": {
- "title": "Body",
- "type": "string"
- },
- "method": {
- "title": "Method",
- "type": "string"
- }
- },
- "required": [
- "url"
- ],
- "additionalProperties": false,
- "patternProperties": {
- "^name$": {}
- }
- },
- "uiSchema": {
- "ui:flavour": "tabs",
- "ui:options": {
- "tabs": [
- {
- "title": "Base",
- "fields": [
- "update_every",
- "url",
- "timeout",
- "not_follow_redirects"
- ]
- },
- {
- "title": "Auth",
- "fields": [
- "username",
- "password"
- ]
- },
- {
- "title": "TLS",
- "fields": [
- "tls_skip_verify",
- "tls_ca",
- "tls_cert",
- "tls_key"
- ]
- },
- {
- "title": "Proxy",
- "fields": [
- "proxy_url",
- "proxy_username",
- "proxy_password"
- ]
- },
- {
- "title": "Headers",
- "fields": [
- "headers"
- ]
- }
- ]
- },
- "uiOptions": {
- "fullPage": true
- },
- "body": {
- "ui:widget": "hidden"
- },
- "method": {
- "ui:widget": "hidden"
- },
- "timeout": {
- "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)."
- },
- "password": {
- "ui:widget": "password"
- },
- "proxy_password": {
- "ui:widget": "password"
- }
- }
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/init.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/init.go
deleted file mode 100644
index 3a076160b..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/init.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import (
- "errors"
- "os"
-
- "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus"
- "github.com/netdata/netdata/go/go.d.plugin/pkg/web"
-)
-
-func (k *Kubelet) validateConfig() error {
- if k.URL == "" {
- return errors.New("url not set")
- }
- return nil
-}
-
-func (k *Kubelet) initAuthToken() string {
- bs, err := os.ReadFile(k.TokenPath)
- if err != nil {
- k.Warningf("error on reading service account token from '%s': %v", k.TokenPath, err)
- }
- return string(bs)
-}
-
-func (k *Kubelet) initPrometheusClient() (prometheus.Prometheus, error) {
- httpClient, err := web.NewHTTPClient(k.Client)
- if err != nil {
- return nil, err
- }
-
- return prometheus.New(httpClient, k.Request), nil
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/integrations/kubelet.md b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/integrations/kubelet.md
deleted file mode 100644
index 3421b7a7a..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/integrations/kubelet.md
+++ /dev/null
@@ -1,219 +0,0 @@
-<!--startmeta
-custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/go/collectors/go.d.plugin/modules/k8s_kubelet/README.md"
-meta_yaml: "https://github.com/netdata/netdata/edit/master/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml"
-sidebar_label: "Kubelet"
-learn_status: "Published"
-learn_rel_path: "Collecting Metrics/Kubernetes"
-most_popular: True
-message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
-endmeta-->
-
-# Kubelet
-
-
-<img src="https://netdata.cloud/img/kubernetes.svg" width="150"/>
-
-
-Plugin: go.d.plugin
-Module: k8s_kubelet
-
-<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
-
-## Overview
-
-This collector monitors Kubelet instances.
-
-
-
-
-This collector is supported on all platforms.
-
-This collector supports collecting metrics from multiple instances of this integration, including remote instances.
-
-
-### Default Behavior
-
-#### Auto-Detection
-
-This integration doesn't support auto-detection.
-
-#### Limits
-
-The default configuration for this integration does not impose any limits on data collection.
-
-#### Performance Impact
-
-The default configuration for this integration is not expected to impose a significant performance impact on the system.
-
-
-## Metrics
-
-Metrics grouped by *scope*.
-
-The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
-
-
-
-### Per Kubelet instance
-
-These metrics refer to the entire monitored application.
-
-This scope has no labels.
-
-Metrics:
-
-| Metric | Dimensions | Unit |
-|:------|:----------|:----|
-| k8s_kubelet.apiserver_audit_requests_rejected | rejected | requests/s |
-| k8s_kubelet.apiserver_storage_data_key_generation_failures | failures | events/s |
-| k8s_kubelet.apiserver_storage_data_key_generation_latencies | 5_µs, 10_µs, 20_µs, 40_µs, 80_µs, 160_µs, 320_µs, 640_µs, 1280_µs, 2560_µs, 5120_µs, 10240_µs, 20480_µs, 40960_µs, +Inf | observes/s |
-| k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent | 5_µs, 10_µs, 20_µs, 40_µs, 80_µs, 160_µs, 320_µs, 640_µs, 1280_µs, 2560_µs, 5120_µs, 10240_µs, 20480_µs, 40960_µs, +Inf | percentage |
-| k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses | cache misses | events/s |
-| k8s_kubelet.kubelet_containers_running | total | running_containers |
-| k8s_kubelet.kubelet_pods_running | total | running_pods |
-| k8s_kubelet.kubelet_pods_log_filesystem_used_bytes | a dimension per namespace and pod | B |
-| k8s_kubelet.kubelet_runtime_operations | a dimension per operation type | operations/s |
-| k8s_kubelet.kubelet_runtime_operations_errors | a dimension per operation type | errors/s |
-| k8s_kubelet.kubelet_docker_operations | a dimension per operation type | operations/s |
-| k8s_kubelet.kubelet_docker_operations_errors | a dimension per operation type | errors/s |
-| k8s_kubelet.kubelet_node_config_error | experiencing_error | bool |
-| k8s_kubelet.kubelet_pleg_relist_interval_microseconds | 0.5, 0.9, 0.99 | microseconds |
-| k8s_kubelet.kubelet_pleg_relist_latency_microseconds | 0.5, 0.9, 0.99 | microseconds |
-| k8s_kubelet.kubelet_token_requests | total, failed | token_requests/s |
-| k8s_kubelet.rest_client_requests_by_code | a dimension per HTTP status code | requests/s |
-| k8s_kubelet.rest_client_requests_by_method | a dimension per HTTP method | requests/s |
-
-### Per volume manager
-
-These metrics refer to the Volume Manager.
-
-This scope has no labels.
-
-Metrics:
-
-| Metric | Dimensions | Unit |
-|:------|:----------|:----|
-| k8s_kubelet.volume_manager_total_volumes | actual, desired | state |
-
-
-
-## Alerts
-
-
-The following alerts are available:
-
-| Alert name | On metric | Description |
-|:------------|:----------|:------------|
-| [ kubelet_node_config_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_node_config_error | the node is experiencing a configuration-related error (0: false, 1: true) |
-| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |
-| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |
-| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |
-| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |
-
-
-## Setup
-
-### Prerequisites
-
-No action required.
-
-### Configuration
-
-#### File
-
-The configuration file name for this integration is `go.d/k8s_kubelet.conf`.
-
-
-You can edit the configuration file using the `edit-config` script from the
-Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory).
-
-```bash
-cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
-sudo ./edit-config go.d/k8s_kubelet.conf
-```
-#### Options
-
-The following options can be defined globally: update_every, autodetection_retry.
-
-
-<details open><summary>Config options</summary>
-
-| Name | Description | Default | Required |
-|:----|:-----------|:-------|:--------:|
-| update_every | Data collection frequency. | 1 | no |
-| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
-| url | Server URL. | http://127.0.0.1:10255/metrics | yes |
-| timeout | HTTP request timeout. | 1 | no |
-| username | Username for basic HTTP authentication. | | no |
-| password | Password for basic HTTP authentication. | | no |
-| proxy_url | Proxy URL. | | no |
-| proxy_username | Username for proxy basic HTTP authentication. | | no |
-| proxy_password | Password for proxy basic HTTP authentication. | | no |
-| method | HTTP request method. | GET | no |
-| body | HTTP request body. | | no |
-| headers | HTTP request headers. | | no |
-| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |
-| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |
-| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | no |
-| tls_cert | Client TLS certificate. | | no |
-| tls_key | Client TLS key. | | no |
-
-</details>
-
-#### Examples
-
-##### Basic
-
-A basic example configuration.
-
-```yaml
-jobs:
- - name: local
- url: http://127.0.0.1:10255/metrics
-
-```
-##### HTTPS with self-signed certificate
-
-Do not validate server certificate chain and hostname.
-
-
-<details open><summary>Config</summary>
-
-```yaml
-jobs:
- - name: local
- url: http://127.0.0.1:10250/metrics
- tls_skip_verify: yes
-
-```
-</details>
-
-
-
-## Troubleshooting
-
-### Debug Mode
-
-To troubleshoot issues with the `k8s_kubelet` collector, run the `go.d.plugin` with the debug option enabled. The output
-should give you clues as to why the collector isn't working.
-
-- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
- your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
-
- ```bash
- cd /usr/libexec/netdata/plugins.d/
- ```
-
-- Switch to the `netdata` user.
-
- ```bash
- sudo -u netdata -s
- ```
-
-- Run the `go.d.plugin` to debug the collector:
-
- ```bash
- ./go.d.plugin -d -m k8s_kubelet
- ```
-
-
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet.go
deleted file mode 100644
index 271950ad1..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet.go
+++ /dev/null
@@ -1,122 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import (
- _ "embed"
- "errors"
- "time"
-
- "github.com/netdata/netdata/go/go.d.plugin/agent/module"
- "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus"
- "github.com/netdata/netdata/go/go.d.plugin/pkg/web"
-)
-
-//go:embed "config_schema.json"
-var configSchema string
-
-func init() {
- module.Register("k8s_kubelet", module.Creator{
- JobConfigSchema: configSchema,
- Defaults: module.Defaults{
- // NETDATA_CHART_PRIO_CGROUPS_CONTAINERS 40000
- Priority: 50000,
- },
- Create: func() module.Module { return New() },
- Config: func() any { return &Config{} },
- })
-}
-
-func New() *Kubelet {
- return &Kubelet{
- Config: Config{
- HTTP: web.HTTP{
- Request: web.Request{
- URL: "http://127.0.0.1:10255/metrics",
- Headers: make(map[string]string),
- },
- Client: web.Client{
- Timeout: web.Duration(time.Second),
- },
- },
- TokenPath: "/var/run/secrets/kubernetes.io/serviceaccount/token",
- },
-
- charts: charts.Copy(),
- collectedVMPlugins: make(map[string]bool),
- }
-}
-
-type Config struct {
- UpdateEvery int `yaml:"update_every,omitempty" json:"update_every"`
- web.HTTP `yaml:",inline" json:""`
- TokenPath string `yaml:"token_path,omitempty" json:"token_path"`
-}
-
-type Kubelet struct {
- module.Base
- Config `yaml:",inline" json:""`
-
- charts *Charts
-
- prom prometheus.Prometheus
-
- collectedVMPlugins map[string]bool // volume_manager_total_volumes
-}
-
-func (k *Kubelet) Configuration() any {
- return k.Config
-}
-
-func (k *Kubelet) Init() error {
- if err := k.validateConfig(); err != nil {
- k.Errorf("config validation: %v", err)
- return err
- }
-
- prom, err := k.initPrometheusClient()
- if err != nil {
- k.Error(err)
- return err
- }
- k.prom = prom
-
- if tok := k.initAuthToken(); tok != "" {
- k.Request.Headers["Authorization"] = "Bearer " + tok
- }
-
- return nil
-}
-
-func (k *Kubelet) Check() error {
- mx, err := k.collect()
- if err != nil {
- k.Error(err)
- return err
- }
- if len(mx) == 0 {
- return errors.New("no metrics collected")
- }
- return nil
-}
-
-func (k *Kubelet) Charts() *Charts {
- return k.charts
-}
-
-func (k *Kubelet) Collect() map[string]int64 {
- mx, err := k.collect()
-
- if err != nil {
- k.Error(err)
- return nil
- }
-
- return mx
-}
-
-func (k *Kubelet) Cleanup() {
- if k.prom != nil && k.prom.HTTPClient() != nil {
- k.prom.HTTPClient().CloseIdleConnections()
- }
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet_test.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet_test.go
deleted file mode 100644
index d4f216908..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/kubelet_test.go
+++ /dev/null
@@ -1,213 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import (
- "net/http"
- "net/http/httptest"
- "os"
- "testing"
-
- "github.com/netdata/netdata/go/go.d.plugin/agent/module"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-var (
- dataConfigJSON, _ = os.ReadFile("testdata/config.json")
- dataConfigYAML, _ = os.ReadFile("testdata/config.yaml")
-
- dataMetrics, _ = os.ReadFile("testdata/metrics.txt")
- dataServiceAccountToken, _ = os.ReadFile("testdata/token.txt")
-)
-
-func Test_testDataIsValid(t *testing.T) {
- for name, data := range map[string][]byte{
- "dataConfigJSON": dataConfigJSON,
- "dataConfigYAML": dataConfigYAML,
- "dataMetrics": dataMetrics,
- "dataServiceAccountToken": dataServiceAccountToken,
- } {
- require.NotNil(t, data, name)
- }
-}
-
-func TestKubelet_ConfigurationSerialize(t *testing.T) {
- module.TestConfigurationSerialize(t, &Kubelet{}, dataConfigJSON, dataConfigYAML)
-}
-
-func TestKubelet_Charts(t *testing.T) {
- assert.NotNil(t, New().Charts())
-}
-
-func TestKubelet_Cleanup(t *testing.T) {
- New().Cleanup()
-}
-
-func TestKubelet_Init(t *testing.T) {
- assert.NoError(t, New().Init())
-}
-
-func TestKubelet_Init_ReadServiceAccountToken(t *testing.T) {
- job := New()
- job.TokenPath = "testdata/token.txt"
-
- assert.NoError(t, job.Init())
- assert.Equal(t, "Bearer "+string(dataServiceAccountToken), job.Request.Headers["Authorization"])
-}
-
-func TestKubelet_InitErrorOnCreatingClientWrongTLSCA(t *testing.T) {
- job := New()
- job.Client.TLSConfig.TLSCA = "testdata/tls"
-
- assert.Error(t, job.Init())
-}
-
-func TestKubelet_Check(t *testing.T) {
- ts := httptest.NewServer(
- http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write(dataMetrics)
- }))
- defer ts.Close()
-
- job := New()
- job.URL = ts.URL + "/metrics"
- require.NoError(t, job.Init())
- assert.NoError(t, job.Check())
-}
-
-func TestKubelet_Check_ConnectionRefused(t *testing.T) {
- job := New()
- job.URL = "http://127.0.0.1:38001/metrics"
- require.NoError(t, job.Init())
- assert.Error(t, job.Check())
-}
-
-func TestKubelet_Collect(t *testing.T) {
- ts := httptest.NewServer(
- http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write(dataMetrics)
- }))
- defer ts.Close()
-
- job := New()
- job.URL = ts.URL + "/metrics"
- require.NoError(t, job.Init())
- require.NoError(t, job.Check())
-
- expected := map[string]int64{
- "apiserver_audit_requests_rejected_total": 0,
- "apiserver_storage_data_key_generation_bucket_+Inf": 1,
- "apiserver_storage_data_key_generation_bucket_10": 1,
- "apiserver_storage_data_key_generation_bucket_10240": 1,
- "apiserver_storage_data_key_generation_bucket_1280": 1,
- "apiserver_storage_data_key_generation_bucket_160": 1,
- "apiserver_storage_data_key_generation_bucket_20": 1,
- "apiserver_storage_data_key_generation_bucket_20480": 1,
- "apiserver_storage_data_key_generation_bucket_2560": 1,
- "apiserver_storage_data_key_generation_bucket_320": 1,
- "apiserver_storage_data_key_generation_bucket_40": 1,
- "apiserver_storage_data_key_generation_bucket_40960": 1,
- "apiserver_storage_data_key_generation_bucket_5": 6,
- "apiserver_storage_data_key_generation_bucket_5120": 1,
- "apiserver_storage_data_key_generation_bucket_640": 1,
- "apiserver_storage_data_key_generation_bucket_80": 1,
- "apiserver_storage_data_key_generation_failures_total": 0,
- "apiserver_storage_envelope_transformation_cache_misses_total": 0,
- "kubelet_docker_operations_create_container": 19,
- "kubelet_docker_operations_errors_inspect_container": 14,
- "kubelet_docker_operations_errors_remove_container": 4,
- "kubelet_docker_operations_info": 2,
- "kubelet_docker_operations_inspect_container": 223,
- "kubelet_docker_operations_inspect_image": 110,
- "kubelet_docker_operations_list_containers": 5157,
- "kubelet_docker_operations_list_images": 195,
- "kubelet_docker_operations_remove_container": 23,
- "kubelet_docker_operations_start_container": 19,
- "kubelet_docker_operations_stop_container": 23,
- "kubelet_docker_operations_version": 472,
- "kubelet_log_file_system_usage_kube-system_coredns-86c58d9df4-d22hv": 28672,
- "kubelet_log_file_system_usage_kube-system_coredns-86c58d9df4-ks5dj": 28672,
- "kubelet_log_file_system_usage_kube-system_etcd-minikube": 36864,
- "kubelet_log_file_system_usage_kube-system_kube-addon-manager-minikube": 45056,
- "kubelet_log_file_system_usage_kube-system_kube-apiserver-minikube": 36864,
- "kubelet_log_file_system_usage_kube-system_kube-controller-manager-minikube": 57344,
- "kubelet_log_file_system_usage_kube-system_kube-proxy-q2fvs": 28672,
- "kubelet_log_file_system_usage_kube-system_kube-scheduler-minikube": 40960,
- "kubelet_log_file_system_usage_kube-system_storage-provisioner": 24576,
- "kubelet_node_config_error": 1,
- "kubelet_pleg_relist_interval_05": 1013125,
- "kubelet_pleg_relist_interval_09": 1016820,
- "kubelet_pleg_relist_interval_099": 1032022,
- "kubelet_pleg_relist_latency_05": 12741,
- "kubelet_pleg_relist_latency_09": 16211,
- "kubelet_pleg_relist_latency_099": 31234,
- "kubelet_running_container": 9,
- "kubelet_running_pod": 9,
- "kubelet_runtime_operations_container_status": 90,
- "kubelet_runtime_operations_create_container": 10,
- "kubelet_runtime_operations_errors_container_status": 14,
- "kubelet_runtime_operations_errors_remove_container": 4,
- "kubelet_runtime_operations_exec_sync": 138,
- "kubelet_runtime_operations_image_status": 25,
- "kubelet_runtime_operations_list_containers": 2586,
- "kubelet_runtime_operations_list_images": 195,
- "kubelet_runtime_operations_list_podsandbox": 2562,
- "kubelet_runtime_operations_podsandbox_status": 77,
- "kubelet_runtime_operations_remove_container": 14,
- "kubelet_runtime_operations_run_podsandbox": 9,
- "kubelet_runtime_operations_start_container": 10,
- "kubelet_runtime_operations_status": 279,
- "kubelet_runtime_operations_stop_podsandbox": 14,
- "kubelet_runtime_operations_version": 190,
- "rest_client_requests_200": 177,
- "rest_client_requests_201": 43,
- "rest_client_requests_403": 2,
- "rest_client_requests_409": 1,
- "rest_client_requests_<error>": 8,
- "rest_client_requests_GET": 37,
- "rest_client_requests_PATCH": 177,
- "rest_client_requests_POST": 8,
- "token_count": 0,
- "token_fail_count": 0,
- "volume_manager_plugin_kubernetes.io/configmap_state_actual": 3,
- "volume_manager_plugin_kubernetes.io/configmap_state_desired": 3,
- "volume_manager_plugin_kubernetes.io/host-path_state_actual": 15,
- "volume_manager_plugin_kubernetes.io/host-path_state_desired": 15,
- "volume_manager_plugin_kubernetes.io/secret_state_actual": 4,
- "volume_manager_plugin_kubernetes.io/secret_state_desired": 4,
- }
-
- assert.Equal(t, expected, job.Collect())
-}
-
-func TestKubelet_Collect_ReceiveInvalidResponse(t *testing.T) {
- ts := httptest.NewServer(
- http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write([]byte("hello and goodbye"))
- }))
- defer ts.Close()
-
- job := New()
- job.URL = ts.URL + "/metrics"
- require.NoError(t, job.Init())
- assert.Error(t, job.Check())
-}
-
-func TestKubelet_Collect_Receive404(t *testing.T) {
- ts := httptest.NewServer(
- http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- w.WriteHeader(http.StatusNotFound)
- }))
- defer ts.Close()
-
- job := New()
- job.URL = ts.URL + "/metrics"
- require.NoError(t, job.Init())
- assert.Error(t, job.Check())
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml
deleted file mode 100644
index 0d5229bb5..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metadata.yaml
+++ /dev/null
@@ -1,331 +0,0 @@
-plugin_name: go.d.plugin
-modules:
- - meta:
- id: collector-go.d.plugin-k8s_kubelet
- plugin_name: go.d.plugin
- module_name: k8s_kubelet
- monitored_instance:
- name: Kubelet
- link: https://kubernetes.io/docs/concepts/overview/components/#kubelet
- icon_filename: kubernetes.svg
- categories:
- - data-collection.kubernetes
- keywords:
- - kubelet
- - kubernetes
- - k8s
- related_resources:
- integrations:
- list:
- - plugin_name: apps.plugin
- module_name: apps
- info_provided_to_referring_integrations:
- description: ""
- most_popular: true
- overview:
- data_collection:
- metrics_description: |
- This collector monitors Kubelet instances.
- method_description: ""
- supported_platforms:
- include: []
- exclude: []
- multi_instance: true
- additional_permissions:
- description: ""
- default_behavior:
- auto_detection:
- description: ""
- limits:
- description: ""
- performance_impact:
- description: ""
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: go.d/k8s_kubelet.conf
- options:
- description: |
- The following options can be defined globally: update_every, autodetection_retry.
- folding:
- title: Config options
- enabled: true
- list:
- - name: update_every
- description: Data collection frequency.
- default_value: 1
- required: false
- - name: autodetection_retry
- description: Recheck interval in seconds. Zero means no recheck will be scheduled.
- default_value: 0
- required: false
- - name: url
- description: Server URL.
- default_value: http://127.0.0.1:10255/metrics
- required: true
- - name: timeout
- description: HTTP request timeout.
- default_value: 1
- required: false
- - name: username
- description: Username for basic HTTP authentication.
- default_value: ""
- required: false
- - name: password
- description: Password for basic HTTP authentication.
- default_value: ""
- required: false
- - name: proxy_url
- description: Proxy URL.
- default_value: ""
- required: false
- - name: proxy_username
- description: Username for proxy basic HTTP authentication.
- default_value: ""
- required: false
- - name: proxy_password
- description: Password for proxy basic HTTP authentication.
- default_value: ""
- required: false
- - name: method
- description: HTTP request method.
- default_value: "GET"
- required: false
- - name: body
- description: HTTP request body.
- default_value: ""
- required: false
- - name: headers
- description: HTTP request headers.
- default_value: ""
- required: false
- - name: not_follow_redirects
- description: Redirect handling policy. Controls whether the client follows redirects.
- default_value: no
- required: false
- - name: tls_skip_verify
- description: Server certificate chain and hostname validation policy. Controls whether the client performs this check.
- default_value: no
- required: false
- - name: tls_ca
- description: Certification authority that the client uses when verifying the server's certificates.
- default_value: ""
- required: false
- - name: tls_cert
- description: Client TLS certificate.
- default_value: ""
- required: false
- - name: tls_key
- description: Client TLS key.
- default_value: ""
- required: false
- examples:
- folding:
- title: Config
- enabled: true
- list:
- - name: Basic
- folding:
- enabled: false
- description: A basic example configuration.
- config: |
- jobs:
- - name: local
- url: http://127.0.0.1:10255/metrics
- - name: HTTPS with self-signed certificate
- description: |
- Do not validate server certificate chain and hostname.
- config: |
- jobs:
- - name: local
- url: http://127.0.0.1:10250/metrics
- tls_skip_verify: yes
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: kubelet_node_config_error
- metric: k8s_kubelet.kubelet_node_config_error
- info: "the node is experiencing a configuration-related error (0: false, 1: true)"
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf
- - name: kubelet_token_requests
- metric: k8s_kubelet.kubelet_token_requests
- info: "number of failed Token() requests to the alternate token source"
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf
- - name: kubelet_token_requests
- metric: k8s_kubelet.kubelet_token_requests
- info: "number of failed Token() requests to the alternate token source"
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf
- - name: kubelet_operations_error
- metric: k8s_kubelet.kubelet_operations_errors
- info: number of Docker or runtime operation errors
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf
- - name: kubelet_operations_error
- metric: k8s_kubelet.kubelet_operations_errors
- info: number of Docker or runtime operation errors
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/kubelet.conf
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: These metrics refer to the entire monitored application.
- labels: []
- metrics:
- - name: k8s_kubelet.apiserver_audit_requests_rejected
- description: API Server Audit Requests
- unit: requests/s
- chart_type: line
- dimensions:
- - name: rejected
- - name: k8s_kubelet.apiserver_storage_data_key_generation_failures
- description: API Server Failed Data Encryption Key(DEK) Generation Operations
- unit: events/s
- chart_type: line
- dimensions:
- - name: failures
- - name: k8s_kubelet.apiserver_storage_data_key_generation_latencies
- description: API Server Latencies Of Data Encryption Key(DEK) Generation Operations
- unit: observes/s
- chart_type: stacked
- dimensions:
- - name: 5_µs
- - name: 10_µs
- - name: 20_µs
- - name: 40_µs
- - name: 80_µs
- - name: 160_µs
- - name: 320_µs
- - name: 640_µs
- - name: 1280_µs
- - name: 2560_µs
- - name: 5120_µs
- - name: 10240_µs
- - name: 20480_µs
- - name: 40960_µs
- - name: +Inf
- - name: k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent
- description: API Server Latencies Of Data Encryption Key(DEK) Generation Operations Percentage
- unit: percentage
- chart_type: stacked
- dimensions:
- - name: 5_µs
- - name: 10_µs
- - name: 20_µs
- - name: 40_µs
- - name: 80_µs
- - name: 160_µs
- - name: 320_µs
- - name: 640_µs
- - name: 1280_µs
- - name: 2560_µs
- - name: 5120_µs
- - name: 10240_µs
- - name: 20480_µs
- - name: 40960_µs
- - name: +Inf
- - name: k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses
- description: API Server Storage Envelope Transformation Cache Misses
- unit: events/s
- chart_type: line
- dimensions:
- - name: cache misses
- - name: k8s_kubelet.kubelet_containers_running
- description: Number Of Containers Currently Running
- unit: running_containers
- chart_type: line
- dimensions:
- - name: total
- - name: k8s_kubelet.kubelet_pods_running
- description: Number Of Pods Currently Running
- unit: running_pods
- chart_type: line
- dimensions:
- - name: total
- - name: k8s_kubelet.kubelet_pods_log_filesystem_used_bytes
- description: Bytes Used By The Pod Logs On The Filesystem
- unit: B
- chart_type: stacked
- dimensions:
- - name: a dimension per namespace and pod
- - name: k8s_kubelet.kubelet_runtime_operations
- description: Runtime Operations By Type
- unit: operations/s
- chart_type: stacked
- dimensions:
- - name: a dimension per operation type
- - name: k8s_kubelet.kubelet_runtime_operations_errors
- description: Runtime Operations Errors By Type
- unit: errors/s
- chart_type: stacked
- dimensions:
- - name: a dimension per operation type
- - name: k8s_kubelet.kubelet_docker_operations
- description: Docker Operations By Type
- unit: operations/s
- chart_type: stacked
- dimensions:
- - name: a dimension per operation type
- - name: k8s_kubelet.kubelet_docker_operations_errors
- description: Docker Operations Errors By Type
- unit: errors/s
- chart_type: stacked
- dimensions:
- - name: a dimension per operation type
- - name: k8s_kubelet.kubelet_node_config_error
- description: Node Configuration-Related Error
- unit: bool
- chart_type: line
- dimensions:
- - name: experiencing_error
- - name: k8s_kubelet.kubelet_pleg_relist_interval_microseconds
- description: PLEG Relisting Interval Summary
- unit: microseconds
- chart_type: stacked
- dimensions:
- - name: "0.5"
- - name: "0.9"
- - name: "0.99"
- - name: k8s_kubelet.kubelet_pleg_relist_latency_microseconds
- description: PLEG Relisting Latency Summary
- unit: microseconds
- chart_type: stacked
- dimensions:
- - name: "0.5"
- - name: "0.9"
- - name: "0.99"
- - name: k8s_kubelet.kubelet_token_requests
- description: Token() Requests To The Alternate Token Source
- unit: token_requests/s
- chart_type: line
- dimensions:
- - name: total
- - name: failed
- - name: k8s_kubelet.rest_client_requests_by_code
- description: HTTP Requests By Status Code
- unit: requests/s
- chart_type: stacked
- dimensions:
- - name: a dimension per HTTP status code
- - name: k8s_kubelet.rest_client_requests_by_method
- description: HTTP Requests By Status Method
- unit: requests/s
- chart_type: stacked
- dimensions:
- - name: a dimension per HTTP method
- - name: volume manager
- description: These metrics refer to the Volume Manager.
- labels: []
- metrics:
- - name: k8s_kubelet.volume_manager_total_volumes
- description: Volume Manager State Of The World
- unit: state
- chart_type: line
- dimensions:
- - name: actual
- - name: desired
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metrics.go b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metrics.go
deleted file mode 100644
index 15867b975..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/metrics.go
+++ /dev/null
@@ -1,113 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-package k8s_kubelet
-
-import (
- mtx "github.com/netdata/netdata/go/go.d.plugin/pkg/metrics"
-)
-
-func newMetrics() *metrics {
- var mx metrics
- mx.RESTClient.Requests.ByStatusCode = make(map[string]mtx.Gauge)
- mx.RESTClient.Requests.ByMethod = make(map[string]mtx.Gauge)
- mx.Kubelet.Runtime.Operations = make(map[string]mtx.Gauge)
- mx.Kubelet.Runtime.OperationsErrors = make(map[string]mtx.Gauge)
- mx.Kubelet.Docker.Operations = make(map[string]mtx.Gauge)
- mx.Kubelet.Docker.OperationsErrors = make(map[string]mtx.Gauge)
- mx.Kubelet.PodLogFileSystemUsage = make(map[string]mtx.Gauge)
-
- return &mx
-}
-
-type metrics struct {
- Token tokenMetrics `stm:"token"`
- RESTClient restClientMetrics `stm:"rest_client"`
- APIServer apiServerMetrics `stm:"apiserver"`
- Kubelet kubeletMetrics `stm:"kubelet"`
- VolumeManager volumeManagerMetrics `stm:"volume_manager"`
-}
-
-type tokenMetrics struct {
- Count mtx.Gauge `stm:"count"`
- FailCount mtx.Gauge `stm:"fail_count"`
-}
-
-type restClientMetrics struct {
- Requests struct {
- ByStatusCode map[string]mtx.Gauge `stm:""`
- ByMethod map[string]mtx.Gauge `stm:""`
- } `stm:"requests"`
-}
-
-type apiServerMetrics struct {
- Audit struct {
- Requests struct {
- Rejected mtx.Gauge `stm:"rejected_total"`
- } `stm:"requests"`
- } `stm:"audit"`
- Storage struct {
- EnvelopeTransformation struct {
- CacheMisses mtx.Gauge `stm:"cache_misses_total"`
- } `stm:"envelope_transformation"`
- DataKeyGeneration struct {
- Failures mtx.Gauge `stm:"failures_total"`
- Latencies struct {
- LE5 mtx.Gauge `stm:"5"`
- LE10 mtx.Gauge `stm:"10"`
- LE20 mtx.Gauge `stm:"20"`
- LE40 mtx.Gauge `stm:"40"`
- LE80 mtx.Gauge `stm:"80"`
- LE160 mtx.Gauge `stm:"160"`
- LE320 mtx.Gauge `stm:"320"`
- LE640 mtx.Gauge `stm:"640"`
- LE1280 mtx.Gauge `stm:"1280"`
- LE2560 mtx.Gauge `stm:"2560"`
- LE5120 mtx.Gauge `stm:"5120"`
- LE10240 mtx.Gauge `stm:"10240"`
- LE20480 mtx.Gauge `stm:"20480"`
- LE40960 mtx.Gauge `stm:"40960"`
- LEInf mtx.Gauge `stm:"+Inf"`
- } `stm:"bucket"`
- } `stm:"data_key_generation"`
- } `stm:"storage"`
-}
-
-type kubeletMetrics struct {
- NodeConfigError mtx.Gauge `stm:"node_config_error"`
- RunningContainerCount mtx.Gauge `stm:"running_container"`
- RunningPodCount mtx.Gauge `stm:"running_pod"`
- PLEG struct {
- Relist struct {
- Interval struct {
- Quantile05 mtx.Gauge `stm:"05"`
- Quantile09 mtx.Gauge `stm:"09"`
- Quantile099 mtx.Gauge `stm:"099"`
- } `stm:"interval"`
- Latency struct {
- Quantile05 mtx.Gauge `stm:"05"`
- Quantile09 mtx.Gauge `stm:"09"`
- Quantile099 mtx.Gauge `stm:"099"`
- } `stm:"latency"`
- } `stm:"relist"`
- } `stm:"pleg"`
- Runtime struct {
- Operations map[string]mtx.Gauge `stm:"operations"`
- OperationsErrors map[string]mtx.Gauge `stm:"operations_errors"`
- } `stm:"runtime"`
- Docker struct {
- Operations map[string]mtx.Gauge `stm:"operations"`
- OperationsErrors map[string]mtx.Gauge `stm:"operations_errors"`
- } `stm:"docker"`
- PodLogFileSystemUsage map[string]mtx.Gauge `stm:"log_file_system_usage"`
-}
-
-type volumeManagerMetrics struct {
- Plugins map[string]*volumeManagerPlugin `stm:"plugin"`
-}
-
-type volumeManagerPlugin struct {
- State struct {
- Actual mtx.Gauge `stm:"actual"`
- Desired mtx.Gauge `stm:"desired"`
- } `stm:"state"`
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.json b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.json
deleted file mode 100644
index d85483953..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "update_every": 123,
- "url": "ok",
- "body": "ok",
- "method": "ok",
- "headers": {
- "ok": "ok"
- },
- "username": "ok",
- "password": "ok",
- "proxy_url": "ok",
- "proxy_username": "ok",
- "proxy_password": "ok",
- "timeout": 123.123,
- "not_follow_redirects": true,
- "tls_ca": "ok",
- "tls_cert": "ok",
- "tls_key": "ok",
- "tls_skip_verify": true,
- "token_path": "ok"
-}
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.yaml b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.yaml
deleted file mode 100644
index 9e4f3fdc4..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/config.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-update_every: 123
-url: "ok"
-body: "ok"
-method: "ok"
-headers:
- ok: "ok"
-username: "ok"
-password: "ok"
-proxy_url: "ok"
-proxy_username: "ok"
-proxy_password: "ok"
-timeout: 123.123
-not_follow_redirects: yes
-tls_ca: "ok"
-tls_cert: "ok"
-tls_key: "ok"
-tls_skip_verify: yes
-token_path: "ok"
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/metrics.txt b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/metrics.txt
deleted file mode 100644
index 47b63bd55..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/metrics.txt
+++ /dev/null
@@ -1,574 +0,0 @@
-# HELP apiserver_audit_event_total Counter of audit events generated and sent to the audit backend.
-# TYPE apiserver_audit_event_total counter
-apiserver_audit_event_total 0
-# HELP apiserver_audit_requests_rejected_total Counter of apiserver requests rejected due to an error in audit logging backend.
-# TYPE apiserver_audit_requests_rejected_total counter
-apiserver_audit_requests_rejected_total 0
-# HELP apiserver_client_certificate_expiration_seconds Distribution of the remaining lifetime on the certificate used to authenticate a request.
-# TYPE apiserver_client_certificate_expiration_seconds histogram
-apiserver_client_certificate_expiration_seconds_bucket{le="0"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="21600"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="43200"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="86400"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="172800"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="345600"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="604800"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="2.592e+06"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="7.776e+06"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="1.5552e+07"} 0
-apiserver_client_certificate_expiration_seconds_bucket{le="3.1104e+07"} 2
-apiserver_client_certificate_expiration_seconds_bucket{le="+Inf"} 2
-apiserver_client_certificate_expiration_seconds_sum 6.198359653913356e+07
-apiserver_client_certificate_expiration_seconds_count 2
-# HELP apiserver_storage_data_key_generation_failures_total Total number of failed data encryption key(DEK) generation operations.
-# TYPE apiserver_storage_data_key_generation_failures_total counter
-apiserver_storage_data_key_generation_failures_total 0
-# HELP apiserver_storage_data_key_generation_latencies_microseconds Latencies in microseconds of data encryption key(DEK) generation operations.
-# TYPE apiserver_storage_data_key_generation_latencies_microseconds histogram
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="5"} 6
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="10"} 7
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="20"} 8
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="40"} 9
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="80"} 10
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="160"} 11
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="320"} 12
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="640"} 13
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="1280"} 14
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="2560"} 15
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="5120"} 16
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="10240"} 17
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="20480"} 18
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="40960"} 19
-apiserver_storage_data_key_generation_latencies_microseconds_bucket{le="+Inf"} 20
-apiserver_storage_data_key_generation_latencies_microseconds_sum 0
-apiserver_storage_data_key_generation_latencies_microseconds_count 0
-# HELP apiserver_storage_envelope_transformation_cache_misses_total Total number of cache misses while accessing key decryption key(KEK).
-# TYPE apiserver_storage_envelope_transformation_cache_misses_total counter
-apiserver_storage_envelope_transformation_cache_misses_total 0
-# HELP get_token_count Counter of total Token() requests to the alternate token source
-# TYPE get_token_count counter
-get_token_count 0
-# HELP get_token_fail_count Counter of failed Token() requests to the alternate token source
-# TYPE get_token_fail_count counter
-get_token_fail_count 0
-# HELP go_gc_duration_seconds A summary of the GC invocation durations.
-# TYPE go_gc_duration_seconds summary
-go_gc_duration_seconds{quantile="0"} 3.1848e-05
-go_gc_duration_seconds{quantile="0.25"} 6.1739e-05
-go_gc_duration_seconds{quantile="0.5"} 9.1641e-05
-go_gc_duration_seconds{quantile="0.75"} 0.000143403
-go_gc_duration_seconds{quantile="1"} 0.003400982
-go_gc_duration_seconds_sum 0.041302468
-go_gc_duration_seconds_count 252
-# HELP go_goroutines Number of goroutines that currently exist.
-# TYPE go_goroutines gauge
-go_goroutines 282
-# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
-# TYPE go_memstats_alloc_bytes gauge
-go_memstats_alloc_bytes 2.2614512e+07
-# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
-# TYPE go_memstats_alloc_bytes_total counter
-go_memstats_alloc_bytes_total 2.851571192e+09
-# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
-# TYPE go_memstats_buck_hash_sys_bytes gauge
-go_memstats_buck_hash_sys_bytes 1.81591e+06
-# HELP go_memstats_frees_total Total number of frees.
-# TYPE go_memstats_frees_total counter
-go_memstats_frees_total 1.9710993e+07
-# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
-# TYPE go_memstats_gc_cpu_fraction gauge
-go_memstats_gc_cpu_fraction 0.0005851177440973569
-# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
-# TYPE go_memstats_gc_sys_bytes gauge
-go_memstats_gc_sys_bytes 2.41664e+06
-# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
-# TYPE go_memstats_heap_alloc_bytes gauge
-go_memstats_heap_alloc_bytes 2.2614512e+07
-# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
-# TYPE go_memstats_heap_idle_bytes gauge
-go_memstats_heap_idle_bytes 3.8526976e+07
-# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
-# TYPE go_memstats_heap_inuse_bytes gauge
-go_memstats_heap_inuse_bytes 2.5796608e+07
-# HELP go_memstats_heap_objects Number of allocated objects.
-# TYPE go_memstats_heap_objects gauge
-go_memstats_heap_objects 114479
-# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
-# TYPE go_memstats_heap_released_bytes gauge
-go_memstats_heap_released_bytes 0
-# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
-# TYPE go_memstats_heap_sys_bytes gauge
-go_memstats_heap_sys_bytes 6.4323584e+07
-# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
-# TYPE go_memstats_last_gc_time_seconds gauge
-go_memstats_last_gc_time_seconds 1.552938975118211e+09
-# HELP go_memstats_lookups_total Total number of pointer lookups.
-# TYPE go_memstats_lookups_total counter
-go_memstats_lookups_total 0
-# HELP go_memstats_mallocs_total Total number of mallocs.
-# TYPE go_memstats_mallocs_total counter
-go_memstats_mallocs_total 1.9825472e+07
-# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
-# TYPE go_memstats_mcache_inuse_bytes gauge
-go_memstats_mcache_inuse_bytes 3456
-# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
-# TYPE go_memstats_mcache_sys_bytes gauge
-go_memstats_mcache_sys_bytes 16384
-# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
-# TYPE go_memstats_mspan_inuse_bytes gauge
-go_memstats_mspan_inuse_bytes 361304
-# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
-# TYPE go_memstats_mspan_sys_bytes gauge
-go_memstats_mspan_sys_bytes 409600
-# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
-# TYPE go_memstats_next_gc_bytes gauge
-go_memstats_next_gc_bytes 2.612264e+07
-# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
-# TYPE go_memstats_other_sys_bytes gauge
-go_memstats_other_sys_bytes 517010
-# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
-# TYPE go_memstats_stack_inuse_bytes gauge
-go_memstats_stack_inuse_bytes 2.78528e+06
-# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
-# TYPE go_memstats_stack_sys_bytes gauge
-go_memstats_stack_sys_bytes 2.78528e+06
-# HELP go_memstats_sys_bytes Number of bytes obtained from system.
-# TYPE go_memstats_sys_bytes gauge
-go_memstats_sys_bytes 7.2284408e+07
-# HELP go_threads Number of OS threads created
-# TYPE go_threads gauge
-go_threads 19
-# HELP http_request_duration_microseconds The HTTP request latencies in microseconds.
-# TYPE http_request_duration_microseconds summary
-http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 4933.921
-http_request_duration_microseconds{handler="prometheus",quantile="0.9"} 4933.921
-http_request_duration_microseconds{handler="prometheus",quantile="0.99"} 4933.921
-http_request_duration_microseconds_sum{handler="prometheus"} 283201.29
-http_request_duration_microseconds_count{handler="prometheus"} 31
-# HELP http_request_size_bytes The HTTP request sizes in bytes.
-# TYPE http_request_size_bytes summary
-http_request_size_bytes{handler="prometheus",quantile="0.5"} 423
-http_request_size_bytes{handler="prometheus",quantile="0.9"} 423
-http_request_size_bytes{handler="prometheus",quantile="0.99"} 423
-http_request_size_bytes_sum{handler="prometheus"} 11711
-http_request_size_bytes_count{handler="prometheus"} 31
-# HELP http_requests_total Total number of HTTP requests made.
-# TYPE http_requests_total counter
-http_requests_total{code="200",handler="prometheus",method="get"} 31
-# HELP http_response_size_bytes The HTTP response sizes in bytes.
-# TYPE http_response_size_bytes summary
-http_response_size_bytes{handler="prometheus",quantile="0.5"} 5678
-http_response_size_bytes{handler="prometheus",quantile="0.9"} 5678
-http_response_size_bytes{handler="prometheus",quantile="0.99"} 5678
-http_response_size_bytes_sum{handler="prometheus"} 178006
-http_response_size_bytes_count{handler="prometheus"} 31
-# HELP kubelet_cgroup_manager_latency_microseconds Latency in microseconds for cgroup manager operations. Broken down by method.
-# TYPE kubelet_cgroup_manager_latency_microseconds summary
-kubelet_cgroup_manager_latency_microseconds{operation_type="create",quantile="0.5"} NaN
-kubelet_cgroup_manager_latency_microseconds{operation_type="create",quantile="0.9"} NaN
-kubelet_cgroup_manager_latency_microseconds{operation_type="create",quantile="0.99"} NaN
-kubelet_cgroup_manager_latency_microseconds_sum{operation_type="create"} 96365
-kubelet_cgroup_manager_latency_microseconds_count{operation_type="create"} 12
-kubelet_cgroup_manager_latency_microseconds{operation_type="update",quantile="0.5"} 91
-kubelet_cgroup_manager_latency_microseconds{operation_type="update",quantile="0.9"} 193
-kubelet_cgroup_manager_latency_microseconds{operation_type="update",quantile="0.99"} 208
-kubelet_cgroup_manager_latency_microseconds_sum{operation_type="update"} 12921
-kubelet_cgroup_manager_latency_microseconds_count{operation_type="update"} 79
-# HELP kubelet_container_log_filesystem_used_bytes Bytes used by the container's logs on the filesystem.
-# TYPE kubelet_container_log_filesystem_used_bytes gauge
-kubelet_container_log_filesystem_used_bytes{container="coredns",namespace="kube-system",pod="coredns-86c58d9df4-d22hv"} 28672
-kubelet_container_log_filesystem_used_bytes{container="coredns",namespace="kube-system",pod="coredns-86c58d9df4-ks5dj"} 28672
-kubelet_container_log_filesystem_used_bytes{container="etcd",namespace="kube-system",pod="etcd-minikube"} 36864
-kubelet_container_log_filesystem_used_bytes{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 45056
-kubelet_container_log_filesystem_used_bytes{container="kube-apiserver",namespace="kube-system",pod="kube-apiserver-minikube"} 36864
-kubelet_container_log_filesystem_used_bytes{container="kube-controller-manager",namespace="kube-system",pod="kube-controller-manager-minikube"} 57344
-kubelet_container_log_filesystem_used_bytes{container="kube-proxy",namespace="kube-system",pod="kube-proxy-q2fvs"} 28672
-kubelet_container_log_filesystem_used_bytes{container="kube-scheduler",namespace="kube-system",pod="kube-scheduler-minikube"} 40960
-kubelet_container_log_filesystem_used_bytes{container="storage-provisioner",namespace="kube-system",pod="storage-provisioner"} 24576
-# HELP kubelet_containers_per_pod_count The number of containers per pod.
-# TYPE kubelet_containers_per_pod_count summary
-kubelet_containers_per_pod_count{quantile="0.5"} NaN
-kubelet_containers_per_pod_count{quantile="0.9"} NaN
-kubelet_containers_per_pod_count{quantile="0.99"} NaN
-kubelet_containers_per_pod_count_sum 9
-kubelet_containers_per_pod_count_count 9
-# HELP kubelet_docker_operations Cumulative number of Docker operations by operation type.
-# TYPE kubelet_docker_operations counter
-kubelet_docker_operations{operation_type="create_container"} 19
-kubelet_docker_operations{operation_type="info"} 2
-kubelet_docker_operations{operation_type="inspect_container"} 223
-kubelet_docker_operations{operation_type="inspect_image"} 110
-kubelet_docker_operations{operation_type="list_containers"} 5157
-kubelet_docker_operations{operation_type="list_images"} 195
-kubelet_docker_operations{operation_type="remove_container"} 23
-kubelet_docker_operations{operation_type="start_container"} 19
-kubelet_docker_operations{operation_type="stop_container"} 23
-kubelet_docker_operations{operation_type="version"} 472
-# HELP kubelet_docker_operations_errors Cumulative number of Docker operation errors by operation type.
-# TYPE kubelet_docker_operations_errors counter
-kubelet_docker_operations_errors{operation_type="inspect_container"} 14
-kubelet_docker_operations_errors{operation_type="remove_container"} 4
-# HELP kubelet_docker_operations_latency_microseconds Latency in microseconds of Docker operations. Broken down by operation type.
-# TYPE kubelet_docker_operations_latency_microseconds summary
-kubelet_docker_operations_latency_microseconds{operation_type="create_container",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="create_container",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="create_container",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="create_container"} 1.157649e+07
-kubelet_docker_operations_latency_microseconds_count{operation_type="create_container"} 19
-kubelet_docker_operations_latency_microseconds{operation_type="info",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="info",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="info",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="info"} 15754
-kubelet_docker_operations_latency_microseconds_count{operation_type="info"} 2
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_container",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_container",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_container",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="inspect_container"} 6.320335e+06
-kubelet_docker_operations_latency_microseconds_count{operation_type="inspect_container"} 223
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_image",quantile="0.5"} 1112
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_image",quantile="0.9"} 1112
-kubelet_docker_operations_latency_microseconds{operation_type="inspect_image",quantile="0.99"} 1112
-kubelet_docker_operations_latency_microseconds_sum{operation_type="inspect_image"} 276071
-kubelet_docker_operations_latency_microseconds_count{operation_type="inspect_image"} 110
-kubelet_docker_operations_latency_microseconds{operation_type="list_containers",quantile="0.5"} 3368
-kubelet_docker_operations_latency_microseconds{operation_type="list_containers",quantile="0.9"} 9003
-kubelet_docker_operations_latency_microseconds{operation_type="list_containers",quantile="0.99"} 16951
-kubelet_docker_operations_latency_microseconds_sum{operation_type="list_containers"} 2.2912964e+07
-kubelet_docker_operations_latency_microseconds_count{operation_type="list_containers"} 5157
-kubelet_docker_operations_latency_microseconds{operation_type="list_images",quantile="0.5"} 3579
-kubelet_docker_operations_latency_microseconds{operation_type="list_images",quantile="0.9"} 5431
-kubelet_docker_operations_latency_microseconds{operation_type="list_images",quantile="0.99"} 7136
-kubelet_docker_operations_latency_microseconds_sum{operation_type="list_images"} 798789
-kubelet_docker_operations_latency_microseconds_count{operation_type="list_images"} 195
-kubelet_docker_operations_latency_microseconds{operation_type="remove_container",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="remove_container",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="remove_container",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="remove_container"} 5.297973e+06
-kubelet_docker_operations_latency_microseconds_count{operation_type="remove_container"} 23
-kubelet_docker_operations_latency_microseconds{operation_type="start_container",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="start_container",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="start_container",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="start_container"} 1.5755618e+07
-kubelet_docker_operations_latency_microseconds_count{operation_type="start_container"} 19
-kubelet_docker_operations_latency_microseconds{operation_type="stop_container",quantile="0.5"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="stop_container",quantile="0.9"} NaN
-kubelet_docker_operations_latency_microseconds{operation_type="stop_container",quantile="0.99"} NaN
-kubelet_docker_operations_latency_microseconds_sum{operation_type="stop_container"} 18810
-kubelet_docker_operations_latency_microseconds_count{operation_type="stop_container"} 23
-kubelet_docker_operations_latency_microseconds{operation_type="version",quantile="0.5"} 869
-kubelet_docker_operations_latency_microseconds{operation_type="version",quantile="0.9"} 1482
-kubelet_docker_operations_latency_microseconds{operation_type="version",quantile="0.99"} 2426
-kubelet_docker_operations_latency_microseconds_sum{operation_type="version"} 455522
-kubelet_docker_operations_latency_microseconds_count{operation_type="version"} 472
-# HELP kubelet_network_plugin_operations_latency_microseconds Latency in microseconds of network plugin operations. Broken down by operation type.
-# TYPE kubelet_network_plugin_operations_latency_microseconds summary
-kubelet_network_plugin_operations_latency_microseconds{operation_type="get_pod_network_status",quantile="0.5"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="get_pod_network_status",quantile="0.9"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="get_pod_network_status",quantile="0.99"} NaN
-kubelet_network_plugin_operations_latency_microseconds_sum{operation_type="get_pod_network_status"} 47
-kubelet_network_plugin_operations_latency_microseconds_count{operation_type="get_pod_network_status"} 11
-kubelet_network_plugin_operations_latency_microseconds{operation_type="set_up_pod",quantile="0.5"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="set_up_pod",quantile="0.9"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="set_up_pod",quantile="0.99"} NaN
-kubelet_network_plugin_operations_latency_microseconds_sum{operation_type="set_up_pod"} 23
-kubelet_network_plugin_operations_latency_microseconds_count{operation_type="set_up_pod"} 2
-kubelet_network_plugin_operations_latency_microseconds{operation_type="tear_down_pod",quantile="0.5"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="tear_down_pod",quantile="0.9"} NaN
-kubelet_network_plugin_operations_latency_microseconds{operation_type="tear_down_pod",quantile="0.99"} NaN
-kubelet_network_plugin_operations_latency_microseconds_sum{operation_type="tear_down_pod"} 29
-kubelet_network_plugin_operations_latency_microseconds_count{operation_type="tear_down_pod"} 4
-# HELP kubelet_node_config_error This metric is true (1) if the node is experiencing a configuration-related error, false (0) otherwise.
-# TYPE kubelet_node_config_error gauge
-kubelet_node_config_error 1
-# HELP kubelet_pleg_relist_interval_microseconds Interval in microseconds between relisting in PLEG.
-# TYPE kubelet_pleg_relist_interval_microseconds summary
-kubelet_pleg_relist_interval_microseconds{quantile="0.5"} 1.013125e+06
-kubelet_pleg_relist_interval_microseconds{quantile="0.9"} 1.01682e+06
-kubelet_pleg_relist_interval_microseconds{quantile="0.99"} 1.032022e+06
-kubelet_pleg_relist_interval_microseconds_sum 1.392954348e+09
-kubelet_pleg_relist_interval_microseconds_count 1368
-# HELP kubelet_pleg_relist_latency_microseconds Latency in microseconds for relisting pods in PLEG.
-# TYPE kubelet_pleg_relist_latency_microseconds summary
-kubelet_pleg_relist_latency_microseconds{quantile="0.5"} 12741
-kubelet_pleg_relist_latency_microseconds{quantile="0.9"} 16211
-kubelet_pleg_relist_latency_microseconds{quantile="0.99"} 31234
-kubelet_pleg_relist_latency_microseconds_sum 2.4227856e+07
-kubelet_pleg_relist_latency_microseconds_count 1369
-# HELP kubelet_pod_start_latency_microseconds Latency in microseconds for a single pod to go from pending to running.
-# TYPE kubelet_pod_start_latency_microseconds summary
-kubelet_pod_start_latency_microseconds{quantile="0.5"} NaN
-kubelet_pod_start_latency_microseconds{quantile="0.9"} NaN
-kubelet_pod_start_latency_microseconds{quantile="0.99"} NaN
-kubelet_pod_start_latency_microseconds_sum 2.884769e+06
-kubelet_pod_start_latency_microseconds_count 9
-# HELP kubelet_pod_worker_latency_microseconds Latency in microseconds to sync a single pod. Broken down by operation type: create, update, or sync
-# TYPE kubelet_pod_worker_latency_microseconds summary
-kubelet_pod_worker_latency_microseconds{operation_type="sync",quantile="0.5"} NaN
-kubelet_pod_worker_latency_microseconds{operation_type="sync",quantile="0.9"} NaN
-kubelet_pod_worker_latency_microseconds{operation_type="sync",quantile="0.99"} NaN
-kubelet_pod_worker_latency_microseconds_sum{operation_type="sync"} 412
-kubelet_pod_worker_latency_microseconds_count{operation_type="sync"} 1
-# HELP kubelet_pod_worker_start_latency_microseconds Latency in microseconds from seeing a pod to starting a worker.
-# TYPE kubelet_pod_worker_start_latency_microseconds summary
-kubelet_pod_worker_start_latency_microseconds{quantile="0.5"} NaN
-kubelet_pod_worker_start_latency_microseconds{quantile="0.9"} NaN
-kubelet_pod_worker_start_latency_microseconds{quantile="0.99"} NaN
-kubelet_pod_worker_start_latency_microseconds_sum 2.85589e+06
-kubelet_pod_worker_start_latency_microseconds_count 9
-# HELP kubelet_running_container_count Number of containers currently running
-# TYPE kubelet_running_container_count gauge
-kubelet_running_container_count 9
-# HELP kubelet_running_pod_count Number of pods currently running
-# TYPE kubelet_running_pod_count gauge
-kubelet_running_pod_count 9
-# HELP kubelet_runtime_operations Cumulative number of runtime operations by operation type.
-# TYPE kubelet_runtime_operations counter
-kubelet_runtime_operations{operation_type="container_status"} 90
-kubelet_runtime_operations{operation_type="create_container"} 10
-kubelet_runtime_operations{operation_type="exec_sync"} 138
-kubelet_runtime_operations{operation_type="image_status"} 25
-kubelet_runtime_operations{operation_type="list_containers"} 2586
-kubelet_runtime_operations{operation_type="list_images"} 195
-kubelet_runtime_operations{operation_type="list_podsandbox"} 2562
-kubelet_runtime_operations{operation_type="podsandbox_status"} 77
-kubelet_runtime_operations{operation_type="remove_container"} 14
-kubelet_runtime_operations{operation_type="run_podsandbox"} 9
-kubelet_runtime_operations{operation_type="start_container"} 10
-kubelet_runtime_operations{operation_type="status"} 279
-kubelet_runtime_operations{operation_type="stop_podsandbox"} 14
-kubelet_runtime_operations{operation_type="version"} 190
-# HELP kubelet_runtime_operations_errors Cumulative number of runtime operation errors by operation type.
-# TYPE kubelet_runtime_operations_errors counter
-kubelet_runtime_operations_errors{operation_type="container_status"} 14
-kubelet_runtime_operations_errors{operation_type="remove_container"} 4
-# HELP kubelet_runtime_operations_latency_microseconds Latency in microseconds of runtime operations. Broken down by operation type.
-# TYPE kubelet_runtime_operations_latency_microseconds summary
-kubelet_runtime_operations_latency_microseconds{operation_type="container_status",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="container_status",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="container_status",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="container_status"} 5.830434e+06
-kubelet_runtime_operations_latency_microseconds_count{operation_type="container_status"} 90
-kubelet_runtime_operations_latency_microseconds{operation_type="create_container",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="create_container",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="create_container",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="create_container"} 6.237513e+06
-kubelet_runtime_operations_latency_microseconds_count{operation_type="create_container"} 10
-kubelet_runtime_operations_latency_microseconds{operation_type="exec_sync",quantile="0.5"} 77674
-kubelet_runtime_operations_latency_microseconds{operation_type="exec_sync",quantile="0.9"} 84801
-kubelet_runtime_operations_latency_microseconds{operation_type="exec_sync",quantile="0.99"} 91057
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="exec_sync"} 1.1581846e+07
-kubelet_runtime_operations_latency_microseconds_count{operation_type="exec_sync"} 138
-kubelet_runtime_operations_latency_microseconds{operation_type="image_status",quantile="0.5"} 1379
-kubelet_runtime_operations_latency_microseconds{operation_type="image_status",quantile="0.9"} 1379
-kubelet_runtime_operations_latency_microseconds{operation_type="image_status",quantile="0.99"} 1379
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="image_status"} 84242
-kubelet_runtime_operations_latency_microseconds_count{operation_type="image_status"} 25
-kubelet_runtime_operations_latency_microseconds{operation_type="list_containers",quantile="0.5"} 2860
-kubelet_runtime_operations_latency_microseconds{operation_type="list_containers",quantile="0.9"} 5131
-kubelet_runtime_operations_latency_microseconds{operation_type="list_containers",quantile="0.99"} 15491
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="list_containers"} 8.583973e+06
-kubelet_runtime_operations_latency_microseconds_count{operation_type="list_containers"} 2586
-kubelet_runtime_operations_latency_microseconds{operation_type="list_images",quantile="0.5"} 4206
-kubelet_runtime_operations_latency_microseconds{operation_type="list_images",quantile="0.9"} 6102
-kubelet_runtime_operations_latency_microseconds{operation_type="list_images",quantile="0.99"} 7592
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="list_images"} 915822
-kubelet_runtime_operations_latency_microseconds_count{operation_type="list_images"} 195
-kubelet_runtime_operations_latency_microseconds{operation_type="list_podsandbox",quantile="0.5"} 6645
-kubelet_runtime_operations_latency_microseconds{operation_type="list_podsandbox",quantile="0.9"} 11038
-kubelet_runtime_operations_latency_microseconds{operation_type="list_podsandbox",quantile="0.99"} 21220
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="list_podsandbox"} 1.7650737e+07
-kubelet_runtime_operations_latency_microseconds_count{operation_type="list_podsandbox"} 2562
-kubelet_runtime_operations_latency_microseconds{operation_type="podsandbox_status",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="podsandbox_status",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="podsandbox_status",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="podsandbox_status"} 673056
-kubelet_runtime_operations_latency_microseconds_count{operation_type="podsandbox_status"} 77
-kubelet_runtime_operations_latency_microseconds{operation_type="remove_container",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="remove_container",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="remove_container",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="remove_container"} 1.781569e+06
-kubelet_runtime_operations_latency_microseconds_count{operation_type="remove_container"} 14
-kubelet_runtime_operations_latency_microseconds{operation_type="run_podsandbox",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="run_podsandbox",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="run_podsandbox",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="run_podsandbox"} 9.284403e+06
-kubelet_runtime_operations_latency_microseconds_count{operation_type="run_podsandbox"} 9
-kubelet_runtime_operations_latency_microseconds{operation_type="start_container",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="start_container",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="start_container",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="start_container"} 1.1913088e+07
-kubelet_runtime_operations_latency_microseconds_count{operation_type="start_container"} 10
-kubelet_runtime_operations_latency_microseconds{operation_type="status",quantile="0.5"} 1555
-kubelet_runtime_operations_latency_microseconds{operation_type="status",quantile="0.9"} 2438
-kubelet_runtime_operations_latency_microseconds{operation_type="status",quantile="0.99"} 4376
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="status"} 496865
-kubelet_runtime_operations_latency_microseconds_count{operation_type="status"} 279
-kubelet_runtime_operations_latency_microseconds{operation_type="stop_podsandbox",quantile="0.5"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="stop_podsandbox",quantile="0.9"} NaN
-kubelet_runtime_operations_latency_microseconds{operation_type="stop_podsandbox",quantile="0.99"} NaN
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="stop_podsandbox"} 41502
-kubelet_runtime_operations_latency_microseconds_count{operation_type="stop_podsandbox"} 14
-kubelet_runtime_operations_latency_microseconds{operation_type="version",quantile="0.5"} 933
-kubelet_runtime_operations_latency_microseconds{operation_type="version",quantile="0.9"} 1515
-kubelet_runtime_operations_latency_microseconds{operation_type="version",quantile="0.99"} 1674
-kubelet_runtime_operations_latency_microseconds_sum{operation_type="version"} 216328
-kubelet_runtime_operations_latency_microseconds_count{operation_type="version"} 190
-# HELP kubernetes_build_info A metric with a constant '1' value labeled by major, minor, git version, git commit, git tree state, build date, Go version, and compiler from which Kubernetes was built, and platform on which it is running.
-# TYPE kubernetes_build_info gauge
-kubernetes_build_info{buildDate="2019-02-28T13:35:32Z",compiler="gc",gitCommit="c27b913fddd1a6c480c229191a087698aa92f0b1",gitTreeState="clean",gitVersion="v1.13.4",goVersion="go1.11.5",major="1",minor="13",platform="linux/amd64"} 1
-# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
-# TYPE process_cpu_seconds_total counter
-process_cpu_seconds_total 44.55
-# HELP process_max_fds Maximum number of open file descriptors.
-# TYPE process_max_fds gauge
-process_max_fds 1e+06
-# HELP process_open_fds Number of open file descriptors.
-# TYPE process_open_fds gauge
-process_open_fds 33
-# HELP process_resident_memory_bytes Resident memory size in bytes.
-# TYPE process_resident_memory_bytes gauge
-process_resident_memory_bytes 9.2401664e+07
-# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
-# TYPE process_start_time_seconds gauge
-process_start_time_seconds 1.55293758654e+09
-# HELP process_virtual_memory_bytes Virtual memory size in bytes.
-# TYPE process_virtual_memory_bytes gauge
-process_virtual_memory_bytes 1.379233792e+09
-# HELP rest_client_request_latency_seconds Request latency in seconds. Broken down by verb and URL.
-# TYPE rest_client_request_latency_seconds histogram
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.001"} 44
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.002"} 124
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.004"} 181
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.008"} 183
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.016"} 190
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.032"} 195
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.064"} 195
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.128"} 199
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.256"} 199
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="0.512"} 199
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="GET",le="+Inf"} 202
-rest_client_request_latency_seconds_sum{url="https://localhost:8443/%7Bprefix%7D",verb="GET"} 24.538311267
-rest_client_request_latency_seconds_count{url="https://localhost:8443/%7Bprefix%7D",verb="GET"} 202
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.001"} 0
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.002"} 0
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.004"} 23
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.008"} 160
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.016"} 172
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.032"} 175
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.064"} 176
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.128"} 177
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.256"} 177
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="0.512"} 177
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH",le="+Inf"} 177
-rest_client_request_latency_seconds_sum{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH"} 1.1527289999999994
-rest_client_request_latency_seconds_count{url="https://localhost:8443/%7Bprefix%7D",verb="PATCH"} 177
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.001"} 8
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.002"} 10
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.004"} 17
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.008"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.016"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.032"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.064"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.128"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.256"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="0.512"} 49
-rest_client_request_latency_seconds_bucket{url="https://localhost:8443/%7Bprefix%7D",verb="POST",le="+Inf"} 52
-rest_client_request_latency_seconds_sum{url="https://localhost:8443/%7Bprefix%7D",verb="POST"} 17.43416557
-rest_client_request_latency_seconds_count{url="https://localhost:8443/%7Bprefix%7D",verb="POST"} 52
-# HELP rest_client_requests_total Number of HTTP requests, partitioned by status code, method, and host.
-# TYPE rest_client_requests_total counter
-rest_client_requests_total{code="200",host="localhost:8443",method="GET"} 191
-rest_client_requests_total{code="200",host="localhost:8443",method="PATCH"} 177
-rest_client_requests_total{code="201",host="localhost:8443",method="POST"} 43
-rest_client_requests_total{code="403",host="localhost:8443",method="GET"} 2
-rest_client_requests_total{code="409",host="localhost:8443",method="POST"} 1
-rest_client_requests_total{code="<error>",host="localhost:8443",method="GET"} 37
-rest_client_requests_total{code="<error>",host="localhost:8443",method="POST"} 8
-# HELP storage_operation_duration_seconds Storage operation duration
-# TYPE storage_operation_duration_seconds histogram
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="0.1"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="0.25"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="0.5"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="1"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="2.5"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="5"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="10"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="15"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="25"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="50"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap",le="+Inf"} 3
-storage_operation_duration_seconds_sum{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap"} 0.00147889
-storage_operation_duration_seconds_count{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/configmap"} 3
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="0.1"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="0.25"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="0.5"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="1"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="2.5"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="5"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="10"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="15"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="25"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="50"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path",le="+Inf"} 15
-storage_operation_duration_seconds_sum{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path"} 0.002347783
-storage_operation_duration_seconds_count{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/host-path"} 15
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="0.1"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="0.25"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="0.5"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="1"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="2.5"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="5"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="10"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="15"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="25"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="50"} 4
-storage_operation_duration_seconds_bucket{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret",le="+Inf"} 4
-storage_operation_duration_seconds_sum{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret"} 0.001769817
-storage_operation_duration_seconds_count{operation_name="verify_controller_attached_volume",volume_plugin="kubernetes.io/secret"} 4
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="0.1"} 59
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="0.25"} 60
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="0.5"} 60
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="1"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="2.5"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="5"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="10"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="15"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="25"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="50"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap",le="+Inf"} 62
-storage_operation_duration_seconds_sum{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap"} 2.039342002999999
-storage_operation_duration_seconds_count{operation_name="volume_mount",volume_plugin="kubernetes.io/configmap"} 62
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="0.1"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="0.25"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="0.5"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="1"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="2.5"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="5"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="10"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="15"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="25"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="50"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path",le="+Inf"} 15
-storage_operation_duration_seconds_sum{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path"} 0.006827130000000001
-storage_operation_duration_seconds_count{operation_name="volume_mount",volume_plugin="kubernetes.io/host-path"} 15
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="0.1"} 83
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="0.25"} 83
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="0.5"} 83
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="1"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="2.5"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="5"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="10"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="15"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="25"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="50"} 85
-storage_operation_duration_seconds_bucket{operation_name="volume_mount",volume_plugin="kubernetes.io/secret",le="+Inf"} 85
-storage_operation_duration_seconds_sum{operation_name="volume_mount",volume_plugin="kubernetes.io/secret"} 1.9201849530000006
-storage_operation_duration_seconds_count{operation_name="volume_mount",volume_plugin="kubernetes.io/secret"} 85
-# HELP volume_manager_total_volumes Number of volumes in Volume Manager
-# TYPE volume_manager_total_volumes gauge
-volume_manager_total_volumes{plugin_name="kubernetes.io/configmap",state="actual_state_of_world"} 3
-volume_manager_total_volumes{plugin_name="kubernetes.io/configmap",state="desired_state_of_world"} 3
-volume_manager_total_volumes{plugin_name="kubernetes.io/host-path",state="actual_state_of_world"} 15
-volume_manager_total_volumes{plugin_name="kubernetes.io/host-path",state="desired_state_of_world"} 15
-volume_manager_total_volumes{plugin_name="kubernetes.io/secret",state="actual_state_of_world"} 4
-volume_manager_total_volumes{plugin_name="kubernetes.io/secret",state="desired_state_of_world"} 4 \ No newline at end of file
diff --git a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/token.txt b/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/token.txt
deleted file mode 100644
index e769c538e..000000000
--- a/src/go/collectors/go.d.plugin/modules/k8s_kubelet/testdata/token.txt
+++ /dev/null
@@ -1 +0,0 @@
-8zU5Emm58tPGShVkwTK3ZLn0d4I \ No newline at end of file