mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Revert dskit service additions (#72608)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package backgroundsvcs
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/api"
|
||||
"github.com/grafana/grafana/pkg/infra/metrics"
|
||||
"github.com/grafana/grafana/pkg/infra/remotecache"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
@@ -28,6 +29,7 @@ import (
|
||||
publicdashboardsmetric "github.com/grafana/grafana/pkg/services/publicdashboards/metric"
|
||||
"github.com/grafana/grafana/pkg/services/rendering"
|
||||
"github.com/grafana/grafana/pkg/services/searchV2"
|
||||
secretsMigrations "github.com/grafana/grafana/pkg/services/secrets/kvstore/migrations"
|
||||
secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager"
|
||||
"github.com/grafana/grafana/pkg/services/serviceaccounts"
|
||||
samanager "github.com/grafana/grafana/pkg/services/serviceaccounts/manager"
|
||||
@@ -39,7 +41,7 @@ import (
|
||||
)
|
||||
|
||||
func ProvideBackgroundServiceRegistry(
|
||||
ng *ngalert.AlertNG, cleanup *cleanup.CleanUpService, live *live.GrafanaLive,
|
||||
httpServer *api.HTTPServer, ng *ngalert.AlertNG, cleanup *cleanup.CleanUpService, live *live.GrafanaLive,
|
||||
pushGateway *pushhttp.Gateway, notifications *notifications.NotificationService, processManager *process.Manager,
|
||||
rendering *rendering.RenderingService, tokenService auth.UserTokenBackgroundService, tracing tracing.Tracer,
|
||||
provisioning *provisioning.ProvisioningServiceImpl, alerting *alerting.AlertEngine, usageStats *uss.UsageStats,
|
||||
@@ -47,7 +49,7 @@ func ProvideBackgroundServiceRegistry(
|
||||
pluginsUpdateChecker *updatechecker.PluginsService, metrics *metrics.InternalMetricsService,
|
||||
secretsService *secretsManager.SecretsService, remoteCache *remotecache.RemoteCache, StorageService store.StorageService, searchService searchV2.SearchService, entityEventsService store.EntityEventsService,
|
||||
saService *samanager.ServiceAccountsService, authInfoService *authinfoservice.Implementation,
|
||||
grpcServerProvider grpcserver.Provider, loginAttemptService *loginattemptimpl.Service,
|
||||
grpcServerProvider grpcserver.Provider, secretMigrationProvider secretsMigrations.SecretMigrationProvider, loginAttemptService *loginattemptimpl.Service,
|
||||
bundleService *supportbundlesimpl.Service,
|
||||
publicDashboardsMetric *publicdashboardsmetric.Service,
|
||||
keyRetriever *dynamic.KeyRetriever,
|
||||
@@ -59,6 +61,7 @@ func ProvideBackgroundServiceRegistry(
|
||||
_ *grpcserver.HealthService, _ entity.EntityStoreServer, _ *grpcserver.ReflectionService, _ *ldapapi.Service,
|
||||
) *BackgroundServiceRegistry {
|
||||
return NewBackgroundServiceRegistry(
|
||||
httpServer,
|
||||
ng,
|
||||
cleanup,
|
||||
live,
|
||||
@@ -83,6 +86,7 @@ func ProvideBackgroundServiceRegistry(
|
||||
saService,
|
||||
authInfoService,
|
||||
processManager,
|
||||
secretMigrationProvider,
|
||||
loginAttemptService,
|
||||
bundleService,
|
||||
publicDashboardsMetric,
|
||||
@@ -93,13 +97,13 @@ func ProvideBackgroundServiceRegistry(
|
||||
|
||||
// BackgroundServiceRegistry provides background services.
|
||||
type BackgroundServiceRegistry struct {
|
||||
services []registry.BackgroundService
|
||||
Services []registry.BackgroundService
|
||||
}
|
||||
|
||||
func NewBackgroundServiceRegistry(s ...registry.BackgroundService) *BackgroundServiceRegistry {
|
||||
return &BackgroundServiceRegistry{services: s}
|
||||
func NewBackgroundServiceRegistry(services ...registry.BackgroundService) *BackgroundServiceRegistry {
|
||||
return &BackgroundServiceRegistry{services}
|
||||
}
|
||||
|
||||
func (r *BackgroundServiceRegistry) GetServices() []registry.BackgroundService {
|
||||
return r.services
|
||||
return r.Services
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package backgroundsvcs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestBackgroundServiceRegistry_GetServices(t *testing.T) {
|
||||
s := NewBackgroundServiceRegistry(newTestService("A", nil, false), newTestService("B", errors.New("boom"), false))
|
||||
require.Len(t, s.GetServices(), 2)
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
package backgroundsvcs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
"github.com/grafana/dskit/services"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/modules"
|
||||
"github.com/grafana/grafana/pkg/registry"
|
||||
)
|
||||
|
||||
// BackgroundServiceRunner provides a runner for background services.
|
||||
type BackgroundServiceRunner struct {
|
||||
*services.BasicService
|
||||
registry registry.BackgroundServiceRegistry
|
||||
log log.Logger
|
||||
}
|
||||
|
||||
func ProvideBackgroundServiceRunner(registry registry.BackgroundServiceRegistry) *BackgroundServiceRunner {
|
||||
r := &BackgroundServiceRunner{registry: registry, log: log.New("background-services-runner")}
|
||||
r.BasicService = services.NewBasicService(nil, r.run, nil).WithName(modules.BackgroundServices)
|
||||
return r
|
||||
}
|
||||
|
||||
func (r *BackgroundServiceRunner) run(ctx context.Context) error {
|
||||
childRoutines, childCtx := errgroup.WithContext(ctx)
|
||||
|
||||
// Start background services.
|
||||
for _, svc := range r.registry.GetServices() {
|
||||
if registry.IsDisabled(svc) {
|
||||
continue
|
||||
}
|
||||
|
||||
service := svc
|
||||
serviceName := reflect.TypeOf(service).String()
|
||||
childRoutines.Go(func() error {
|
||||
select {
|
||||
case <-childCtx.Done():
|
||||
return childCtx.Err()
|
||||
default:
|
||||
}
|
||||
r.log.Debug("Starting background service", "service", serviceName)
|
||||
err := service.Run(childCtx)
|
||||
// Do not return context.Canceled error since errgroup.Group only
|
||||
// returns the first error to the caller - thus we can miss a more
|
||||
// interesting error.
|
||||
if err != nil && !errors.Is(err, context.Canceled) {
|
||||
r.log.Error("Stopped background service", "service", serviceName, "reason", err)
|
||||
return fmt.Errorf("%s run error: %w", serviceName, err)
|
||||
}
|
||||
r.log.Debug("Stopped background service", "service", serviceName, "reason", err)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
r.log.Debug("Waiting on services...")
|
||||
return childRoutines.Wait()
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
package backgroundsvcs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestBackgroundServiceRunner_Run_Error(t *testing.T) {
|
||||
testErr := errors.New("boom")
|
||||
registry := NewBackgroundServiceRegistry(newTestService("A", nil, false), newTestService("B", testErr, false))
|
||||
r := ProvideBackgroundServiceRunner(registry)
|
||||
|
||||
err := r.run(context.Background())
|
||||
require.ErrorIs(t, err, testErr)
|
||||
}
|
||||
|
||||
type testBackgroundService struct {
|
||||
name string
|
||||
started chan struct{}
|
||||
runErr error
|
||||
isDisabled bool
|
||||
}
|
||||
|
||||
func newTestService(name string, runErr error, disabled bool) *testBackgroundService {
|
||||
return &testBackgroundService{
|
||||
name: name,
|
||||
started: make(chan struct{}),
|
||||
runErr: runErr,
|
||||
isDisabled: disabled,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *testBackgroundService) Run(ctx context.Context) error {
|
||||
if s.isDisabled {
|
||||
return fmt.Errorf("shouldn't run disabled service")
|
||||
}
|
||||
|
||||
if s.runErr != nil {
|
||||
return s.runErr
|
||||
}
|
||||
close(s.started)
|
||||
<-ctx.Done()
|
||||
return ctx.Err()
|
||||
}
|
||||
|
||||
func (s *testBackgroundService) IsDisabled() bool {
|
||||
return s.isDisabled
|
||||
}
|
||||
Reference in New Issue
Block a user