@@ -17,9 +17,6 @@ import (
17
17
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
18
18
_ "github.com/jaegertracing/jaeger/pkg/gogocodec" // force gogo codec registration
19
19
"github.com/jaegertracing/jaeger/pkg/jtracer"
20
- "github.com/jaegertracing/jaeger/plugin/metricstore/disabled"
21
- "github.com/jaegertracing/jaeger/proto-gen/api_v2/metrics"
22
- "github.com/jaegertracing/jaeger/storage/metricstore"
23
20
"github.com/jaegertracing/jaeger/storage/spanstore"
24
21
)
25
22
@@ -30,20 +27,16 @@ const (
30
27
)
31
28
32
29
var (
33
- errGRPCMetricsQueryDisabled = status .Error (codes .Unimplemented , "metrics querying is currently disabled" )
34
- errNilRequest = status .Error (codes .InvalidArgument , "a nil argument is not allowed" )
35
- errUninitializedTraceID = status .Error (codes .InvalidArgument , "uninitialized TraceID is not allowed" )
36
- errMissingServiceNames = status .Error (codes .InvalidArgument , "please provide at least one service name" )
37
- errMissingQuantile = status .Error (codes .InvalidArgument , "please provide a quantile between (0, 1]" )
30
+ errNilRequest = status .Error (codes .InvalidArgument , "a nil argument is not allowed" )
31
+ errUninitializedTraceID = status .Error (codes .InvalidArgument , "uninitialized TraceID is not allowed" )
38
32
)
39
33
40
34
// GRPCHandler implements the gRPC endpoint of the query service.
41
35
type GRPCHandler struct {
42
- queryService * querysvc.QueryService
43
- metricsQueryService querysvc.MetricsQueryService
44
- logger * zap.Logger
45
- tracer * jtracer.JTracer
46
- nowFn func () time.Time
36
+ queryService * querysvc.QueryService
37
+ logger * zap.Logger
38
+ tracer * jtracer.JTracer
39
+ nowFn func () time.Time
47
40
}
48
41
49
42
// GRPCHandlerOptions contains optional members of GRPCHandler.
@@ -55,7 +48,6 @@ type GRPCHandlerOptions struct {
55
48
56
49
// NewGRPCHandler returns a GRPCHandler.
57
50
func NewGRPCHandler (queryService * querysvc.QueryService ,
58
- metricsQueryService querysvc.MetricsQueryService ,
59
51
options GRPCHandlerOptions ,
60
52
) * GRPCHandler {
61
53
if options .Logger == nil {
@@ -71,11 +63,10 @@ func NewGRPCHandler(queryService *querysvc.QueryService,
71
63
}
72
64
73
65
return & GRPCHandler {
74
- queryService : queryService ,
75
- metricsQueryService : metricsQueryService ,
76
- logger : options .Logger ,
77
- tracer : options .Tracer ,
78
- nowFn : options .NowFn ,
66
+ queryService : queryService ,
67
+ logger : options .Logger ,
68
+ tracer : options .Tracer ,
69
+ nowFn : options .NowFn ,
79
70
}
80
71
}
81
72
@@ -248,135 +239,3 @@ func (g *GRPCHandler) GetDependencies(ctx context.Context, r *api_v2.GetDependen
248
239
249
240
return & api_v2.GetDependenciesResponse {Dependencies : dependencies }, nil
250
241
}
251
-
252
- // GetLatencies is the gRPC handler to fetch latency metrics.
253
- func (g * GRPCHandler ) GetLatencies (ctx context.Context , r * metrics.GetLatenciesRequest ) (* metrics.GetMetricsResponse , error ) {
254
- bqp , err := g .newBaseQueryParameters (r )
255
- if err := g .handleErr ("failed to build parameters" , err ); err != nil {
256
- return nil , err
257
- }
258
- // Check for cases where clients do not provide the Quantile, which defaults to the float64's zero value.
259
- if r .Quantile == 0 {
260
- return nil , errMissingQuantile
261
- }
262
- queryParams := metricstore.LatenciesQueryParameters {
263
- BaseQueryParameters : bqp ,
264
- Quantile : r .Quantile ,
265
- }
266
- m , err := g .metricsQueryService .GetLatencies (ctx , & queryParams )
267
- if err := g .handleErr ("failed to fetch latencies" , err ); err != nil {
268
- return nil , err
269
- }
270
- return & metrics.GetMetricsResponse {Metrics : * m }, nil
271
- }
272
-
273
- // GetCallRates is the gRPC handler to fetch call rate metrics.
274
- func (g * GRPCHandler ) GetCallRates (ctx context.Context , r * metrics.GetCallRatesRequest ) (* metrics.GetMetricsResponse , error ) {
275
- bqp , err := g .newBaseQueryParameters (r )
276
- if err := g .handleErr ("failed to build parameters" , err ); err != nil {
277
- return nil , err
278
- }
279
- queryParams := metricstore.CallRateQueryParameters {
280
- BaseQueryParameters : bqp ,
281
- }
282
- m , err := g .metricsQueryService .GetCallRates (ctx , & queryParams )
283
- if err := g .handleErr ("failed to fetch call rates" , err ); err != nil {
284
- return nil , err
285
- }
286
- return & metrics.GetMetricsResponse {Metrics : * m }, nil
287
- }
288
-
289
- // GetErrorRates is the gRPC handler to fetch error rate metrics.
290
- func (g * GRPCHandler ) GetErrorRates (ctx context.Context , r * metrics.GetErrorRatesRequest ) (* metrics.GetMetricsResponse , error ) {
291
- bqp , err := g .newBaseQueryParameters (r )
292
- if err := g .handleErr ("failed to build parameters" , err ); err != nil {
293
- return nil , err
294
- }
295
- queryParams := metricstore.ErrorRateQueryParameters {
296
- BaseQueryParameters : bqp ,
297
- }
298
- m , err := g .metricsQueryService .GetErrorRates (ctx , & queryParams )
299
- if err := g .handleErr ("failed to fetch error rates" , err ); err != nil {
300
- return nil , err
301
- }
302
- return & metrics.GetMetricsResponse {Metrics : * m }, nil
303
- }
304
-
305
- // GetMinStepDuration is the gRPC handler to fetch the minimum step duration supported by the underlying metrics store.
306
- func (g * GRPCHandler ) GetMinStepDuration (ctx context.Context , _ * metrics.GetMinStepDurationRequest ) (* metrics.GetMinStepDurationResponse , error ) {
307
- minStep , err := g .metricsQueryService .GetMinStepDuration (ctx , & metricstore.MinStepDurationQueryParameters {})
308
- if err := g .handleErr ("failed to fetch min step duration" , err ); err != nil {
309
- return nil , err
310
- }
311
- return & metrics.GetMinStepDurationResponse {MinStep : minStep }, nil
312
- }
313
-
314
- func (g * GRPCHandler ) handleErr (msg string , err error ) error {
315
- if err == nil {
316
- return nil
317
- }
318
- g .logger .Error (msg , zap .Error (err ))
319
-
320
- // Avoid wrapping "expected" errors with an "Internal Server" error.
321
- if errors .Is (err , disabled .ErrDisabled ) {
322
- return errGRPCMetricsQueryDisabled
323
- }
324
- if _ , ok := status .FromError (err ); ok {
325
- return err
326
- }
327
-
328
- // Received an "unexpected" error.
329
- return status .Errorf (codes .Internal , "%s: %v" , msg , err )
330
- }
331
-
332
- func (g * GRPCHandler ) newBaseQueryParameters (r any ) (bqp metricstore.BaseQueryParameters , err error ) {
333
- if r == nil {
334
- return bqp , errNilRequest
335
- }
336
- var baseRequest * metrics.MetricsQueryBaseRequest
337
- switch v := r .(type ) {
338
- case * metrics.GetLatenciesRequest :
339
- baseRequest = v .BaseRequest
340
- case * metrics.GetCallRatesRequest :
341
- baseRequest = v .BaseRequest
342
- case * metrics.GetErrorRatesRequest :
343
- baseRequest = v .BaseRequest
344
- }
345
- if baseRequest == nil || len (baseRequest .ServiceNames ) == 0 {
346
- return bqp , errMissingServiceNames
347
- }
348
-
349
- // Copy non-nullable params.
350
- bqp .GroupByOperation = baseRequest .GroupByOperation
351
- bqp .ServiceNames = baseRequest .ServiceNames
352
-
353
- // Initialize nullable params with defaults.
354
- defaultEndTime := g .nowFn ()
355
- bqp .EndTime = & defaultEndTime
356
- bqp .Lookback = & defaultMetricsQueryLookbackDuration
357
- bqp .RatePer = & defaultMetricsQueryRateDuration
358
- bqp .SpanKinds = defaultMetricsSpanKinds
359
- bqp .Step = & defaultMetricsQueryStepDuration
360
-
361
- // ... and override defaults with any provided request params.
362
- if baseRequest .EndTime != nil {
363
- bqp .EndTime = baseRequest .EndTime
364
- }
365
- if baseRequest .Lookback != nil {
366
- bqp .Lookback = baseRequest .Lookback
367
- }
368
- if baseRequest .Step != nil {
369
- bqp .Step = baseRequest .Step
370
- }
371
- if baseRequest .RatePer != nil {
372
- bqp .RatePer = baseRequest .RatePer
373
- }
374
- if len (baseRequest .SpanKinds ) > 0 {
375
- spanKinds := make ([]string , len (baseRequest .SpanKinds ))
376
- for i , v := range baseRequest .SpanKinds {
377
- spanKinds [i ] = v .String ()
378
- }
379
- bqp .SpanKinds = spanKinds
380
- }
381
- return bqp , nil
382
- }
0 commit comments