in metrics/metrics.go [507:563]
func initReleaseMetrics(pluggables *[]handlers.Pluggable, logger *logrus.Logger, consulHost string, consulPort int) error {
subsystem := "release"
severities := []string{"severity::1", "severity::2", "severity::3", "severity::4", "none"}
pressureGauge, err := metrics.NewGaugeVec(
metrics.WithName("pressure"),
metrics.WithSubsystem(subsystem),
metrics.WithHelp("Number of unreleased merge requests"),
metrics.WithLabel(labels.FromValues("severity", severities)),
metrics.WithLabel(labels.MinorVersion("version")),
)
if err != nil {
return err
}
*pluggables = append(*pluggables, handlers.NewGauge(pressureGauge))
// Status (value)
// Open (1): Any commit that reached production is expected to be released with the next monthly release
// Announced (2): Signal the RC tagging date is getting closer
// Tagged_RC (3): RC has been tagged; any commit that has not reached production prior to the tagging time is
// not included in the monthly release.
monthlyStatusGauge, err := metrics.NewGaugeVec(
metrics.WithName("monthly_status"),
metrics.WithSubsystem(subsystem),
metrics.WithHelp("Status of monthly release"),
metrics.WithLabel(labels.ReleaseDate("release_date")),
metrics.WithLabel(labels.MinorVersion("version")),
metrics.WithConsulMemory(consulHost, consulPort, logger),
)
if err != nil {
return err
}
*pluggables = append(*pluggables, handlers.NewGauge(monthlyStatusGauge))
// Status (value)
// Open (1): Any 'security-target' security issue is expected to be processed in the patch release
// Warning (2): Signal the Merging date is getting closer (Friday before release)
// Merged (3): Default branch MRs have been merged; no more security issue will be processed for the patch release
patchStatusGauge, err := metrics.NewGaugeVec(
metrics.WithName("patch_status"),
metrics.WithSubsystem(subsystem),
metrics.WithHelp("Status of patch release"),
metrics.WithLabel(labels.ReleaseDate("release_date")),
metrics.WithLabel(labels.AnyString("versions")),
metrics.WithConsulMemory(consulHost, consulPort, logger),
)
if err != nil {
return err
}
*pluggables = append(*pluggables, handlers.NewGauge(patchStatusGauge))
return nil
}