From 23ac198ec465c69cfece868a44aab59251726ad8 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Fri, 10 Mar 2023 16:52:02 +0100 Subject: [PATCH] add actions_total_minutes_used_by_host_minutes metric (#75) Signed-off-by: cpanato --- internal/server/billing_metrics_exporter.go | 12 ++++++++++++ internal/server/metrics.go | 14 +++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/internal/server/billing_metrics_exporter.go b/internal/server/billing_metrics_exporter.go index d72f269..90f6afc 100644 --- a/internal/server/billing_metrics_exporter.go +++ b/internal/server/billing_metrics_exporter.go @@ -92,6 +92,12 @@ func (c *BillingMetricsExporter) collectOrgBilling(ctx context.Context) { totalMinutesUsedActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(actionsBilling.TotalMinutesUsed) includedMinutesUsedActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(actionsBilling.IncludedMinutes) totalPaidMinutesActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(actionsBilling.TotalPaidMinutesUsed) + + for host, minutes := range actionsBilling.MinutesUsedBreakdown { + totalMinutesUsedByHostTypeActions.WithLabelValues(c.Opts.GitHubOrg, "", host).Set(float64(minutes)) + } + + // TODO: deprecate totalMinutesUsedUbuntuActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(float64(actionsBilling.MinutesUsedBreakdown["UBUNTU"])) totalMinutesUsedMacOSActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(float64(actionsBilling.MinutesUsedBreakdown["MACOS"])) totalMinutesUsedWindowsActions.WithLabelValues(c.Opts.GitHubOrg, "").Set(float64(actionsBilling.MinutesUsedBreakdown["WINDOWS"])) @@ -107,6 +113,12 @@ func (c *BillingMetricsExporter) collectUserBilling(ctx context.Context) { totalMinutesUsedActions.WithLabelValues("", c.Opts.GitHubUser).Set(actionsBilling.TotalMinutesUsed) includedMinutesUsedActions.WithLabelValues("", c.Opts.GitHubUser).Set(actionsBilling.IncludedMinutes) totalPaidMinutesActions.WithLabelValues("", c.Opts.GitHubUser).Set(actionsBilling.TotalPaidMinutesUsed) + + for host, minutes := range actionsBilling.MinutesUsedBreakdown { + totalMinutesUsedByHostTypeActions.WithLabelValues("", c.Opts.GitHubUser, host).Set(float64(minutes)) + } + + // TODO: deprecate totalMinutesUsedUbuntuActions.WithLabelValues("", c.Opts.GitHubUser).Set(float64(actionsBilling.MinutesUsedBreakdown["UBUNTU"])) totalMinutesUsedMacOSActions.WithLabelValues("", c.Opts.GitHubUser).Set(float64(actionsBilling.MinutesUsedBreakdown["MACOS"])) totalMinutesUsedWindowsActions.WithLabelValues("", c.Opts.GitHubUser).Set(float64(actionsBilling.MinutesUsedBreakdown["WINDOWS"])) diff --git a/internal/server/metrics.go b/internal/server/metrics.go index 445aa9a..e60abc9 100644 --- a/internal/server/metrics.go +++ b/internal/server/metrics.go @@ -63,24 +63,31 @@ var ( totalMinutesUsedUbuntuActions = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "actions_total_minutes_used_ubuntu_minutes", - Help: "Total minutes used for Ubuntu type for the GitHub Actions.", + Help: "Total minutes used for Ubuntu type for the GitHub Actions. To be deprecate, use actions_total_minutes_used_by_host_minutes", }, []string{"org", "user"}, ) totalMinutesUsedMacOSActions = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "actions_total_minutes_used_macos_minutes", - Help: "Total minutes used for MacOS type for the GitHub Actions.", + Help: "Total minutes used for MacOS type for the GitHub Actions. To be deprecate, use actions_total_minutes_used_by_host_minutes", }, []string{"org", "user"}, ) totalMinutesUsedWindowsActions = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "actions_total_minutes_used_windows_minutes", - Help: "Total minutes used for Windows type for the GitHub Actions.", + Help: "Total minutes used for Windows type for the GitHub Actions. To be deprecate, use actions_total_minutes_used_by_host_minutes", }, []string{"org", "user"}, ) + + totalMinutesUsedByHostTypeActions = prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Name: "actions_total_minutes_used_by_host_minutes", + Help: "Total minutes used for a specific host type for the GitHub Actions.", + }, + []string{"org", "user", "host_type"}, + ) ) func init() { @@ -96,6 +103,7 @@ func init() { prometheus.MustRegister(totalMinutesUsedUbuntuActions) prometheus.MustRegister(totalMinutesUsedMacOSActions) prometheus.MustRegister(totalMinutesUsedWindowsActions) + prometheus.MustRegister(totalMinutesUsedByHostTypeActions) } type WorkflowObserver interface {