telemetry/resolvers: improve logging on RecordEvents errors (#62501)

This commit is contained in:
Robert Lin 2024-05-07 12:08:04 -07:00 committed by GitHub
parent de5e12a9dd
commit 9d762e658f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 2 deletions

View File

@ -18,6 +18,7 @@ go_library(
"//internal/gqlutil",
"//internal/telemetry/teestore",
"//internal/telemetrygateway/event",
"//internal/trace",
"//internal/version",
"//lib/errors",
"//lib/pointers",

View File

@ -11,6 +11,7 @@ import (
"github.com/sourcegraph/sourcegraph/internal/auth"
"github.com/sourcegraph/sourcegraph/internal/database"
"github.com/sourcegraph/sourcegraph/internal/telemetry/teestore"
"github.com/sourcegraph/sourcegraph/internal/trace"
"github.com/sourcegraph/sourcegraph/lib/errors"
telemetrygatewayv1 "github.com/sourcegraph/sourcegraph/lib/telemetrygateway/v1"
)
@ -74,12 +75,18 @@ func (r *Resolver) RecordEvents(ctx context.Context, args *graphqlbackend.Record
// This is an important failure, make sure we surface it, as it could be
// an implementation error.
data, _ := json.Marshal(args.Events)
r.logger.Error("failed to convert telemetry events to internal format",
trace.Logger(ctx, r.logger).Error("failed to convert telemetry events to internal format",
log.Error(err),
log.String("eventData", string(data)))
return nil, errors.Wrap(err, "invalid events provided")
}
if err := r.teestore.StoreEvents(ctx, gatewayEvents); err != nil {
// This is an important failure, make sure we surface it, as it could be
// an implementation error.
data, _ := json.Marshal(args.Events)
trace.Logger(ctx, r.logger).Error("error storing events",
log.Error(err),
log.String("eventData", string(data)))
return nil, errors.Wrap(err, "error storing events")
}
return &graphqlbackend.EmptyResponse{}, nil

View File

@ -27,7 +27,7 @@ func newTelemetryGatewayEvents(
for i, gqlEvent := range gqlEvents {
if err := telemetrygatewayv1.ValidateEventFeatureAction(gqlEvent.Feature, gqlEvent.Action); err != nil {
return nil, errors.Wrapf(err, "invalid feature/action for event %d: %s/%s",
i, gqlEvent.Feature, gqlEvent.Action)
i, errors.Safe(gqlEvent.Feature), errors.Safe(gqlEvent.Action))
}
event := telemetrygatewayevent.New(ctx, now, newUUID)