func (m MeasuredService) GetSecret(ctx context.Context, ns, name string) (s *corev1.Secret, err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, ns, "GetSecret", err == nil, t0)
	}(time.Now())
	return m.next.GetSecret(ctx, ns, name)
}
GetSecret satisfies dex.KubernetesRepository interface.
package kubernetes
import (
	"context"
	"time"
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	networkingv1beta1 "k8s.io/api/networking/v1beta1"
	"k8s.io/apimachinery/pkg/watch"
	"github.com/slok/bilrost/internal/metrics"
	"github.com/slok/bilrost/internal/model"
	authv1 "github.com/slok/bilrost/pkg/apis/auth/v1"
)
type MeasuredService struct {
	rec  metrics.Recorder
	next Service
}
func NewMeasuredService(rec metrics.Recorder, next Service) MeasuredService {
	return MeasuredService{rec: rec, next: next}
}
func (m MeasuredService) GetAuthBackend(ctx context.Context, id string) (a *model.AuthBackend, err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, "", "GetAuthBackend", err == nil, t0)
	}(time.Now())
	return m.next.GetAuthBackend(ctx, id)
}
func (m MeasuredService) GetIngressAuth(ctx context.Context, namespace, name string) (ia *authv1.IngressAuth, err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, namespace, "GetIngressAuth", err == nil, t0)
	}(time.Now())
	return m.next.GetIngressAuth(ctx, namespace, name)
}
func (m MeasuredService) ListIngressAuths(ctx context.Context, namespace string, labelSelector map[string]string) (ial *authv1.IngressAuthList, err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, namespace, "ListIngressAuths", err == nil, t0)
	}(time.Now())
	return m.next.ListIngressAuths(ctx, namespace, labelSelector)
}
func (m MeasuredService) WatchIngressAuths(ctx context.Context, namespace string, labelSelector map[string]string) (i watch.Interface, err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, namespace, "WatchIngressAuths", err == nil, t0)
	}(time.Now())
	return m.next.WatchIngressAuths(ctx, namespace, labelSelector)
}
func (m MeasuredService) EnsureDeployment(ctx context.Context, dep *appsv1.Deployment) (err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, dep.Namespace, "EnsureDeployment", err == nil, t0)
	}(time.Now())
	return m.next.EnsureDeployment(ctx, dep)
}
func (m MeasuredService) DeleteDeployment(ctx context.Context, ns, name string) (err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, ns, "DeleteDeployment", err == nil, t0)
	}(time.Now())
	return m.next.DeleteDeployment(ctx, ns, name)
}
func (m MeasuredService) EnsureService(ctx context.Context, svc *corev1.Service) (err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, svc.Namespace, "EnsureService", err == nil, t0)
	}(time.Now())
	return m.next.EnsureService(ctx, svc)
}
func (m MeasuredService) DeleteService(ctx context.Context, ns, name string) (err error) {
	defer func(t0 time.Time) {
		m.rec.ObserveKubernetesServiceOperation(ctx, ns, "DeleteService", err == nil, t0)
	}(time.Now())
	return m.next.DeleteService(ctx, ns, name)
}