Skip to content

Commit

Permalink
Feat: cpu monitoring (#19)
Browse files Browse the repository at this point in the history
* feat: add dispatcher label on worker nodes
* feat: add cpu-monitoring
* feat: add cpu-monitoring daemon set
* refactor: data store metrics and package are marked as deprecated
* feat: add first scraper version

Co-authored-by: DragonBanana <[email protected]>
  • Loading branch information
lterrac and DragonBanana authored Oct 18, 2021
1 parent 511cfb5 commit a9e63f0
Show file tree
Hide file tree
Showing 23 changed files with 630 additions and 109 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ pkg/*/community-controller
pkg/*/system-controller
pkg/*/edge-scheduler
pkg/*/function-deployment-webhook
pkg/*/cpu-monitoring

.idea/
*.pem
Expand Down
8 changes: 4 additions & 4 deletions config/deploy/cpu-monitoring.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ spec:
image: systemautoscaler/cpu-monitoring:dev
imagePullPolicy: Always
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
Expand Down
10 changes: 10 additions & 0 deletions config/deploy/monitoring.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,13 @@ spec:
- name: monitoring
image: systemautoscaler/system-autoscaler-monitoring:dev.1
imagePullPolicy: Always
- name: cpu-monitoring
image: systemautoscaler/cpu-monitoring:dev
imagePullPolicy: Always
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
value: "default"
13 changes: 8 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,31 @@ go 1.16
require (
github.com/JohnCGriffin/yogofn v0.0.0-20170613212352-43d7b79df9f1
github.com/asecurityteam/rolling v2.0.4+incompatible
github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8
github.com/emicklei/go-restful v2.15.0+incompatible // indirect
github.com/emirpasic/gods v1.12.0
github.com/go-openapi/jsonpointer v0.19.5 // indirect
github.com/go-openapi/jsonreference v0.19.5 // indirect
github.com/go-openapi/swag v0.19.14 // indirect
github.com/google/uuid v1.2.0 // indirect
github.com/jackc/pgx/v4 v4.13.0
github.com/jmcvetta/randutil v0.0.0-20150817122601-2bb1b664bcff
github.com/mailru/easyjson v0.7.7 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
github.com/onsi/ginkgo v1.16.4
github.com/onsi/gomega v1.13.0
github.com/openfaas/faas-netes v0.0.0-20210915161828-91bd12070db9
github.com/stretchr/testify v1.7.0
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602 // indirect
golang.org/x/tools v0.1.5 // indirect
k8s.io/api v0.21.3
k8s.io/api v0.21.5
k8s.io/apiextensions-apiserver v0.21.3 // indirect
k8s.io/apimachinery v0.21.3
k8s.io/client-go v0.21.3
k8s.io/code-generator v0.21.3
k8s.io/apimachinery v0.21.5
k8s.io/client-go v0.21.5
k8s.io/code-generator v0.21.5
k8s.io/component-base v0.21.5 // indirect
k8s.io/klog/v2 v2.9.0
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d
k8s.io/metrics v0.21.5
k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9
sigs.k8s.io/controller-runtime v0.9.3

Expand Down
25 changes: 16 additions & 9 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8 h1:SjZ2GvvOononHOpK84APFuMvxqsk3tEIaKH/z4Rpu3g=
github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8/go.mod h1:uEyr4WpAH4hio6LFriaPkL938XnrvLpNPmQHBdrmbIE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
Expand Down Expand Up @@ -242,8 +240,9 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
Expand Down Expand Up @@ -385,8 +384,9 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
Expand Down Expand Up @@ -952,28 +952,33 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
k8s.io/api v0.21.2/go.mod h1:Lv6UGJZ1rlMI1qusN8ruAp9PUBFyBwpEHAdG24vIsiU=
k8s.io/api v0.21.3 h1:cblWILbLO8ar+Fj6xdDGr603HRsf8Wu9E9rngJeprZQ=
k8s.io/api v0.21.3/go.mod h1:hUgeYHUbBp23Ue4qdX9tR8/ANi/g3ehylAqDn9NWVOg=
k8s.io/api v0.21.5 h1:9zp3SslPRB+rqxhGKqqTo6VsN3HX0Ype1nWV6UQQ+Sk=
k8s.io/api v0.21.5/go.mod h1:Un8C5Hemo2r3MfPOjZvwQQ9KkBbiTBUCGrjlivo9uJ0=
k8s.io/apiextensions-apiserver v0.21.2/go.mod h1:+Axoz5/l3AYpGLlhJDfcVQzCerVYq3K3CvDMvw6X1RA=
k8s.io/apiextensions-apiserver v0.21.3 h1:+B6biyUWpqt41kz5x6peIsljlsuwvNAp/oFax/j2/aY=
k8s.io/apiextensions-apiserver v0.21.3/go.mod h1:kl6dap3Gd45+21Jnh6utCx8Z2xxLm8LGDkprcd+KbsE=
k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
k8s.io/apimachinery v0.21.2/go.mod h1:CdTY8fU/BlvAbJ2z/8kBwimGki5Zp8/fbVuLY8gJumM=
k8s.io/apimachinery v0.21.3 h1:3Ju4nvjCngxxMYby0BimUk+pQHPOQp3eCGChk5kfVII=
k8s.io/apimachinery v0.21.3/go.mod h1:H/IM+5vH9kZRNJ4l3x/fXP/5bOPJaVP/guptnZPeCFI=
k8s.io/apimachinery v0.21.5 h1:56bnsHcUNboSCbD779GGi4Lh5kHTDFUoDrnHbhLTiaw=
k8s.io/apimachinery v0.21.5/go.mod h1:3PfBV+4PPXNs0aueD+7fHcGyhdkFFYqXeshQtsKCi+4=
k8s.io/apiserver v0.21.2/go.mod h1:lN4yBoGyiNT7SC1dmNk0ue6a5Wi6O3SWOIw91TsucQw=
k8s.io/apiserver v0.21.3/go.mod h1:eDPWlZG6/cCCMj/JBcEpDoK+I+6i3r9GsChYBHSbAzU=
k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
k8s.io/client-go v0.21.2/go.mod h1:HdJ9iknWpbl3vMGtib6T2PyI/VYxiZfq936WNVHBRrA=
k8s.io/client-go v0.21.3 h1:J9nxZTOmvkInRDCzcSNQmPJbDYN/PjlxXT9Mos3HcLg=
k8s.io/client-go v0.21.3/go.mod h1:+VPhCgTsaFmGILxR/7E1N0S+ryO010QBeNCv5JwRGYU=
k8s.io/client-go v0.21.5 h1:zkVidiWVgciPKYqWpMFMjCUF+4rRXcfkKoyQS1Ue21k=
k8s.io/client-go v0.21.5/go.mod h1:EUornVlr3rBrPKXUoMPNggJdEQmvFNMpYO3Kb6432kw=
k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
k8s.io/code-generator v0.21.2/go.mod h1:8mXJDCB7HcRo1xiEQstcguZkbxZaqeUOrO9SsicWs3U=
k8s.io/code-generator v0.21.3 h1:K2Onrjuve/31D4Y5DpR9ngWM2BiiKUxrGaCxSEJS/Y8=
k8s.io/code-generator v0.21.3/go.mod h1:K3y0Bv9Cz2cOW2vXUrNZlFbflhuPvuadW6JdnN6gGKo=
k8s.io/code-generator v0.21.5 h1:7X6dJG4hzKFHChYpP02iF0XrXhenqQHc76QoKYzDZfI=
k8s.io/code-generator v0.21.5/go.mod h1:0K1k6o2ef8JD/j8LF3ZuqWLGFMHvO5psNzLLmxf7ZVE=
k8s.io/component-base v0.21.2/go.mod h1:9lvmIThzdlrJj5Hp8Z/TOgIkdfsNARQ1pT+3PByuiuc=
k8s.io/component-base v0.21.3 h1:4WuuXY3Npa+iFfi2aDRiOz+anhNvRfye0859ZgfC5Og=
k8s.io/component-base v0.21.3/go.mod h1:kkuhtfEHeZM6LkX0saqSK8PbdO7A0HigUngmhhrwfGQ=
k8s.io/component-base v0.21.5 h1:icFqcFDrO9S+FQpGohzVm6qce9vlo131K0r3NhElxiQ=
k8s.io/component-base v0.21.5/go.mod h1:UyRaqQfPkBL/haEFaMWgVQvtom5TqAT+jqlFGlh6LuU=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
Expand All @@ -992,6 +997,8 @@ k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d h1:lUK8GPtuJy8ClWZhuvKoaLdKGPLq9H1PxWp7VPBZBkU=
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
k8s.io/metrics v0.21.5 h1:lcczsNOCbwG4OKUbxuklK9fv+WQA0rCxLH86rNdAgq4=
k8s.io/metrics v0.21.5/go.mod h1:Ew+6obDfJiQVsi6J2NkoI5jNMio/CCPC5v3pLXH8vos=
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20210527160623-6fdb442a123b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
Expand Down
22 changes: 11 additions & 11 deletions pkg/apiutils/getter.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ import (
)

type ResourceGetter struct {
pods func(namespace string) corelisters.PodNamespaceLister
functions func(namespace string) openfaaslisters.FunctionNamespaceLister
nodes corelisters.NodeLister
Pods func(namespace string) corelisters.PodNamespaceLister
Functions func(namespace string) openfaaslisters.FunctionNamespaceLister
Nodes corelisters.NodeLister
}

func NewResourceGetter(
Expand All @@ -26,9 +26,9 @@ func NewResourceGetter(
nodes corelisters.NodeLister,
) *ResourceGetter {
return &ResourceGetter{
pods: pods,
functions: functions,
nodes: nodes,
Pods: pods,
Functions: functions,
Nodes: nodes,
}
}

Expand All @@ -40,10 +40,10 @@ func (r *ResourceGetter) GetPodsOfFunctionInNode(function *openfaasv1.Function,
ealabels.FunctionNameLabel: function.Name,
ealabels.NodeLabel: nodeName,
})
return r.pods(function.Namespace).List(selector)
return r.Pods(function.Namespace).List(selector)
}

func (r *ResourceGetter) GetNodeDelays(client *delayclient.SQLDelayClient, nodes []string) ([][]int64, error) {
func (r *ResourceGetter) GetNodeDelays(client delayclient.DelayClient, nodes []string) ([][]int64, error) {
nodeMapping := make(map[string]int, len(nodes))
for i, node := range nodes {
nodeMapping[node] = i
Expand Down Expand Up @@ -74,13 +74,13 @@ func (r *ResourceGetter) GetWorkload(community, communityNamespace string) ([][]
map[string]string{
ealabels.CommunityLabel.WithNamespace(communityNamespace).String(): community,
})
nodes, err := r.nodes.List(nodeSelector)
nodes, err := r.Nodes.List(nodeSelector)
if err != nil {
return nil, fmt.Errorf("failed to retrieve nodes using selector %s with error: %s", nodeSelector, err)
}

// Retrieve the functions
functions, err := r.functions(communityNamespace).List(labels.Everything())
functions, err := r.Functions(communityNamespace).List(labels.Everything())
if err != nil {
return nil, fmt.Errorf("failed to retrieve functions with error: %s", err)
}
Expand All @@ -96,7 +96,7 @@ func (r *ResourceGetter) GetWorkload(community, communityNamespace string) ([][]
func (r *ResourceGetter) GetMaxDelays(communityNamespace string) ([]int64, error) {

// Retrieve the functions
functions, err := r.functions(communityNamespace).List(labels.Everything())
functions, err := r.Functions(communityNamespace).List(labels.Everything())
if err != nil {
return nil, fmt.Errorf("failed to retrieve functions with error: %s", err)
}
Expand Down
89 changes: 89 additions & 0 deletions pkg/apiutils/listers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package apiutils

import (
"fmt"

ealabels "github.com/lterrac/edge-autoscaler/pkg/labels"
openfaasv1 "github.com/openfaas/faas-netes/pkg/apis/openfaas/v1"
openfaaslisters "github.com/openfaas/faas-netes/pkg/client/listers/openfaas/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
corelisters "k8s.io/client-go/listers/core/v1"
)

type PodGetter interface {
Pods(namespace string) corelisters.PodNamespaceLister
GetPodsOfFunctionInNode(function *openfaasv1.Function, nodeName string) ([]*corev1.Pod, error)
GetPodsOfAllFunctionInNode(namespace, nodeName string) ([]*corev1.Pod, error)
}

type NodeGetter interface {
Nodes() corelisters.NodeLister
}

type FunctionGetter interface {
Functions(namespace string) openfaaslisters.FunctionNamespaceLister
}

func NewPodGetter(
pods func(namespace string) corelisters.PodNamespaceLister,
) (PodGetter, error) {

if pods == nil {
return nil, fmt.Errorf("pod lister not set in listers struct")
}

return &listers{
pods: pods,
}, nil
}

type listers struct {
pods func(namespace string) corelisters.PodNamespaceLister
functions func(namespace string) openfaaslisters.FunctionNamespaceLister
nodes corelisters.NodeLister
}

func NewListers(
pods func(namespace string) corelisters.PodNamespaceLister,
functions func(namespace string) openfaaslisters.FunctionNamespaceLister,
nodes corelisters.NodeLister,
) *listers {
return &listers{
pods: pods,
functions: functions,
nodes: nodes,
}
}

func (l listers) Pods(namespace string) corelisters.PodNamespaceLister {
return l.pods(namespace)
}

func (l listers) Functions(namespace string) openfaaslisters.FunctionNamespaceLister {
return l.functions(namespace)
}

func (l listers) Nodes() corelisters.NodeLister {
return l.nodes
}

// GetPodsOfAllFunctionInNode returns a list of pods managed by a community controller
func (l listers) GetPodsOfAllFunctionInNode(namespace, nodeName string) ([]*corev1.Pod, error) {
selector := labels.SelectorFromSet(
map[string]string{
ealabels.NodeLabel: nodeName,
})
return l.pods(namespace).List(selector)
}

// GetPodsOfFunctionInNode returns a list of pods which is related to a given function and are running in a given node
func (r listers) GetPodsOfFunctionInNode(function *openfaasv1.Function, nodeName string) ([]*corev1.Pod, error) {
selector := labels.SelectorFromSet(
map[string]string{
ealabels.FunctionNamespaceLabel: function.Namespace,
ealabels.FunctionNameLabel: function.Name,
ealabels.NodeLabel: nodeName,
})
return r.Pods(function.Namespace).List(selector)
}
14 changes: 9 additions & 5 deletions pkg/community-controller/pkg/controller/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package controller
import (
"context"
"fmt"
rand "math/rand"

"github.com/lterrac/edge-autoscaler/pkg/apis/edgeautoscaler/v1alpha1"
ealabels "github.com/lterrac/edge-autoscaler/pkg/labels"
openfaasv1 "github.com/openfaas/faas-netes/pkg/apis/openfaas/v1"
Expand All @@ -14,13 +16,15 @@ import (
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/tools/cache"
"k8s.io/klog/v2"
rand "math/rand"
)

const (
HttpMetricsPort = 8080
HttpMetricsCpu = 100
HttpMetricsMemory = 150000000
HttpMetricsImage = "systemautoscaler/http-metrics"
HttpMetrics = "http-metrics"
HttpMetricsVersion = "0.1.0"
HttpMetricsPort = 8080
HttpMetricsCpu = 100
HttpMetricsMemory = 200000000
)

func (c *CommunityController) runScheduler(_ string) error {
Expand Down Expand Up @@ -257,7 +261,7 @@ func newPod(function *openfaasv1.Function, cs *v1alpha1.CommunitySchedule, node
},
{
Name: "http-metrics",
Image: "systemautoscaler/http-metrics:0.1.0",
Image: fmt.Sprintf("%s:%s", HttpMetricsImage, HttpMetricsVersion),
Ports: []corev1.ContainerPort{
{ContainerPort: int32(8000), Protocol: corev1.ProtocolTCP},
},
Expand Down
7 changes: 7 additions & 0 deletions pkg/cpu-monitoring/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM alpine:3.14.0

LABEL name="cpu-monitoring"

COPY cpu-monitoring /usr/local/bin/

CMD ["cpu-monitoring"]
Loading

0 comments on commit a9e63f0

Please sign in to comment.