Instrumentation: Handle context.Canceled (#75867)

Ref #68480

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
This commit is contained in:
Marcus Efraimsson
2023-10-10 12:28:39 +02:00
committed by GitHub
parent aee8c91ac8
commit 90631360eb
8 changed files with 72 additions and 0 deletions

View File

@@ -59,6 +59,10 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest)
return nil, err
}
if errors.Is(err, context.Canceled) {
return nil, plugins.ErrPluginRequestCanceledErrorBase.Errorf("client: query data request canceled: %w", err)
}
return nil, plugins.ErrPluginDownstreamErrorBase.Errorf("client: failed to query data: %w", err)
}
@@ -111,6 +115,10 @@ func (s *Service) CallResource(ctx context.Context, req *backend.CallResourceReq
err := p.CallResource(ctx, req, wrappedSender)
if err != nil {
if errors.Is(err, context.Canceled) {
return plugins.ErrPluginRequestCanceledErrorBase.Errorf("client: call resource request canceled: %w", err)
}
return plugins.ErrPluginDownstreamErrorBase.Errorf("client: failed to call resources: %w", err)
}
@@ -129,6 +137,10 @@ func (s *Service) CollectMetrics(ctx context.Context, req *backend.CollectMetric
resp, err := p.CollectMetrics(ctx, req)
if err != nil {
if errors.Is(err, context.Canceled) {
return nil, plugins.ErrPluginRequestCanceledErrorBase.Errorf("client: collect metrics request canceled: %w", err)
}
return nil, plugins.ErrPluginDownstreamErrorBase.Errorf("client: failed to collect metrics: %w", err)
}
@@ -155,6 +167,10 @@ func (s *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthReque
return nil, err
}
if errors.Is(err, context.Canceled) {
return nil, plugins.ErrPluginRequestCanceledErrorBase.Errorf("client: check health request canceled: %w", err)
}
return nil, plugins.ErrPluginHealthCheck.Errorf("client: failed to check health: %w", err)
}

View File

@@ -41,6 +41,10 @@ func TestQueryData(t *testing.T) {
err: errors.New("surprise surprise"),
expectedError: plugins.ErrPluginDownstreamErrorBase,
},
{
err: context.Canceled,
expectedError: plugins.ErrPluginRequestCanceledErrorBase,
},
}
for _, tc := range tcs {
@@ -99,6 +103,10 @@ func TestCheckHealth(t *testing.T) {
err: errors.New("surprise surprise"),
expectedError: plugins.ErrPluginHealthCheck,
},
{
err: context.Canceled,
expectedError: plugins.ErrPluginRequestCanceledErrorBase,
},
}
for _, tc := range tcs {