Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename metrics.Handler to avoid name stuttering #3713

Merged
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions client/admin/metric_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@ var _ adminservice.AdminServiceClient = (*metricClient)(nil)

type metricClient struct {
client adminservice.AdminServiceClient
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
throttledLogger log.Logger
}

// NewMetricClient creates a new instance of adminservice.AdminServiceClient that emits metrics
func NewMetricClient(
client adminservice.AdminServiceClient,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
throttledLogger log.Logger,
) adminservice.AdminServiceClient {
return &metricClient{
Expand All @@ -61,15 +61,15 @@ func NewMetricClient(
func (c *metricClient) startMetricsRecording(
ctx context.Context,
operation string,
) (metrics.MetricsHandler, time.Time) {
) (metrics.Handler, time.Time) {
caller := headers.GetCallerInfo(ctx).CallerName
handler := c.metricsHandler.WithTags(metrics.OperationTag(operation), metrics.NamespaceTag(caller), metrics.ServiceRoleTag(metrics.AdminRoleTagValue))
handler.Counter(metrics.ClientRequests.GetMetricName()).Record(1)
return handler, time.Now().UTC()
}

func (c *metricClient) finishMetricsRecording(
handler metrics.MetricsHandler,
handler metrics.Handler,
startTime time.Time,
err error,
) {
Expand Down
2 changes: 1 addition & 1 deletion client/clientFactory_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions client/clientfactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ type (
NewFactory(
rpcFactory common.RPCFactory,
monitor membership.Monitor,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
dc *dynamicconfig.Collection,
numberOfHistoryShards int32,
logger log.Logger,
Expand All @@ -77,7 +77,7 @@ type (
rpcClientFactory struct {
rpcFactory common.RPCFactory
monitor membership.Monitor
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
dynConfig *dynamicconfig.Collection
numberOfHistoryShards int32
logger log.Logger
Expand All @@ -101,7 +101,7 @@ func NewFactoryProvider() FactoryProvider {
func (p *factoryProviderImpl) NewFactory(
rpcFactory common.RPCFactory,
monitor membership.Monitor,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
dc *dynamicconfig.Collection,
numberOfHistoryShards int32,
logger log.Logger,
Expand Down
8 changes: 4 additions & 4 deletions client/frontend/metric_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@ var _ workflowservice.WorkflowServiceClient = (*metricClient)(nil)

type metricClient struct {
client workflowservice.WorkflowServiceClient
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
throttledLogger log.Logger
}

// NewMetricClient creates a new instance of workflowservice.WorkflowServiceClient that emits metrics
func NewMetricClient(
client workflowservice.WorkflowServiceClient,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
throttledLogger log.Logger,
) workflowservice.WorkflowServiceClient {
return &metricClient{
Expand All @@ -61,15 +61,15 @@ func NewMetricClient(
func (c *metricClient) startMetricsRecording(
ctx context.Context,
operation string,
) (metrics.MetricsHandler, time.Time) {
) (metrics.Handler, time.Time) {
caller := headers.GetCallerInfo(ctx).CallerName
handler := c.metricsHandler.WithTags(metrics.OperationTag(operation), metrics.NamespaceTag(caller), metrics.ServiceRoleTag(metrics.FrontendRoleTagValue))
handler.Counter(metrics.ClientRequests.GetMetricName()).Record(1)
return handler, time.Now().UTC()
}

func (c *metricClient) finishMetricsRecording(
handler metrics.MetricsHandler,
handler metrics.Handler,
startTime time.Time,
err error,
) {
Expand Down
8 changes: 4 additions & 4 deletions client/history/metric_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ var _ historyservice.HistoryServiceClient = (*metricClient)(nil)

type metricClient struct {
client historyservice.HistoryServiceClient
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
logger log.Logger
throttledLogger log.Logger
}

// NewMetricClient creates a new instance of historyservice.HistoryServiceClient that emits metrics
func NewMetricClient(
client historyservice.HistoryServiceClient,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
logger log.Logger,
throttledLogger log.Logger,
) historyservice.HistoryServiceClient {
Expand All @@ -64,15 +64,15 @@ func NewMetricClient(
func (c *metricClient) startMetricsRecording(
ctx context.Context,
operation string,
) (metrics.MetricsHandler, time.Time) {
) (metrics.Handler, time.Time) {
caller := headers.GetCallerInfo(ctx).CallerName
handler := c.metricsHandler.WithTags(metrics.OperationTag(operation), metrics.NamespaceTag(caller), metrics.ServiceRoleTag(metrics.HistoryRoleTagValue))
handler.Counter(metrics.ClientRequests.GetMetricName()).Record(1)
return handler, time.Now().UTC()
}

func (c *metricClient) finishMetricsRecording(
handler metrics.MetricsHandler,
handler metrics.Handler,
startTime time.Time,
err error,
) {
Expand Down
10 changes: 5 additions & 5 deletions client/matching/metric_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ var _ matchingservice.MatchingServiceClient = (*metricClient)(nil)

type metricClient struct {
client matchingservice.MatchingServiceClient
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
logger log.Logger
throttledLogger log.Logger
}

// NewMetricClient creates a new instance of matchingservice.MatchingServiceClient that emits metrics
func NewMetricClient(
client matchingservice.MatchingServiceClient,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
logger log.Logger,
throttledLogger log.Logger,
) matchingservice.MatchingServiceClient {
Expand Down Expand Up @@ -171,7 +171,7 @@ func (c *metricClient) QueryWorkflow(
}

func (c *metricClient) emitForwardedSourceStats(
handler metrics.MetricsHandler,
handler metrics.Handler,
forwardedFrom string,
taskQueue *taskqueuepb.TaskQueue,
) {
Expand All @@ -193,15 +193,15 @@ func (c *metricClient) emitForwardedSourceStats(
func (c *metricClient) startMetricsRecording(
ctx context.Context,
operation string,
) (metrics.MetricsHandler, time.Time) {
) (metrics.Handler, time.Time) {
caller := headers.GetCallerInfo(ctx).CallerName
handler := c.metricsHandler.WithTags(metrics.OperationTag(operation), metrics.NamespaceTag(caller), metrics.ServiceRoleTag(metrics.MatchingRoleTagValue))
handler.Counter(metrics.ClientRequests.GetMetricName()).Record(1)
return handler, time.Now().UTC()
}

func (c *metricClient) finishMetricsRecording(
handler metrics.MetricsHandler,
handler metrics.Handler,
startTime time.Time,
err error,
) {
Expand Down
4 changes: 2 additions & 2 deletions common/archiver/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ type (
HistoryBootstrapContainer struct {
ExecutionManager persistence.ExecutionManager
Logger log.Logger
MetricsHandler metrics.MetricsHandler
MetricsHandler metrics.Handler
ClusterMetadata cluster.Metadata
}

Expand All @@ -99,7 +99,7 @@ type (
// VisibilityBootstrapContainer contains components needed by all visibility Archiver implementations
VisibilityBootstrapContainer struct {
Logger log.Logger
MetricsHandler metrics.MetricsHandler
MetricsHandler metrics.Handler
ClusterMetadata cluster.Metadata
}

Expand Down
10 changes: 5 additions & 5 deletions common/authorization/interceptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ func (a *interceptor) authorize(
ctx context.Context,
claims *Claims,
callTarget *CallTarget,
metricsHandler metrics.MetricsHandler) (Result, error) {
metricsHandler metrics.Handler) (Result, error) {
startTime := time.Now().UTC()
defer func() {
metricsHandler.Timer(metrics.ServiceAuthorizationLatency.GetMetricName()).Record(time.Since(startTime))
Expand All @@ -172,7 +172,7 @@ func (a *interceptor) logAuthError(err error) {
type interceptor struct {
authorizer Authorizer
claimMapper ClaimMapper
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
logger log.Logger
audienceGetter JWTAudienceMapper
}
Expand All @@ -181,7 +181,7 @@ type interceptor struct {
func NewAuthorizationInterceptor(
claimMapper ClaimMapper,
authorizer Authorizer,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
logger log.Logger,
audienceGetter JWTAudienceMapper,
) grpc.UnaryServerInterceptor {
Expand All @@ -198,8 +198,8 @@ func NewAuthorizationInterceptor(
func (a *interceptor) getMetricsHandler(
operation string,
namespace string,
) metrics.MetricsHandler {
var handler metrics.MetricsHandler
) metrics.Handler {
var handler metrics.Handler
if namespace != "" {
handler = a.metricsHandler.WithTags(metrics.OperationTag(operation), metrics.NamespaceTag(namespace))
} else {
Expand Down
4 changes: 2 additions & 2 deletions common/authorization/interceptor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ type (
controller *gomock.Controller
mockFrontendHandler *workflowservicemock.MockWorkflowServiceServer
mockAuthorizer *MockAuthorizer
mockMetricsHandler *metrics.MockMetricsHandler
mockMetricsHandler *metrics.MockHandler
interceptor grpc.UnaryServerInterceptor
handler grpc.UnaryHandler
mockClaimMapper *MockClaimMapper
Expand All @@ -79,7 +79,7 @@ func (s *authorizerInterceptorSuite) SetupTest() {

s.mockFrontendHandler = workflowservicemock.NewMockWorkflowServiceServer(s.controller)
s.mockAuthorizer = NewMockAuthorizer(s.controller)
s.mockMetricsHandler = metrics.NewMockMetricsHandler(s.controller)
s.mockMetricsHandler = metrics.NewMockHandler(s.controller)
s.mockMetricsHandler.EXPECT().WithTags(metrics.OperationTag(metrics.AuthorizationScope)).Return(s.mockMetricsHandler)
s.mockMetricsHandler.EXPECT().Timer(metrics.ServiceAuthorizationLatency.GetMetricName()).Return(metrics.NoopTimerMetricFunc)
s.mockClaimMapper = NewMockClaimMapper(s.controller)
Expand Down
4 changes: 2 additions & 2 deletions common/deadlock/deadlock.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ type (
Logger log.SnTaggedLogger
Collection *dynamicconfig.Collection
HealthServer *health.Server
MetricsHandler metrics.MetricsHandler
MetricsHandler metrics.Handler

Roots []common.Pingable `group:"deadlockDetectorRoots"`
}
Expand All @@ -65,7 +65,7 @@ type (
deadlockDetector struct {
logger log.Logger
healthServer *health.Server
metricsHandler metrics.MetricsHandler
metricsHandler metrics.Handler
config config
roots []common.Pingable
loops goro.Group
Expand Down
2 changes: 1 addition & 1 deletion common/metrics/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ func newPrometheusScope(
}

// MetricsHandlerFromConfig is used at startup to construct a MetricsHandler
func MetricsHandlerFromConfig(logger log.Logger, c *Config) MetricsHandler {
func MetricsHandlerFromConfig(logger log.Logger, c *Config) Handler {
if c == nil {
return NoopMetricsHandler
}
Expand Down
46 changes: 23 additions & 23 deletions common/metrics/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,61 +36,61 @@ import (
// https://github.com/temporalio/sdk-go/blob/master/internal/common/metrics/handler.go
// and adapted to depend on golang.org/x/exp/event
type (
// MetricsHandler represents the main dependency for instrumentation
MetricsHandler interface {
// Handler is a wrapper around a metrics client
Handler interface {
// WithTags creates a new MetricProvder with provided []Tag
// Tags are merged with registered Tags from the source MetricsHandler
WithTags(...Tag) MetricsHandler
WithTags(...Tag) Handler

// Counter obtains a counter for the given name and MetricOptions.
Counter(string) CounterMetric
Counter(string) CounterIface

// Gauge obtains a gauge for the given name and MetricOptions.
Gauge(string) GaugeMetric
Gauge(string) GaugeIface

// Timer obtains a timer for the given name and MetricOptions.
Timer(string) TimerMetric
Timer(string) TimerIface

// Histogram obtains a histogram for the given name and MetricOptions.
Histogram(string, MetricUnit) HistogramMetric
Histogram(string, MetricUnit) HistogramIface

Stop(log.Logger)
}

// CounterMetric is an ever-increasing counter.
CounterMetric interface {
// CounterIface is an ever-increasing counter.
CounterIface interface {
// Record increments the counter value.
// Tags provided are merged with the source MetricsHandler
Record(int64, ...Tag)
}
// GaugeMetric can be set to any float and repesents a latest value instrument.
GaugeMetric interface {
// GaugeIface can be set to any float and repesents a latest value instrument.
GaugeIface interface {
// Record updates the gauge value.
// Tags provided are merged with the source MetricsHandler
Record(float64, ...Tag)
}

// TimerMetric records time durations.
TimerMetric interface {
// TimerIface records time durations.
TimerIface interface {
// Record sets the timer value.
// Tags provided are merged with the source MetricsHandler
Record(time.Duration, ...Tag)
}

// HistogramMetric records a distribution of values.
HistogramMetric interface {
// HistogramIface records a distribution of values.
HistogramIface interface {
// Record adds a value to the distribution
// Tags provided are merged with the source MetricsHandler
Record(int64, ...Tag)
}

CounterMetricFunc func(int64, ...Tag)
GaugeMetricFunc func(float64, ...Tag)
TimerMetricFunc func(time.Duration, ...Tag)
HistogramMetricFunc func(int64, ...Tag)
CounterFunc func(int64, ...Tag)
GaugeFunc func(float64, ...Tag)
TimerFunc func(time.Duration, ...Tag)
HistogramFunc func(int64, ...Tag)
)

func (c CounterMetricFunc) Record(v int64, tags ...Tag) { c(v, tags...) }
func (c GaugeMetricFunc) Record(v float64, tags ...Tag) { c(v, tags...) }
func (c TimerMetricFunc) Record(v time.Duration, tags ...Tag) { c(v, tags...) }
func (c HistogramMetricFunc) Record(v int64, tags ...Tag) { c(v, tags...) }
func (c CounterFunc) Record(v int64, tags ...Tag) { c(v, tags...) }
func (c GaugeFunc) Record(v float64, tags ...Tag) { c(v, tags...) }
func (c TimerFunc) Record(v time.Duration, tags ...Tag) { c(v, tags...) }
func (c HistogramFunc) Record(v int64, tags ...Tag) { c(v, tags...) }
Loading