github.com/influxdata/influxdb/v2@v2.7.6/replications/transport/middleware_metrics.go (about) 1 package transport 2 3 import ( 4 "context" 5 6 "github.com/influxdata/influxdb/v2" 7 "github.com/influxdata/influxdb/v2/kit/metric" 8 "github.com/influxdata/influxdb/v2/kit/platform" 9 "github.com/prometheus/client_golang/prometheus" 10 ) 11 12 func newMetricCollectingService(reg prometheus.Registerer, underlying ReplicationService, opts ...metric.ClientOptFn) *metricsService { 13 o := metric.ApplyMetricOpts(opts...) 14 return &metricsService{ 15 rec: metric.New(reg, o.ApplySuffix("replication")), 16 underlying: underlying, 17 } 18 } 19 20 type metricsService struct { 21 rec *metric.REDClient 22 underlying ReplicationService 23 } 24 25 var _ ReplicationService = (*metricsService)(nil) 26 27 func (m metricsService) ListReplications(ctx context.Context, filter influxdb.ReplicationListFilter) (*influxdb.Replications, error) { 28 rec := m.rec.Record("find_replications") 29 rcs, err := m.underlying.ListReplications(ctx, filter) 30 return rcs, rec(err) 31 } 32 33 func (m metricsService) CreateReplication(ctx context.Context, request influxdb.CreateReplicationRequest) (*influxdb.Replication, error) { 34 rec := m.rec.Record("create_replication") 35 r, err := m.underlying.CreateReplication(ctx, request) 36 return r, rec(err) 37 } 38 39 func (m metricsService) ValidateNewReplication(ctx context.Context, request influxdb.CreateReplicationRequest) error { 40 rec := m.rec.Record("validate_create_replication") 41 return rec(m.underlying.ValidateNewReplication(ctx, request)) 42 } 43 44 func (m metricsService) GetReplication(ctx context.Context, id platform.ID) (*influxdb.Replication, error) { 45 rec := m.rec.Record("find_replication_by_id") 46 r, err := m.underlying.GetReplication(ctx, id) 47 return r, rec(err) 48 } 49 50 func (m metricsService) UpdateReplication(ctx context.Context, id platform.ID, request influxdb.UpdateReplicationRequest) (*influxdb.Replication, error) { 51 rec := m.rec.Record("update_replication") 52 r, err := m.underlying.UpdateReplication(ctx, id, request) 53 return r, rec(err) 54 } 55 56 func (m metricsService) ValidateUpdatedReplication(ctx context.Context, id platform.ID, request influxdb.UpdateReplicationRequest) error { 57 rec := m.rec.Record("validate_update_replication") 58 return rec(m.underlying.ValidateUpdatedReplication(ctx, id, request)) 59 } 60 61 func (m metricsService) DeleteReplication(ctx context.Context, id platform.ID) error { 62 rec := m.rec.Record("delete_replication") 63 return rec(m.underlying.DeleteReplication(ctx, id)) 64 } 65 66 func (m metricsService) ValidateReplication(ctx context.Context, id platform.ID) error { 67 rec := m.rec.Record("validate_replication") 68 return rec(m.underlying.ValidateReplication(ctx, id)) 69 }