Documentation ¶
Index ¶
- Constants
- Variables
- func GetBindAddress(cmdSet string) string
- func GetCGroupVersion() int
- func GetKernelSourceDirs() []string
- func GetMetricPath(cmdSet string) string
- func GetModelConfig(modelItem string) (useEstimatorSidecar bool, selectedModel, selectFilter, initModelURL string)
- func GetRedfishCredFilePath() string
- func GetRedfishProbeIntervalInSeconds() int
- func GetRedfishSkipSSLVerify() bool
- func InitModelConfigMap()
- func LogConfigs()
- func SetEnableAPIServer(enabled bool)
- func SetEnabledEBPFCgroupID(enabled bool)
- func SetEnabledGPU(enabled bool)
- func SetEnabledHardwareCounterMetrics(enabled bool)
- func SetEstimatorConfig(modelName, selectFilter string)
- func SetKernelSourceDir(dir string) error
- func SetKubeConfig(k string)
- func SetModelServerEndpoint(serverEndpoint string)
- func SetModelServerReqEndpoint() (modelServerReqEndpoint string)
- func SetRedfishCredFilePath(credFilePath string)
- func SetRedfishProbeIntervalInSeconds(interval string)
- func SetRedfishSkipSSLVerify(skipSSLVerify bool)
- type Client
Constants ¶
View Source
const ( // MaxIRQ is the maximum number of IRQs to be monitored MaxIRQ = 10 // SamplePeriodSec is the time in seconds that the reader will wait before reading the metrics again SamplePeriodSec = 3 )
View Source
const ( // counter - attacher package CPUCycle = "cpu_cycles" CPURefCycle = "cpu_ref_cycles" CPUInstruction = "cpu_instr" CacheMiss = "cache_miss" // bpf - attacher package CPUTime = "cpu_time" IRQNetTXLabel = "irq_net_tx" IRQNetRXLabel = "irq_net_rx" IRQBlockLabel = "irq_block" // cgroup - cgroup package CgroupfsMemory = "cgroupfs_memory_usage_bytes" CgroupfsKernelMemory = "cgroupfs_kernel_memory_usage_bytes" CgroupfsTCPMemory = "cgroupfs_tcp_memory_usage_bytes" CgroupfsCPU = "cgroupfs_cpu_usage_us" CgroupfsSystemCPU = "cgroupfs_system_cpu_usage_us" CgroupfsUserCPU = "cgroupfs_user_cpu_usage_us" CgroupfsReadIO = "cgroupfs_ioread_bytes" CgroupfsWriteIO = "cgroupfs_iowrite_bytes" BytesReadIO = "bytes_read" BytesWriteIO = "bytes_writes" BlockDevicesIO = "block_devices_used" // kubelet - package KubeletContainerCPU = "container_cpu_usage_seconds_total" KubeletContainerMemory = "container_memory_working_set_bytes" KubeletNodeCPU = "node_cpu_usage_seconds_total" KubeletNodeMemory = "node_memory_working_set_bytes" // system CPUFrequency = "avg_cpu_frequency" // GPU GPUSMUtilization = "gpu_sm_util" GPUMemUtilization = "gpu_mem_util" )
Variables ¶
View Source
var ( EnabledMSR = false EnabledBPFBatchDelete = true KernelVersion = float32(0) KeplerNamespace = getConfig("KEPLER_NAMESPACE", defaultNamespace) UseLibBPFAttacher = getBoolConfig("LIBBPF_ATTACH", false) EnabledEBPFCgroupID = getBoolConfig("ENABLE_EBPF_CGROUPID", true) EnabledGPU = getBoolConfig("ENABLE_GPU", false) EnableProcessMetrics = getBoolConfig("ENABLE_PROCESS_METRICS", false) ExposeHardwareCounterMetrics = getBoolConfig("EXPOSE_HW_COUNTER_METRICS", true) ExposeCgroupMetrics = getBoolConfig("EXPOSE_CGROUP_METRICS", true) ExposeKubeletMetrics = getBoolConfig("EXPOSE_KUBELET_METRICS", true) ExposeIRQCounterMetrics = getBoolConfig("EXPOSE_IRQ_COUNTER_METRICS", true) MetricPathKey = "METRIC_PATH" BindAddressKey = "BIND_ADDRESS" CPUArchOverride = getConfig("CPU_ARCH_OVERRIDE", "") MaxLookupRetry = getIntConfig("MAX_LOOKUP_RETRY", defaultMaxLookupRetry) EstimatorModel = getConfig("ESTIMATOR_MODEL", defaultMetricValue) // auto-select EstimatorSelectFilter = getConfig("ESTIMATOR_SELECT_FILTER", defaultMetricValue) // no filter CoreUsageMetric = getConfig("CORE_USAGE_METRIC", CPUInstruction) DRAMUsageMetric = getConfig("DRAM_USAGE_METRIC", CacheMiss) UncoreUsageMetric = getConfig("UNCORE_USAGE_METRIC", defaultMetricValue) // no metric (evenly divided) GpuUsageMetric = getConfig("GPU_USAGE_METRIC", GPUSMUtilization) // no metric (evenly divided) GeneralUsageMetric = getConfig("GENERAL_USAGE_METRIC", CPUInstruction) // for uncategorized energy; pkg - core - uncore //////////////////////////////////// ModelServerEnable = getBoolConfig("MODEL_SERVER_ENABLE", false) ModelServerEndpoint = SetModelServerReqEndpoint() // model_item NodeTotalKey = "NODE_TOTAL" NodeComponentsKey = "NODE_COMPONENTS" ContainerTotalKey = "CONTAINER_TOTAL" ContainerComponentsKey = "CONTAINER_COMPONENTS" ProcessTotalKey = "PROCESS_TOTAL" ProcessComponentsKey = "PROCESS_COMPONENTS" // attribute EstimatorEnabledKey = "ESTIMATOR" InitModelURLKey = "INIT_URL" FixedModelNameKey = "MODEL" ModelFiltersKey = "FILTERS" // KubeConfig is used to start k8s client with the pod running outside the cluster KubeConfig = "" EnableAPIServer = false DefaultDynCompURL = "/var/lib/kepler/data/ScikitMixed.json" )
Functions ¶
func GetBindAddress ¶
func GetKernelSourceDirs ¶ added in v0.5.1
func GetKernelSourceDirs() []string
func GetMetricPath ¶
func GetModelConfig ¶
func GetRedfishCredFilePath ¶ added in v0.5.2
func GetRedfishCredFilePath() string
func GetRedfishProbeIntervalInSeconds ¶ added in v0.5.2
func GetRedfishProbeIntervalInSeconds() int
func GetRedfishSkipSSLVerify ¶ added in v0.5.2
func GetRedfishSkipSSLVerify() bool
func InitModelConfigMap ¶
func InitModelConfigMap()
InitModelConfigMap initializes map of config from MODEL_CONFIG
func LogConfigs ¶
func LogConfigs()
func SetEnableAPIServer ¶ added in v0.5.1
func SetEnableAPIServer(enabled bool)
SetEnableAPIServer enables Kepler to watch apiserver
func SetEnabledEBPFCgroupID ¶
func SetEnabledEBPFCgroupID(enabled bool)
SetEnabledEBPFCgroupID enables the eBPF code to collect cgroup id if the system has kernel version > 4.18
func SetEnabledGPU ¶
func SetEnabledGPU(enabled bool)
SetEnabledGPU enables the exposure of gpu metrics
func SetEnabledHardwareCounterMetrics ¶
func SetEnabledHardwareCounterMetrics(enabled bool)
SetEnabledHardwareCounterMetrics enables the exposure of hardware counter metrics
func SetEstimatorConfig ¶
func SetEstimatorConfig(modelName, selectFilter string)
func SetKernelSourceDir ¶ added in v0.5.1
SetKernelSourceDir sets the directory for all kernel source. This is used for bcc. Only the top level directory is needed.
func SetModelServerEndpoint ¶
func SetModelServerEndpoint(serverEndpoint string)
func SetModelServerReqEndpoint ¶
func SetModelServerReqEndpoint() (modelServerReqEndpoint string)
func SetRedfishCredFilePath ¶ added in v0.5.2
func SetRedfishCredFilePath(credFilePath string)
func SetRedfishProbeIntervalInSeconds ¶ added in v0.5.2
func SetRedfishProbeIntervalInSeconds(interval string)
func SetRedfishSkipSSLVerify ¶ added in v0.5.2
func SetRedfishSkipSSLVerify(skipSSLVerify bool)
Types ¶
Click to show internal directories.
Click to hide internal directories.