Cloud migrations: create endpoint to create an access token (#84690)

* fix merge conflicts

* make token expiration configurable
This commit is contained in:
Bruno
2024-03-25 12:43:28 -03:00
committed by GitHub
parent e237b89fe7
commit a2e21eac8c
12 changed files with 560 additions and 53 deletions
@@ -2,25 +2,50 @@ package cloudmigrationimpl
import (
"errors"
"fmt"
"github.com/grafana/grafana/pkg/services/cloudmigration"
"github.com/prometheus/client_golang/prometheus"
)
// type Metrics struct {
// log log.Logger
// }
const (
namespace = "grafana"
subsystem = "cloudmigrations"
)
func (s *Service) registerMetrics(prom prometheus.Registerer) error {
for _, m := range cloudmigration.PromMetrics {
if err := prom.Register(m); err != nil {
var alreadyRegisterErr prometheus.AlreadyRegisteredError
if errors.As(err, &alreadyRegisterErr) {
s.log.Warn("metric already registered", "metric", m)
continue
}
return err
var PromMetrics = []prometheus.Collector{
prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Name: "datasources_migrated",
Help: "Total amount of data sources migrated",
}, []string{"pdc_converted"}),
}
type Metrics struct {
accessTokenCreated *prometheus.CounterVec
}
func newMetrics() *Metrics {
return &Metrics{
accessTokenCreated: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Subsystem: subsystem,
Name: "access_token_created",
Help: "Total of access tokens created",
}, []string{"slug"}),
}
}
func (s *Service) registerMetrics(prom prometheus.Registerer, metrics *Metrics) error {
if err := prom.Register(metrics.accessTokenCreated); err != nil {
var alreadyRegisterErr prometheus.AlreadyRegisteredError
if errors.As(err, &alreadyRegisterErr) {
s.log.Warn("metric already registered", "metric", metrics.accessTokenCreated)
} else {
return fmt.Errorf("registering access token created metric: %w", err)
}
}
return nil
}