github.com/netdata/go.d.plugin@v0.58.1/modules/k8s_kubelet/metrics.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package k8s_kubelet 4 5 import ( 6 mtx "github.com/netdata/go.d.plugin/pkg/metrics" 7 ) 8 9 func newMetrics() *metrics { 10 var mx metrics 11 mx.RESTClient.Requests.ByStatusCode = make(map[string]mtx.Gauge) 12 mx.RESTClient.Requests.ByMethod = make(map[string]mtx.Gauge) 13 mx.Kubelet.Runtime.Operations = make(map[string]mtx.Gauge) 14 mx.Kubelet.Runtime.OperationsErrors = make(map[string]mtx.Gauge) 15 mx.Kubelet.Docker.Operations = make(map[string]mtx.Gauge) 16 mx.Kubelet.Docker.OperationsErrors = make(map[string]mtx.Gauge) 17 mx.Kubelet.PodLogFileSystemUsage = make(map[string]mtx.Gauge) 18 19 return &mx 20 } 21 22 type metrics struct { 23 Token tokenMetrics `stm:"token"` 24 RESTClient restClientMetrics `stm:"rest_client"` 25 APIServer apiServerMetrics `stm:"apiserver"` 26 Kubelet kubeletMetrics `stm:"kubelet"` 27 VolumeManager volumeManagerMetrics `stm:"volume_manager"` 28 } 29 30 type tokenMetrics struct { 31 Count mtx.Gauge `stm:"count"` 32 FailCount mtx.Gauge `stm:"fail_count"` 33 } 34 35 type restClientMetrics struct { 36 Requests struct { 37 ByStatusCode map[string]mtx.Gauge `stm:""` 38 ByMethod map[string]mtx.Gauge `stm:""` 39 } `stm:"requests"` 40 } 41 42 type apiServerMetrics struct { 43 Audit struct { 44 Requests struct { 45 Rejected mtx.Gauge `stm:"rejected_total"` 46 } `stm:"requests"` 47 } `stm:"audit"` 48 Storage struct { 49 EnvelopeTransformation struct { 50 CacheMisses mtx.Gauge `stm:"cache_misses_total"` 51 } `stm:"envelope_transformation"` 52 DataKeyGeneration struct { 53 Failures mtx.Gauge `stm:"failures_total"` 54 Latencies struct { 55 LE5 mtx.Gauge `stm:"5"` 56 LE10 mtx.Gauge `stm:"10"` 57 LE20 mtx.Gauge `stm:"20"` 58 LE40 mtx.Gauge `stm:"40"` 59 LE80 mtx.Gauge `stm:"80"` 60 LE160 mtx.Gauge `stm:"160"` 61 LE320 mtx.Gauge `stm:"320"` 62 LE640 mtx.Gauge `stm:"640"` 63 LE1280 mtx.Gauge `stm:"1280"` 64 LE2560 mtx.Gauge `stm:"2560"` 65 LE5120 mtx.Gauge `stm:"5120"` 66 LE10240 mtx.Gauge `stm:"10240"` 67 LE20480 mtx.Gauge `stm:"20480"` 68 LE40960 mtx.Gauge `stm:"40960"` 69 LEInf mtx.Gauge `stm:"+Inf"` 70 } `stm:"bucket"` 71 } `stm:"data_key_generation"` 72 } `stm:"storage"` 73 } 74 75 type kubeletMetrics struct { 76 NodeConfigError mtx.Gauge `stm:"node_config_error"` 77 RunningContainerCount mtx.Gauge `stm:"running_container"` 78 RunningPodCount mtx.Gauge `stm:"running_pod"` 79 PLEG struct { 80 Relist struct { 81 Interval struct { 82 Quantile05 mtx.Gauge `stm:"05"` 83 Quantile09 mtx.Gauge `stm:"09"` 84 Quantile099 mtx.Gauge `stm:"099"` 85 } `stm:"interval"` 86 Latency struct { 87 Quantile05 mtx.Gauge `stm:"05"` 88 Quantile09 mtx.Gauge `stm:"09"` 89 Quantile099 mtx.Gauge `stm:"099"` 90 } `stm:"latency"` 91 } `stm:"relist"` 92 } `stm:"pleg"` 93 Runtime struct { 94 Operations map[string]mtx.Gauge `stm:"operations"` 95 OperationsErrors map[string]mtx.Gauge `stm:"operations_errors"` 96 } `stm:"runtime"` 97 Docker struct { 98 Operations map[string]mtx.Gauge `stm:"operations"` 99 OperationsErrors map[string]mtx.Gauge `stm:"operations_errors"` 100 } `stm:"docker"` 101 PodLogFileSystemUsage map[string]mtx.Gauge `stm:"log_file_system_usage"` 102 } 103 104 type volumeManagerMetrics struct { 105 Plugins map[string]*volumeManagerPlugin `stm:"plugin"` 106 } 107 108 type volumeManagerPlugin struct { 109 State struct { 110 Actual mtx.Gauge `stm:"actual"` 111 Desired mtx.Gauge `stm:"desired"` 112 } `stm:"state"` 113 }