k8scapcity

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2020 License: GPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClusterInfo

type ClusterInfo struct {
	NodeInfo                         map[string]NodeInfo
	ClusterAllocatableMemory         resource.Quantity
	ClusterAllocatableCPU            resource.Quantity
	ClusterAllocatablePods           resource.Quantity
	ClusterUsedCPURequests           resource.Quantity
	ClusterUsedCPU                   resource.Quantity
	ClusterUsedMemory                resource.Quantity
	ClusterUsedMemoryRequests        resource.Quantity
	ClusterUsedMemoryLimits          resource.Quantity
	ClusterUsedPods                  int64
	RqclusterAllocatedLimitsMemory   resource.Quantity
	RqclusterAllocatedLimitsCPU      resource.Quantity
	RqclusterAllocatedPods           resource.Quantity
	RqclusterAllocatedRequestsMemory resource.Quantity
	RqclusterAllocatedRequestsCPU    resource.Quantity
	NminusCPU                        resource.Quantity
	NminusMemory                     resource.Quantity
	NminusPods                       resource.Quantity
	NodeLabel                        string
}

ClusterInfo : Information about the cluster

func GatherInfo

func GatherInfo(clientset *kubernetes.Clientset, nodeLabel *string) (clusterInfo ClusterInfo)

GatherInfo : Grab information about a kubernetes cluster

type ContainerInfo

type ContainerInfo struct {
	Name                  string  `json:"name"`
	Pod                   string  `json:"pod"`
	CPURequestsMilliCores int64   `json:"cpu_requests.millicores"`
	CPULimitsMilliCores   int64   `json:"cpu_limits.millicores"`
	MemoryRequests        int64   `json:"memory_requests.bytes"`
	MemoryLimits          int64   `json:"memory_limits.bytes"`
	CPUUsedMilliCores     int64   `json:"cpu_used.millicores"`
	MemoryUsed            int64   `json:"memory_used.bytes"`
	MemoryRequestsMiB     int64   `json:"memory_requests.mebibytes"`
	MemoryLimitsMiB       int64   `json:"memory_limits.mebibytes"`
	MemoryUsedMiB         int64   `json:"memory_used.mebibytes"`
	CPURequestsCores      float64 `json:"cpu_requests.cores"`
	CPULimitsCores        float64 `json:"cpu_limits.cores"`
	CPUUsedCores          float64 `json:"cpu_used.cores"`
}

ContainerInfo : Information about the container

type K8sMetrics

type K8sMetrics struct {
	EventKind                                string             `json:"event.kind"`
	EventModule                              string             `json:"event.module"`
	EventProvider                            string             `json:"event.provider"`
	EventType                                string             `json:"event.type"`
	EventVersion                             string             `json:"event.version"`
	ResourceQuotaCPURequestCores             int64              `json:"k8s_quota.resource_quota.cpu_request.cores"`
	ResourceQuotaCPURequestMilliCores        int64              `json:"k8s_quota.resource_quota.cpu_request.millicores"`
	ResourceQuotaMemoryRequest               int64              `json:"k8s_quota.resource_quota.memory_request"`
	ResourceQuotaMemoryLimit                 int64              `json:"k8s_quota.resource_quota.memory_limit"`
	ResourceQuotaPods                        int64              `json:"k8s_quota.resource_quota.pods"`
	SubscriptionFactorMemoryRequestTotal     float64            `json:"k8s_quota.subscription_factor.memory.request.total"`
	SubscriptionFactorMemoryRequestNminusone float64            `json:"k8s_quota.subscription_factor.memory.request.nminusone"`
	SubscriptionFactorCPURequestTotal        float64            `json:"k8s_quota.subscription_factor.cpu.request.total"`
	SubscriptionFactorCPURequestNminusone    float64            `json:"k8s_quota.subscription_factor.cpu.request.nminusone"`
	SubscriptionFactorPodsTotal              float64            `json:"k8s_quota.subscription_factor.pods.total"`
	SubscriptionFactorPodsNminusone          float64            `json:"k8s_quota.subscription_factor.pods.nminusone"`
	AllocatableMemoryTotal                   int64              `json:"k8s_quota.alloctable.memory.total"`
	AllocatableMemoryNminusone               int64              `json:"k8s_quota.alloctable.memory.nminusone"`
	AllocatableCPUTotal                      int64              `json:"k8s_quota.alloctable.cpu.total"`
	AllocatableCPUNminusone                  int64              `json:"k8s_quota.alloctable.cpu.nminusone"`
	AllocatablePodsTotal                     int64              `json:"k8s_quota.alloctable.pods.total"`
	AllocatablePodsNminusone                 int64              `json:"k8s_quota.alloctable.pods.nminusone"`
	ContainerResourceCPURequestCores         int64              `json:"k8s_quota.container_resource.cpu_request.cores"`
	ContainerResourceCPURequestMilliCores    int64              `json:"k8s_quota.container_resource.cpu_request.millicores"`
	ContainerResourceMemoryRequest           int64              `json:"k8s_quota.container_resource.memory_request"`
	ContainerResourceMemoryLimit             int64              `json:"k8s_quota.container_resource.memory_limit"`
	ContainerResourcePods                    int64              `json:"k8s_quota.container_resource.pods"`
	NodeLabel                                string             `json:"k8s_quota.node_label"`
	UtilizationFactorPods                    map[string]float64 `json:"k8s_quota.utilization_factor.pods"`
	UtilizationFactorPodsTotal               float64            `json:"k8s_quota.utilization_factor.pods.total"`
	UtilizationFactorPodsNminusone           float64            `json:"k8s_quota.utilization_factor.pods.nminusone"`
	UtilizationFactorMemoryRequests          map[string]float64 `json:"k8s_quota.utilization_factor.memory_request"`
	UtilizationFactorMemoryRequestsTotal     float64            `json:"k8s_quota.utilization_factor.memory_request.total"`
	UtilizationFactorMemoryRequestsNminusone float64            `json:"k8s_quota.utilization_factor.memory_request.nminusone"`
	UtilizationFactorCPURequests             map[string]float64 `json:"k8s_quota.utilization_factor.cpu_request"`
	UtilizationFactorCPURequestsTotal        float64            `json:"k8s_quota.utilization_factor.cpu_request.total"`
	UtilizationFactorCPURequestsNminusone    float64            `json:"k8s_quota.utilization_factor.cpu_request.nminusone"`
	AvailableMemoryRequestTotal              int64              `json:"k8s_quota.available.memory_request.total"`
	AvailableMemoryRequestNminusone          int64              `json:"k8s_quota.available.memory_request.nminusone"`
	AvailableCPURequestTotal                 int64              `json:"k8s_quota.available.cpu_request.total"`
	AvailableCPURequestNminusone             int64              `json:"k8s_quota.available.cpu_request.nminusone"`
	AvailablePodsTotal                       int64              `json:"k8s_quota.available.pods.total"`
	AvailablePodsNminusone                   int64              `json:"k8s_quota.available.pods.nminusone"`
}

K8sMetrics : Json to print out about metrics we gathered

func ClusterCapcity

func ClusterCapcity(clusterInfo ClusterInfo) K8sMetrics

ClusterCapcity : Format metrics into a struct for a kubernetes cluster

type NamespaceInfo

type NamespaceInfo struct {
	Name                           string          `json:"k8s_quota.namespace.name"`
	NamespacePods                  map[string]*Pod `json:"k8s_quota.namespace.pods"`
	NamespaceMemoryLimits          int64           `json:"k8s_quota.namespace.memory_limits.bytes"`
	NamespaceMemoryRequests        int64           `json:"k8s_quota.namespace.memory_requests.bytes"`
	NamespaceMemoryUsed            int64           `json:"k8s_quota.namespace.memory_used.bytes"`
	NamespaceCPULimitsMilliCores   int64           `json:"k8s_quota.namespace.cpu_limits.millicores"`
	NamespaceCPURequestsMilliCores int64           `json:"k8s_quota.namespace.cpu_requests.millicores"`
	NamespaceCPUUsedMilliCores     int64           `json:"k8s_quota.namespace.cpu_used.millicores"`
	NamespaceMemoryLimitsGiB       float64         `json:"k8s_quota.namespace.memory_limits.gibibytes"`
	NamespaceMemoryRequestsGiB     float64         `json:"k8s_quota.namespace.memory_requests.gibibytes"`
	NamespaceMemoryUsedGiB         float64         `json:"k8s_quota.namespace.memory_used.gibibytes"`
	NamespaceCPULimitsCores        float64         `json:"k8s_quota.namespace.cpu_limits.cores"`
	NamespaceCPURequestsCores      float64         `json:"k8s_quota.namespace.cpu_requests.cores"`
	NamespaceCPUUsedCores          float64         `json:"k8s_quota.namespace.cpu_used.cores"`
}

NamespaceInfo : Information about the namespace

type NodeInfo

type NodeInfo struct {
	AllocatableCPU     resource.Quantity
	AllocatableMemory  resource.Quantity
	AllocatablePods    resource.Quantity
	UsedPods           int64
	UsedCPU            resource.Quantity
	UsedMemory         resource.Quantity
	UsedMemoryRequests resource.Quantity
	UsedMemoryLimits   resource.Quantity
	UsedCPURequests    resource.Quantity
	PrintOutput        bool
}

NodeInfo : Information about the node

type Pod

type Pod struct {
	Containers map[string]ContainerInfo
}

Pod : A pod full of containers

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL