influxdb/tenant/middleware_onboarding_loggi...

51 lines
1.4 KiB
Go

package tenant
import (
"context"
"fmt"
"time"
"github.com/influxdata/influxdb/v2"
"go.uber.org/zap"
)
type OnboardingLogger struct {
logger *zap.Logger
onboardingService influxdb.OnboardingService
}
// NewOnboardingLogger returns a logging service middleware for the Bucket Service.
func NewOnboardingLogger(log *zap.Logger, s influxdb.OnboardingService) *OnboardingLogger {
return &OnboardingLogger{
logger: log,
onboardingService: s,
}
}
var _ influxdb.OnboardingService = (*OnboardingLogger)(nil)
func (l *OnboardingLogger) IsOnboarding(ctx context.Context) (available bool, err error) {
defer func(start time.Time) {
dur := zap.Duration("took", time.Since(start))
if err != nil {
l.logger.Error("failed to check onboarding", zap.Error(err), dur)
return
}
l.logger.Debug("is onboarding", dur)
}(time.Now())
return l.onboardingService.IsOnboarding(ctx)
}
func (l *OnboardingLogger) OnboardInitialUser(ctx context.Context, req *influxdb.OnboardingRequest) (res *influxdb.OnboardingResults, err error) {
defer func(start time.Time) {
dur := zap.Duration("took", time.Since(start))
if err != nil {
msg := fmt.Sprintf("failed to onboard user %s", req.User)
l.logger.Error(msg, zap.Error(err), dur)
return
}
l.logger.Debug("onboard initial user", dur)
}(time.Now())
return l.onboardingService.OnboardInitialUser(ctx, req)
}