Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
93
plugins/inputs/kubernetes/kubernetes_metrics.go
Normal file
93
plugins/inputs/kubernetes/kubernetes_metrics.go
Normal file
|
@ -0,0 +1,93 @@
|
|||
package kubernetes
|
||||
|
||||
import "time"
|
||||
|
||||
// summaryMetrics represents all the summary data about a particular node retrieved from a kubelet
|
||||
type summaryMetrics struct {
|
||||
Node nodeMetrics `json:"node"`
|
||||
Pods []podMetrics `json:"pods"`
|
||||
}
|
||||
|
||||
// nodeMetrics represents detailed information about a node
|
||||
type nodeMetrics struct {
|
||||
NodeName string `json:"nodeName"`
|
||||
SystemContainers []containerMetrics `json:"systemContainers"`
|
||||
StartTime time.Time `json:"startTime"`
|
||||
CPU cpuMetrics `json:"cpu"`
|
||||
Memory memoryMetrics `json:"memory"`
|
||||
Network networkMetrics `json:"network"`
|
||||
FileSystem fileSystemMetrics `json:"fs"`
|
||||
Runtime runtimeMetrics `json:"runtime"`
|
||||
}
|
||||
|
||||
// containerMetrics represents the metric data collect about a container from the kubelet
|
||||
type containerMetrics struct {
|
||||
Name string `json:"name"`
|
||||
StartTime time.Time `json:"startTime"`
|
||||
CPU cpuMetrics `json:"cpu"`
|
||||
Memory memoryMetrics `json:"memory"`
|
||||
RootFS fileSystemMetrics `json:"rootfs"`
|
||||
LogsFS fileSystemMetrics `json:"logs"`
|
||||
}
|
||||
|
||||
// runtimeMetrics contains metric data on the runtime of the system
|
||||
type runtimeMetrics struct {
|
||||
ImageFileSystem fileSystemMetrics `json:"imageFs"`
|
||||
}
|
||||
|
||||
// cpuMetrics represents the cpu usage data of a pod or node
|
||||
type cpuMetrics struct {
|
||||
Time time.Time `json:"time"`
|
||||
UsageNanoCores int64 `json:"usageNanoCores"`
|
||||
UsageCoreNanoSeconds int64 `json:"usageCoreNanoSeconds"`
|
||||
}
|
||||
|
||||
// podMetrics contains metric data on a given pod
|
||||
type podMetrics struct {
|
||||
PodRef podReference `json:"podRef"`
|
||||
StartTime *time.Time `json:"startTime"`
|
||||
Containers []containerMetrics `json:"containers"`
|
||||
Network networkMetrics `json:"network"`
|
||||
Volumes []volumeMetrics `json:"volume"`
|
||||
}
|
||||
|
||||
// podReference is how a pod is identified
|
||||
type podReference struct {
|
||||
Name string `json:"name"`
|
||||
Namespace string `json:"namespace"`
|
||||
}
|
||||
|
||||
// memoryMetrics represents the memory metrics for a pod or node
|
||||
type memoryMetrics struct {
|
||||
Time time.Time `json:"time"`
|
||||
AvailableBytes int64 `json:"availableBytes"`
|
||||
UsageBytes int64 `json:"usageBytes"`
|
||||
WorkingSetBytes int64 `json:"workingSetBytes"`
|
||||
RSSBytes int64 `json:"rssBytes"`
|
||||
PageFaults int64 `json:"pageFaults"`
|
||||
MajorPageFaults int64 `json:"majorPageFaults"`
|
||||
}
|
||||
|
||||
// fileSystemMetrics represents disk usage metrics for a pod or node
|
||||
type fileSystemMetrics struct {
|
||||
AvailableBytes int64 `json:"availableBytes"`
|
||||
CapacityBytes int64 `json:"capacityBytes"`
|
||||
UsedBytes int64 `json:"usedBytes"`
|
||||
}
|
||||
|
||||
// networkMetrics represents network usage data for a pod or node
|
||||
type networkMetrics struct {
|
||||
Time time.Time `json:"time"`
|
||||
RXBytes int64 `json:"rxBytes"`
|
||||
RXErrors int64 `json:"rxErrors"`
|
||||
TXBytes int64 `json:"txBytes"`
|
||||
TXErrors int64 `json:"txErrors"`
|
||||
}
|
||||
|
||||
// volumeMetrics represents the disk usage data for a given volume
|
||||
type volumeMetrics struct {
|
||||
Name string `json:"name"`
|
||||
AvailableBytes int64 `json:"availableBytes"`
|
||||
CapacityBytes int64 `json:"capacityBytes"`
|
||||
UsedBytes int64 `json:"usedBytes"`
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue