Path: blob/main/components/image-builder-mk3/pkg/orchestrator/metrics.go
2500 views
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package orchestrator56import (7"strconv"89"github.com/prometheus/client_golang/prometheus"10)1112// RegisterMetrics registers the metrics of this builder13func (o *Orchestrator) RegisterMetrics(reg prometheus.Registerer) error {14err := reg.Register(o.metrics.imageBuildsDoneTotal)15if err != nil {16return err17}18err = reg.Register(o.metrics.imageBuildsStartedTotal)19if err != nil {20return err21}22return nil23}2425const (26metricsNamespace = "gitpod"27metricsSubsystem = "image_builder"28)2930type metrics struct {31imageBuildsDoneTotal *prometheus.CounterVec32imageBuildsStartedTotal prometheus.Counter33}3435func newMetrics() *metrics {36return &metrics{37imageBuildsDoneTotal: prometheus.NewCounterVec(prometheus.CounterOpts{38Namespace: metricsNamespace,39Subsystem: metricsSubsystem,40Name: "builds_done_total",41}, []string{"success"}),42imageBuildsStartedTotal: prometheus.NewCounter(prometheus.CounterOpts{43Namespace: metricsNamespace,44Subsystem: metricsSubsystem,45Name: "builds_started_total",46}),47}48}4950func (m *metrics) BuildDone(success bool) {51m.imageBuildsDoneTotal.WithLabelValues(strconv.FormatBool(success)).Inc()52}5354func (m *metrics) BuildStarted() {55m.imageBuildsStartedTotal.Inc()56}575859