...
1
16
17 package cadvisor
18
19 import (
20 "strings"
21
22 cadvisorapi "github.com/google/cadvisor/info/v1"
23 cadvisorapi2 "github.com/google/cadvisor/info/v2"
24 "k8s.io/api/core/v1"
25 "k8s.io/apimachinery/pkg/api/resource"
26 v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
27 )
28
29 const (
30
31
32
33
34
35 CrioSocketSuffix = "run/crio/crio.sock"
36 )
37
38
39 func CapacityFromMachineInfo(info *cadvisorapi.MachineInfo) v1.ResourceList {
40 c := v1.ResourceList{
41 v1.ResourceCPU: *resource.NewMilliQuantity(
42 int64(info.NumCores*1000),
43 resource.DecimalSI),
44 v1.ResourceMemory: *resource.NewQuantity(
45 int64(info.MemoryCapacity),
46 resource.BinarySI),
47 }
48
49
50 for _, hugepagesInfo := range info.HugePages {
51 pageSizeBytes := int64(hugepagesInfo.PageSize * 1024)
52 hugePagesBytes := pageSizeBytes * int64(hugepagesInfo.NumPages)
53 pageSizeQuantity := resource.NewQuantity(pageSizeBytes, resource.BinarySI)
54 c[v1helper.HugePageResourceName(*pageSizeQuantity)] = *resource.NewQuantity(hugePagesBytes, resource.BinarySI)
55 }
56
57 return c
58 }
59
60
61 func EphemeralStorageCapacityFromFsInfo(info cadvisorapi2.FsInfo) v1.ResourceList {
62 c := v1.ResourceList{
63 v1.ResourceEphemeralStorage: *resource.NewQuantity(
64 int64(info.Capacity),
65 resource.BinarySI),
66 }
67 return c
68 }
69
70
71
72
73
74
75 func UsingLegacyCadvisorStats(runtimeEndpoint string) bool {
76 return strings.HasSuffix(runtimeEndpoint, CrioSocketSuffix)
77 }
78
View as plain text