Skip to content

Commit

Permalink
cleanup json schema and names
Browse files Browse the repository at this point in the history
  • Loading branch information
Richard87 committed Jan 8, 2025
1 parent c5e24f3 commit de950be
Show file tree
Hide file tree
Showing 9 changed files with 106 additions and 109 deletions.
10 changes: 5 additions & 5 deletions api/applications/applications_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2002,18 +2002,18 @@ func Test_GetUsedResources(t *testing.T) {
require.NoError(t, err)

expectedUtilization := applicationModels.NewPodResourcesUtilizationResponse()
expectedUtilization.SetCpuReqs("dev", "web", "web-abcd-1", 1)
expectedUtilization.SetCpuRequests("dev", "web", "web-abcd-1", 1)

cpuReqs := []metrics.LabeledResults{{Value: 1, Namespace: appName1 + "-dev", Component: "web", Pod: "web-abcd-1"}}

validator := authnmock.NewMockValidatorInterface(ctrl)
validator.EXPECT().ValidateToken(gomock.Any(), gomock.Any()).Times(1).Return(controllertest.NewTestPrincipal(true), nil)

client := mock2.NewMockClient(ctrl)
client.EXPECT().GetCpuReqs(gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return(cpuReqs, nil)
client.EXPECT().GetCpuAvg(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, nil)
client.EXPECT().GetMemReqs(gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, nil)
client.EXPECT().GetMemMax(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, ts.expectedError)
client.EXPECT().GetCpuRequests(gomock.Any(), gomock.Any()).Times(1).Return(cpuReqs, nil)
client.EXPECT().GetCpuAverage(gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, nil)
client.EXPECT().GetMemoryRequests(gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, nil)
client.EXPECT().GetMemoryMaximum(gomock.Any(), gomock.Any(), gomock.Any()).Times(1).Return([]metrics.LabeledResults{}, ts.expectedError)
metricsHandler := metrics.NewHandler(client)

controllerTestUtils := controllertest.NewTestUtils(kubeClient, radixClient, kedaClient, secretProviderClient, certClient, validator,
Expand Down
24 changes: 12 additions & 12 deletions api/applications/models/resource_utilization.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ type ComponentUtilization struct {
type ReplicaUtilization struct {
// Memory Requests
// required: true
MemReqs float64 `json:"mem_reqs"`
MemoryRequests float64 `json:"memoryRequests"`
// Max memory used
// required: true
MemMax float64 `json:"mem_max"`
MemoryMaximum float64 `json:"memoryMaximum"`
// Cpu Requests
// required: true
CpuReqs float64 `json:"cpu_reqs"`
CpuRequests float64 `json:"cpuRequests"`
// Average CPU Used
// required: true
CpuAvg float64 `json:"cpu_avg"`
CpuAverage float64 `json:"cpuAverage"`
}

func NewPodResourcesUtilizationResponse() *ReplicaResourcesUtilizationResponse {
Expand All @@ -34,35 +34,35 @@ func NewPodResourcesUtilizationResponse() *ReplicaResourcesUtilizationResponse {
}
}

func (r *ReplicaResourcesUtilizationResponse) SetCpuReqs(environment, component, pod string, value float64) {
func (r *ReplicaResourcesUtilizationResponse) SetCpuRequests(environment, component, pod string, value float64) {
r.ensurePod(environment, component, pod)

p := r.Environments[environment].Components[component].Replicas[pod]
p.CpuReqs = value
p.CpuRequests = value
r.Environments[environment].Components[component].Replicas[pod] = p
}

func (r *ReplicaResourcesUtilizationResponse) SetCpuAvg(environment, component, pod string, value float64) {
func (r *ReplicaResourcesUtilizationResponse) SetCpuAverage(environment, component, pod string, value float64) {
r.ensurePod(environment, component, pod)

p := r.Environments[environment].Components[component].Replicas[pod]
p.CpuAvg = value
p.CpuAverage = value
r.Environments[environment].Components[component].Replicas[pod] = p
}

func (r *ReplicaResourcesUtilizationResponse) SetMemReqs(environment, component, pod string, value float64) {
func (r *ReplicaResourcesUtilizationResponse) SetMemoryRequests(environment, component, pod string, value float64) {
r.ensurePod(environment, component, pod)

p := r.Environments[environment].Components[component].Replicas[pod]
p.MemReqs = value
p.MemoryRequests = value
r.Environments[environment].Components[component].Replicas[pod] = p
}

func (r *ReplicaResourcesUtilizationResponse) SetMemMax(environment, component, pod string, value float64) {
func (r *ReplicaResourcesUtilizationResponse) SetMemoryMaximum(environment, component, pod string, value float64) {
r.ensurePod(environment, component, pod)

p := r.Environments[environment].Components[component].Replicas[pod]
p.MemMax = value
p.MemoryMaximum = value
r.Environments[environment].Components[component].Replicas[pod] = p
}

Expand Down
16 changes: 8 additions & 8 deletions api/applications/models/resource_utilization_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ func TestComponentUtilization(t *testing.T) {

assert.Empty(t, r.Environments)

r.SetCpuReqs("dev", "web", "web-abccdc-1234", 1)
r.SetMemReqs("prod", "srv", "srv-abccdc-1234", 2)
r.SetMemMax("dev", "web", "web-abccdc-1234", 1500)
r.SetCpuAvg("prod", "srv", "srv-abccdc-1234", 2.5)
r.SetCpuRequests("dev", "web", "web-abccdc-1234", 1)
r.SetMemoryRequests("prod", "srv", "srv-abccdc-1234", 2)
r.SetMemoryMaximum("dev", "web", "web-abccdc-1234", 1500)
r.SetCpuAverage("prod", "srv", "srv-abccdc-1234", 2.5)

require.Len(t, r.Environments, 2)
require.Contains(t, r.Environments, "dev")
Expand All @@ -29,9 +29,9 @@ func TestComponentUtilization(t *testing.T) {
require.Contains(t, r.Environments["dev"].Components["web"].Replicas, "web-abccdc-1234")
require.Contains(t, r.Environments["prod"].Components["srv"].Replicas, "srv-abccdc-1234")

assert.Equal(t, 1.0, r.Environments["dev"].Components["web"].Replicas["web-abccdc-1234"].CpuReqs)
assert.Equal(t, 2.0, r.Environments["prod"].Components["srv"].Replicas["srv-abccdc-1234"].MemReqs)
assert.Equal(t, 1.0, r.Environments["dev"].Components["web"].Replicas["web-abccdc-1234"].CpuRequests)
assert.Equal(t, 2.0, r.Environments["prod"].Components["srv"].Replicas["srv-abccdc-1234"].MemoryRequests)

assert.Equal(t, 1500.0, r.Environments["dev"].Components["web"].Replicas["web-abccdc-1234"].MemMax)
assert.Equal(t, 2.5, r.Environments["prod"].Components["srv"].Replicas["srv-abccdc-1234"].CpuAvg)
assert.Equal(t, 1500.0, r.Environments["dev"].Components["web"].Replicas["web-abccdc-1234"].MemoryMaximum)
assert.Equal(t, 2.5, r.Environments["prod"].Components["srv"].Replicas["srv-abccdc-1234"].CpuAverage)
}
33 changes: 17 additions & 16 deletions api/metrics/metrics_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ type LabeledResults struct {
Pod string
}
type Client interface {
GetCpuReqs(ctx context.Context, appName, namespace string) ([]LabeledResults, error)
GetCpuAvg(ctx context.Context, appName, namespace, duration string) ([]LabeledResults, error)
GetMemReqs(ctx context.Context, appName, namespace string) ([]LabeledResults, error)
GetMemMax(ctx context.Context, appName, namespace, duration string) ([]LabeledResults, error)
GetCpuRequests(ctx context.Context, namespace string) ([]LabeledResults, error)
GetCpuAverage(ctx context.Context, namespace, duration string) ([]LabeledResults, error)
GetMemoryRequests(ctx context.Context, namespace string) ([]LabeledResults, error)
GetMemoryMaximum(ctx context.Context, namespace, duration string) ([]LabeledResults, error)
}

type Handler struct {
Expand All @@ -44,40 +44,41 @@ func (pc *Handler) GetReplicaResourcesUtilization(ctx context.Context, appName,
namespace = appName + "-" + envName
}

results, err := pc.client.GetCpuReqs(ctx, appName, namespace)
extractEnv := func(namespace string) string {
env, _ := strings.CutPrefix(namespace, appName+"-")
return env
}

results, err := pc.client.GetCpuRequests(ctx, namespace)
if err != nil {
return nil, err
}
for _, result := range results {
environment, _ := strings.CutPrefix(result.Namespace, appName+"-")
utilization.SetCpuReqs(environment, result.Component, result.Pod, math.Round(result.Value*1e6)/1e6)
utilization.SetCpuRequests(extractEnv(result.Namespace), result.Component, result.Pod, math.Round(result.Value*1e6)/1e6)
}

results, err = pc.client.GetCpuAvg(ctx, appName, namespace, DefaultDuration)
results, err = pc.client.GetCpuAverage(ctx, namespace, DefaultDuration)
if err != nil {
return nil, err
}
for _, result := range results {
environment, _ := strings.CutPrefix(result.Namespace, appName+"-")
utilization.SetCpuAvg(environment, result.Component, result.Pod, math.Round(result.Value*1e6)/1e6)
utilization.SetCpuAverage(extractEnv(result.Namespace), result.Component, result.Pod, math.Round(result.Value*1e6)/1e6)
}

results, err = pc.client.GetMemReqs(ctx, appName, namespace)
results, err = pc.client.GetMemoryRequests(ctx, namespace)
if err != nil {
return nil, err
}
for _, result := range results {
environment, _ := strings.CutPrefix(result.Namespace, appName+"-")
utilization.SetMemReqs(environment, result.Component, result.Pod, math.Round(result.Value))
utilization.SetMemoryRequests(extractEnv(result.Namespace), result.Component, result.Pod, math.Round(result.Value))
}

results, err = pc.client.GetMemMax(ctx, appName, namespace, DefaultDuration)
results, err = pc.client.GetMemoryMaximum(ctx, namespace, DefaultDuration)
if err != nil {
return nil, err
}
for _, result := range results {
environment, _ := strings.CutPrefix(result.Namespace, appName+"-")
utilization.SetMemMax(environment, result.Component, result.Pod, math.Round(result.Value))
utilization.SetMemoryMaximum(extractEnv(result.Namespace), result.Component, result.Pod, math.Round(result.Value))
}

return utilization, nil
Expand Down
24 changes: 12 additions & 12 deletions api/metrics/metrics_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ func Test_handler_GetReplicaResourcesUtilization(t *testing.T) {
{Value: 100, Namespace: appName1 + "-dev", Component: "web", Pod: "web-abcd-2"},
}

client.EXPECT().GetCpuReqs(gomock.Any(), ts.appName, expectedNamespace).Times(1).Return(cpuReqs, nil)
client.EXPECT().GetCpuAvg(gomock.Any(), ts.appName, expectedNamespace, "24h").Times(1).Return(cpuAvg, nil)
client.EXPECT().GetMemReqs(gomock.Any(), ts.appName, expectedNamespace).Times(1).Return(memReqs, nil)
client.EXPECT().GetMemMax(gomock.Any(), ts.appName, expectedNamespace, "24h").Times(1).Return(MemMax, nil)
client.EXPECT().GetCpuRequests(gomock.Any(), expectedNamespace).Times(1).Return(cpuReqs, nil)
client.EXPECT().GetCpuAverage(gomock.Any(), expectedNamespace, "24h").Times(1).Return(cpuAvg, nil)
client.EXPECT().GetMemoryRequests(gomock.Any(), expectedNamespace).Times(1).Return(memReqs, nil)
client.EXPECT().GetMemoryMaximum(gomock.Any(), expectedNamespace, "24h").Times(1).Return(MemMax, nil)

metricsHandler := metrics.NewHandler(client)
response, err := metricsHandler.GetReplicaResourcesUtilization(context.Background(), appName1, ts.envName)
Expand All @@ -74,15 +74,15 @@ func Test_handler_GetReplicaResourcesUtilization(t *testing.T) {
assert.Contains(t, response.Environments["dev"].Components["web"].Replicas, "web-abcd-1")
assert.Contains(t, response.Environments["dev"].Components["web"].Replicas, "web-abcd-2")

assert.EqualValues(t, 1, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].CpuReqs)
assert.EqualValues(t, 0.5, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].CpuAvg)
assert.EqualValues(t, 100, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].MemReqs)
assert.EqualValues(t, 50, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].MemMax)
assert.EqualValues(t, 1, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].CpuRequests)
assert.EqualValues(t, 0.5, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].CpuAverage)
assert.EqualValues(t, 100, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].MemoryRequests)
assert.EqualValues(t, 50, response.Environments["dev"].Components["web"].Replicas["web-abcd-1"].MemoryMaximum)

assert.EqualValues(t, 2, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].CpuReqs)
assert.EqualValues(t, 0.7, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].CpuAvg)
assert.EqualValues(t, 200, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].MemReqs)
assert.EqualValues(t, 100, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].MemMax)
assert.EqualValues(t, 2, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].CpuRequests)
assert.EqualValues(t, 0.7, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].CpuAverage)
assert.EqualValues(t, 200, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].MemoryRequests)
assert.EqualValues(t, 100, response.Environments["dev"].Components["web"].Replicas["web-abcd-2"].MemoryMaximum)

assert.NotEmpty(t, response)
})
Expand Down
48 changes: 24 additions & 24 deletions api/metrics/mock/metrics_handler_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit de950be

Please sign in to comment.