netdata/netdata

View on GitHub
src/go/collectors/go.d.plugin/modules/k8s_kubelet/metrics.go

Summary

Maintainability
A
0 mins
Test Coverage
// 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"`
}