Skip to content

Commit

Permalink
support gmp node metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
bryan-hz committed Oct 31, 2022
1 parent 5d1536e commit d0e6643
Show file tree
Hide file tree
Showing 9 changed files with 414 additions and 156 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,26 @@ subjects:
namespace: custom-metrics
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: custom-metrics-resource-reader
namespace: custom-metrics
rules:
- apiGroups:
- ""
resources:
- "*"
verbs:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: custom-metrics-resource-reader
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
name: custom-metrics-resource-reader
subjects:
- kind: ServiceAccount
name: custom-metrics-stackdriver-adapter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,12 @@ func (p *stackdriverCoreClient) getNodeMetric(nodeNames []string, metricName, me
for i := 0; i < numOfRequests; i++ {
segmentBeg := i * translator.MaxNumOfArgsInOneOfFilter
segmentEnd := min((i+1)*translator.MaxNumOfArgsInOneOfFilter, len(nodeNames))
stackdriverRequest, err := p.translator.GetSDReqForNodesWithNames(nodeNames[segmentBeg:segmentEnd], metricName, metricKind, metricValueType, labels)
stackdriverRequest, err := translator.NewQueryBuilder(p.translator, metricName).
WithNodeNames(nodeNames[segmentBeg:segmentEnd]).
WithMetricKind(metricKind).
WithMetricValueType(metricValueType).
WithMetricSelector(labels).
Build()
if err != nil {
return nil, nil, err
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,17 @@ func (p *StackdriverProvider) getRootScopedMetricByName(groupResource schema.Gro
if err != nil {
return nil, err
}
metricKind, metricValueType, err := p.translator.GetMetricKind(getCustomMetricName(escapedMetricName), metricSelector)
metricName := getCustomMetricName(escapedMetricName)
metricKind, metricValueType, err := p.translator.GetMetricKind(metricName, metricSelector)
if err != nil {
return nil, err
}
stackdriverRequest, err := p.translator.GetSDReqForNodes(&v1.NodeList{Items: []v1.Node{*matchingNode}}, getCustomMetricName(escapedMetricName), metricKind, metricValueType, metricSelector)
stackdriverRequest, err := translator.NewQueryBuilder(p.translator, metricName).
WithNodes(&v1.NodeList{Items: []v1.Node{*matchingNode}}).
WithMetricKind(metricKind).
WithMetricValueType(metricValueType).
WithMetricSelector(metricSelector).
Build()
if err != nil {
return nil, err
}
Expand All @@ -133,15 +139,21 @@ func (p *StackdriverProvider) getRootScopedMetricBySelector(groupResource schema
if err != nil {
return nil, err
}
metricKind, metricValueType, err := p.translator.GetMetricKind(getCustomMetricName(escapedMetricName), metricSelector)
metricName := getCustomMetricName(escapedMetricName)
metricKind, metricValueType, err := p.translator.GetMetricKind(metricName, metricSelector)
if err != nil {
return nil, err
}
result := []custom_metrics.MetricValue{}
for i := 0; i < len(matchingNodes.Items); i += translator.MaxNumOfArgsInOneOfFilter {
sliceSegmentEnd := min(i+translator.MaxNumOfArgsInOneOfFilter, len(matchingNodes.Items))
nodesSlice := &v1.NodeList{Items: matchingNodes.Items[i:sliceSegmentEnd]}
stackdriverRequest, err := p.translator.GetSDReqForNodes(nodesSlice, getCustomMetricName(escapedMetricName), metricKind, metricValueType, metricSelector)
stackdriverRequest, err := translator.NewQueryBuilder(p.translator, metricName).
WithNodes(nodesSlice).
WithMetricKind(metricKind).
WithMetricValueType(metricValueType).
WithMetricSelector(metricSelector).
Build()
if err != nil {
return nil, err
}
Expand Down
Loading

0 comments on commit d0e6643

Please sign in to comment.