Skip to content

Commit

Permalink
Merge pull request #97 from SOF3/fix-monitor-metrics
Browse files Browse the repository at this point in the history
fix(generator): use more user-friendly units in monitor
  • Loading branch information
SOF3 authored Feb 20, 2025
2 parents 30fe843 + 33cac67 commit 4dde521
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
2 changes: 1 addition & 1 deletion generator/monitor/monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import (
"github.com/kubewharf/podseidon/generator/observer"
)

const ProportionPpmUnits = 1000000
const ProportionPpmUnits = observer.ProportionPpmUnits

var New = component.Declare[Args, Options, Deps, State, util.Empty](
func(Args) string { return "generator-monitor" },
Expand Down
12 changes: 7 additions & 5 deletions generator/observer/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ func appendCountFields(fields *[]metrics.AnyField[MonitorWorkloads], name string
},
),
metrics.NewField(
fmt.Sprintf("current_aggregated_%s_workloads", name),
fmt.Sprintf("current_aggregated_%s_pods", name),
fmt.Sprintf("Current aggregated sum of %s replicas in workloads managed by this generator.", name),
metrics.Int64Gauge(),
func(status MonitorWorkloads) int64 { return field(status).AggregatedReplicas },
Expand All @@ -223,14 +223,16 @@ func appendCountFields(fields *[]metrics.AnyField[MonitorWorkloads], name string
},
),
metrics.NewField(
fmt.Sprintf("sum_%s_proportion_ppm", name),
fmt.Sprintf("sum_%s_proportion", name),
fmt.Sprintf(
"Sum of the proportion of %s replicas, saturated at 1 for each non-zero workload, "+
"rounded to nearest ppm (parts-per-million).",
name,
),
metrics.Int64Gauge(),
func(status MonitorWorkloads) int64 { return field(status).SumProportionPpm },
metrics.FloatGauge(),
func(status MonitorWorkloads) float64 {
return float64(field(status).SumProportionPpm) / float64(ProportionPpmUnits)
},
),
metrics.NewField(
fmt.Sprintf("avg_%s_proportion_ppm", name),
Expand All @@ -241,7 +243,7 @@ func appendCountFields(fields *[]metrics.AnyField[MonitorWorkloads], name string
),
metrics.FloatGauge(),
func(status MonitorWorkloads) float64 {
return float64(field(status).SumProportionPpm) / float64(status.NumNonZeroWorkloads)
return float64(field(status).SumProportionPpm) / float64(status.NumNonZeroWorkloads) / float64(ProportionPpmUnits)
},
),
)
Expand Down
2 changes: 2 additions & 0 deletions generator/observer/observer.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import (
"github.com/kubewharf/podseidon/generator/resource"
)

const ProportionPpmUnits = 1000000

var Provide = component.RequireDeps(
component.RequireDep(ProvideLogging()),
component.RequireDep(ProvideMetrics()),
Expand Down

0 comments on commit 4dde521

Please sign in to comment.