chore: rework prometheus metrics registration
fail if metric registration panics Signed-off-by: Mario Constanti <mario.constanti@mercedes-benz.com>
This commit is contained in:
parent
3e025dda2f
commit
17d74dfbf0
11 changed files with 68 additions and 74 deletions
|
|
@ -9,14 +9,12 @@ import (
|
|||
)
|
||||
|
||||
func CollectHealthMetric(ctx context.Context, r *runner.Runner, controllerInfo params.ControllerInfo) error {
|
||||
|
||||
metrics.GarmHealth.WithLabelValues(
|
||||
controllerInfo.Hostname, // label: hostname
|
||||
controllerInfo.ControllerID.String(), // label: id
|
||||
controllerInfo.MetadataURL, // label: metadata_url
|
||||
controllerInfo.CallbackURL, // label: callback_url
|
||||
controllerInfo.WebhookURL, // label: webhook_url
|
||||
controllerInfo.ControllerWebhookURL, // label: controller_webhook_url
|
||||
controllerInfo.ControllerID.String(), // label: controller_id
|
||||
).Set(1)
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,13 +4,12 @@ import (
|
|||
"context"
|
||||
|
||||
"github.com/cloudbase/garm/metrics"
|
||||
"github.com/cloudbase/garm/params"
|
||||
"github.com/cloudbase/garm/runner"
|
||||
)
|
||||
|
||||
// CollectInstanceMetric collects the metrics for the runner instances
|
||||
// reflecting the statuses and the pool they belong to.
|
||||
func CollectInstanceMetric(ctx context.Context, r *runner.Runner, controllerInfo params.ControllerInfo) error {
|
||||
func CollectInstanceMetric(ctx context.Context, r *runner.Runner) error {
|
||||
|
||||
// reset metrics
|
||||
metrics.InstanceStatus.Reset()
|
||||
|
|
@ -63,10 +62,7 @@ func CollectInstanceMetric(ctx context.Context, r *runner.Runner, controllerInfo
|
|||
poolNames[instance.PoolID].Name, // label: pool_owner
|
||||
poolNames[instance.PoolID].Type, // label: pool_type
|
||||
instance.PoolID, // label: pool_id
|
||||
controllerInfo.Hostname, // label: hostname
|
||||
controllerInfo.ControllerID.String(), // label: controller_id
|
||||
poolNames[instance.PoolID].ProviderName, // label: provider
|
||||
|
||||
).Set(1)
|
||||
}
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -57,17 +57,17 @@ func CollectObjectMetric(ctx context.Context, r *runner.Runner, ticker *time.Tic
|
|||
slog.With(slog.Any("error", err)).ErrorContext(ctx, "cannot collect pool metrics")
|
||||
}
|
||||
|
||||
slog.DebugContext(ctx, "collecting instance metrics")
|
||||
err = CollectInstanceMetric(ctx, r)
|
||||
if err != nil {
|
||||
slog.With(slog.Any("error", err)).ErrorContext(ctx, "cannot collect instance metrics")
|
||||
}
|
||||
|
||||
slog.DebugContext(ctx, "collecting health metrics")
|
||||
err = CollectHealthMetric(ctx, r, controllerInfo)
|
||||
if err != nil {
|
||||
slog.With(slog.Any("error", err)).ErrorContext(ctx, "cannot collect health metrics")
|
||||
}
|
||||
|
||||
slog.DebugContext(ctx, "collecting instance metrics")
|
||||
err = CollectInstanceMetric(ctx, r, controllerInfo)
|
||||
if err != nil {
|
||||
slog.With(slog.Any("error", err)).ErrorContext(ctx, "cannot collect instance metrics")
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue