Encryption: Add usage stats to secrets service (#42437)

* Encryption: Add usage stats to secrets service

* Sort imports
This commit is contained in:
Tania B
2021-11-29 16:35:15 +02:00
committed by GitHub
parent e440796cb3
commit 58978dcf96
3 changed files with 35 additions and 4 deletions
+21 -3
View File
@@ -10,6 +10,7 @@ import (
"time"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/usagestats"
"github.com/grafana/grafana/pkg/services/encryption"
"github.com/grafana/grafana/pkg/services/kmsproviders"
"github.com/grafana/grafana/pkg/services/secrets"
@@ -18,9 +19,10 @@ import (
)
type SecretsService struct {
store secrets.Store
enc encryption.Internal
settings setting.Provider
store secrets.Store
enc encryption.Internal
settings setting.Provider
usageStats usagestats.Service
currentProvider string
providers map[string]secrets.Provider
@@ -33,6 +35,7 @@ func ProvideSecretsService(
kmsProvidersService kmsproviders.Service,
enc encryption.Internal,
settings setting.Provider,
usageStats usagestats.Service,
) (*SecretsService, error) {
providers, err := kmsProvidersService.Provide()
if err != nil {
@@ -57,15 +60,30 @@ func ProvideSecretsService(
store: store,
enc: enc,
settings: settings,
usageStats: usageStats,
providers: providers,
currentProvider: currentProvider,
dataKeyCache: make(map[string]dataKeyCacheItem),
log: logger,
}
s.registerUsageMetrics()
return s, nil
}
func (s *SecretsService) registerUsageMetrics() {
s.usageStats.RegisterMetricsFunc(func(context.Context) (map[string]interface{}, error) {
enabled := 0
if s.settings.IsFeatureToggleEnabled(secrets.EnvelopeEncryptionFeatureToggle) {
enabled = 1
}
return map[string]interface{}{
"stats.encryption.envelope_encryption_enabled.count": enabled,
}, nil
})
}
type dataKeyCacheItem struct {
expiry time.Time
dataKey []byte