diff --git a/aws/retry/attempt_metrics.go b/aws/retry/attempt_metrics.go new file mode 100644 index 00000000000..bfa5bf7d130 --- /dev/null +++ b/aws/retry/attempt_metrics.go @@ -0,0 +1,51 @@ +package retry + +import ( + "context" + + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" +) + +type attemptMetrics struct { + Attempts metrics.Int64Counter + Errors metrics.Int64Counter + + AttemptDuration metrics.Float64Histogram +} + +func newAttemptMetrics(meter metrics.Meter) (*attemptMetrics, error) { + m := &attemptMetrics{} + var err error + + m.Attempts, err = meter.Int64Counter("client.call.attempts", func(o *metrics.InstrumentOptions) { + o.UnitLabel = "{attempt}" + o.Description = "The number of attempts for an individual operation" + }) + if err != nil { + return nil, err + } + m.Errors, err = meter.Int64Counter("client.call.errors", func(o *metrics.InstrumentOptions) { + o.UnitLabel = "{error}" + o.Description = "The number of errors for an operation" + }) + if err != nil { + return nil, err + } + m.AttemptDuration, err = meter.Float64Histogram("client.call.attempt_duration", func(o *metrics.InstrumentOptions) { + o.UnitLabel = "s" + o.Description = "The time it takes to connect to the service, send the request, and get back HTTP status code and headers (including time queued waiting to be sent)" + }) + if err != nil { + return nil, err + } + + return m, nil +} + +func withOperationMetadata(ctx context.Context) metrics.RecordMetricOption { + return func(o *metrics.RecordMetricOptions) { + o.Properties.Set("rpc.service", middleware.GetServiceID(ctx)) + o.Properties.Set("rpc.method", middleware.GetOperationName(ctx)) + } +} diff --git a/aws/retry/middleware.go b/aws/retry/middleware.go index 5762abcefe6..624928c18c2 100644 --- a/aws/retry/middleware.go +++ b/aws/retry/middleware.go @@ -8,13 +8,15 @@ import ( "strings" "time" - "github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics" + privatemetrics "github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics" internalcontext "github.com/aws/aws-sdk-go-v2/internal/context" "github.com/aws/aws-sdk-go-v2/aws" awsmiddle "github.com/aws/aws-sdk-go-v2/aws/middleware" + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" "github.com/aws/aws-sdk-go-v2/internal/sdk" "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" smithymiddle "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/tracing" "github.com/aws/smithy-go/transport/http" @@ -39,6 +41,9 @@ type Attempt struct { // attempts are reached. LogAttempts bool + // A Meter instance for recording retry-related metrics. + OperationMeter metrics.Meter + retryer aws.RetryerV2 requestCloner RequestCloner } @@ -56,6 +61,10 @@ func NewAttemptMiddleware(retryer aws.Retryer, requestCloner RequestCloner, optF for _, fn := range optFns { fn(m) } + if m.OperationMeter == nil { + m.OperationMeter = metrics.NopMeterProvider{}.Meter("") + } + return m } @@ -81,6 +90,11 @@ func (r *Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeIn maxAttempts := r.retryer.MaxAttempts() releaseRetryToken := nopRelease + retryMetrics, err := newAttemptMetrics(r.OperationMeter) + if err != nil { + return out, metadata, err + } + for { attemptNum++ attemptInput := in @@ -102,7 +116,19 @@ func (r *Attempt) HandleFinalize(ctx context.Context, in smithymiddle.FinalizeIn attemptCtx, span := tracing.StartSpan(attemptCtx, "Attempt", func(o *tracing.SpanOptions) { o.Properties.Set("operation.attempt", attemptNum) }) + retryMetrics.Attempts.Add(ctx, 1, withOperationMetadata(ctx)) + + start := sdk.NowTime() out, attemptResult, releaseRetryToken, err = r.handleAttempt(attemptCtx, attemptInput, releaseRetryToken, next) + elapsed := sdk.NowTime().Sub(start) + + retryMetrics.AttemptDuration.Record(ctx, float64(elapsed)/1e9, withOperationMetadata(ctx)) + if err != nil { + retryMetrics.Errors.Add(ctx, 1, withOperationMetadata(ctx), func(o *metrics.RecordMetricOptions) { + o.Properties.Set("exception.type", errorType(err)) + }) + } + span.End() attemptClockSkew, _ = awsmiddle.GetAttemptSkew(attemptResult.ResponseMetadata) @@ -245,7 +271,7 @@ func (r *Attempt) handleAttempt( // that time. Potentially early exist if the sleep is canceled via the // context. retryDelay, reqErr := r.retryer.RetryDelay(attemptNum, err) - mctx := metrics.Context(ctx) + mctx := privatemetrics.Context(ctx) if mctx != nil { attempt, err := mctx.Data().LatestAttempt() if err != nil { @@ -388,3 +414,13 @@ func AddRetryMiddlewares(stack *smithymiddle.Stack, options AddRetryMiddlewaresO } return nil } + +// deduces the modeled exception type from an attempt error, which is almost +// always wrapped +func errorType(err error) string { + var terr *awshttp.ResponseError + if errors.As(err, &terr) { + return fmt.Sprintf("%T", terr.Err) + } + return fmt.Sprintf("%T", err) +} diff --git a/aws/retry/middleware_test.go b/aws/retry/middleware_test.go index ad9e4c6a5f7..b8463d5a8dd 100644 --- a/aws/retry/middleware_test.go +++ b/aws/retry/middleware_test.go @@ -205,13 +205,16 @@ func TestAttemptMiddleware(t *testing.T) { MaxAttempts: 3, }, { - AttemptNum: 2, - AttemptTime: time.Date(2020, 8, 19, 10, 21, 30, 0, time.UTC), + AttemptNum: 2, + // note that here and everywhere else, time goes up two + // additional minutes because of the metrics calling + // sdk.NowTime twice + AttemptTime: time.Date(2020, 8, 19, 10, 23, 30, 0, time.UTC), MaxAttempts: 3, }, { AttemptNum: 3, - AttemptTime: time.Date(2020, 8, 19, 10, 22, 30, 0, time.UTC), + AttemptTime: time.Date(2020, 8, 19, 10, 26, 30, 0, time.UTC), MaxAttempts: 3, }, }, @@ -369,7 +372,7 @@ func TestAttemptMiddleware(t *testing.T) { }, { AttemptNum: 2, - AttemptTime: time.Date(2020, 8, 19, 10, 21, 30, 0, time.UTC), + AttemptTime: time.Date(2020, 8, 19, 10, 23, 30, 0, time.UTC), MaxAttempts: 3, }, }, diff --git a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsRetryMiddlewareHelper.java b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsRetryMiddlewareHelper.java index dcc95ae6dae..f409532663e 100644 --- a/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsRetryMiddlewareHelper.java +++ b/codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsRetryMiddlewareHelper.java @@ -35,10 +35,11 @@ public void writeAdditionalFiles( SymbolProvider symbolProvider, GoDelegator delegator ) { - delegator.useShapeWriter(settings.getService(model), this::generateRetryMiddlewareHelpers); + delegator.useShapeWriter(settings.getService(model), writer -> + generateRetryMiddlewareHelpers(writer, settings.getModuleName())); } - private void generateRetryMiddlewareHelpers(GoWriter writer) { + private void generateRetryMiddlewareHelpers(GoWriter writer, String moduleName) { writer .addUseImports(SmithyGoDependency.SMITHY_MIDDLEWARE) .addUseImports(SmithyGoDependency.SMITHY_HTTP_TRANSPORT) @@ -47,6 +48,7 @@ private void generateRetryMiddlewareHelpers(GoWriter writer) { func addRetry(stack *middleware.Stack, o Options) error { attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) { m.LogAttempts = o.ClientLogMode.IsRetries() + m.OperationMeter = o.MeterProvider.Meter($S) }) if err := stack.Finalize.Insert(attempt, "Signing", middleware.Before); err != nil { return err @@ -55,6 +57,6 @@ func addRetry(stack *middleware.Stack, o Options) error { return err } return nil - }""")); + }""", moduleName)); } } diff --git a/service/s3/api_client.go b/service/s3/api_client.go index 486954e3ec8..28a3828a9ee 100644 --- a/service/s3/api_client.go +++ b/service/s3/api_client.go @@ -27,6 +27,7 @@ import ( smithyauth "github.com/aws/smithy-go/auth" smithydocument "github.com/aws/smithy-go/document" "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/tracing" smithyhttp "github.com/aws/smithy-go/transport/http" @@ -39,6 +40,129 @@ import ( const ServiceID = "S3" const ServiceAPIVersion = "2006-03-01" +type operationMetrics struct { + Duration metrics.Float64Histogram + SerializeDuration metrics.Float64Histogram + ResolveIdentityDuration metrics.Float64Histogram + ResolveEndpointDuration metrics.Float64Histogram + SignRequestDuration metrics.Float64Histogram + DeserializeDuration metrics.Float64Histogram +} + +func (m *operationMetrics) histogramFor(name string) metrics.Float64Histogram { + switch name { + case "client.call.duration": + return m.Duration + case "client.call.serialization_duration": + return m.SerializeDuration + case "client.call.resolve_identity_duration": + return m.ResolveIdentityDuration + case "client.call.resolve_endpoint_duration": + return m.ResolveEndpointDuration + case "client.call.signing_duration": + return m.SignRequestDuration + case "client.call.deserialization_duration": + return m.DeserializeDuration + default: + panic("unrecognized operation metric") + } +} + +func timeOperationMetric[T any]( + ctx context.Context, metric string, fn func() (T, error), + opts ...metrics.RecordMetricOption, +) (T, error) { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + start := time.Now() + v, err := fn() + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + return v, err +} + +func startMetricTimer(ctx context.Context, metric string, opts ...metrics.RecordMetricOption) func() { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + var ended bool + start := time.Now() + return func() { + if ended { + return + } + ended = true + + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + } +} + +func withOperationMetadata(ctx context.Context) metrics.RecordMetricOption { + return func(o *metrics.RecordMetricOptions) { + o.Properties.Set("rpc.service", middleware.GetServiceID(ctx)) + o.Properties.Set("rpc.method", middleware.GetOperationName(ctx)) + } +} + +type operationMetricsKey struct{} + +func withOperationMetrics(parent context.Context, mp metrics.MeterProvider) (context.Context, error) { + meter := mp.Meter("github.com/aws/aws-sdk-go-v2/service/s3") + om := &operationMetrics{} + + var err error + + om.Duration, err = operationMetricTimer(meter, "client.call.duration", + "Overall call duration (including retries and time to send or receive request and response body)") + if err != nil { + return nil, err + } + om.SerializeDuration, err = operationMetricTimer(meter, "client.call.serialization_duration", + "The time it takes to serialize a message body") + if err != nil { + return nil, err + } + om.ResolveIdentityDuration, err = operationMetricTimer(meter, "client.call.auth.resolve_identity_duration", + "The time taken to acquire an identity (AWS credentials, bearer token, etc) from an Identity Provider") + if err != nil { + return nil, err + } + om.ResolveEndpointDuration, err = operationMetricTimer(meter, "client.call.resolve_endpoint_duration", + "The time it takes to resolve an endpoint (endpoint resolver, not DNS) for the request") + if err != nil { + return nil, err + } + om.SignRequestDuration, err = operationMetricTimer(meter, "client.call.auth.signing_duration", + "The time it takes to sign a request") + if err != nil { + return nil, err + } + om.DeserializeDuration, err = operationMetricTimer(meter, "client.call.deserialization_duration", + "The time it takes to deserialize a message body") + if err != nil { + return nil, err + } + + return context.WithValue(parent, operationMetricsKey{}, om), nil +} + +func operationMetricTimer(m metrics.Meter, name, desc string) (metrics.Float64Histogram, error) { + return m.Float64Histogram(name, func(o *metrics.InstrumentOptions) { + o.UnitLabel = "s" + o.Description = desc + }) +} + +func getOperationMetrics(ctx context.Context) *operationMetrics { + return ctx.Value(operationMetricsKey{}).(*operationMetrics) +} + func operationTracer(p tracing.TracerProvider) tracing.Tracer { return p.Tracer("github.com/aws/aws-sdk-go-v2/service/s3") } @@ -74,6 +198,8 @@ func New(options Options, optFns ...func(*Options)) *Client { resolveTracerProvider(&options) + resolveMeterProvider(&options) + resolveAuthSchemeResolver(&options) for _, fn := range optFns { @@ -110,8 +236,15 @@ func (c *Client) Options() Options { return c.options.Copy() } -func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) { +func (c *Client) invokeOperation( + ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error, +) ( + result interface{}, metadata middleware.Metadata, err error, +) { ctx = middleware.ClearStackValues(ctx) + ctx = middleware.WithServiceID(ctx, ServiceID) + ctx = middleware.WithOperationName(ctx, opID) + stack := middleware.NewStack(opID, smithyhttp.NewStackRequest) options := c.options.Copy() @@ -141,8 +274,13 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf } } + ctx, err = withOperationMetrics(ctx, options.MeterProvider) + if err != nil { + return nil, metadata, err + } + tracer := operationTracer(options.TracerProvider) - spanName := fmt.Sprintf("S3.%s", opID) + spanName := fmt.Sprintf("%s.%s", ServiceID, opID) ctx = tracing.WithOperationTracer(ctx, tracer) @@ -150,8 +288,10 @@ func (c *Client) invokeOperation(ctx context.Context, opID string, params interf o.Kind = tracing.SpanKindClient o.Properties.Set("rpc.system", "aws-api") o.Properties.Set("rpc.method", opID) - o.Properties.Set("rpc.service", "S3") + o.Properties.Set("rpc.service", ServiceID) }) + endTimer := startMetricTimer(ctx, "client.call.duration") + defer endTimer() defer span.End() handler := smithyhttp.NewClientHandler(options.HTTPClient) @@ -574,6 +714,7 @@ func addIsPaginatorUserAgent(o *Options) { func addRetry(stack *middleware.Stack, o Options) error { attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) { m.LogAttempts = o.ClientLogMode.IsRetries() + m.OperationMeter = o.MeterProvider.Meter("github.com/aws/aws-sdk-go-v2/service/s3") }) if err := stack.Finalize.Insert(attempt, "Signing", middleware.Before); err != nil { return err @@ -708,6 +849,12 @@ func resolveTracerProvider(options *Options) { } } +func resolveMeterProvider(options *Options) { + if options.MeterProvider == nil { + options.MeterProvider = metrics.NopMeterProvider{} + } +} + func addMetadataRetrieverMiddleware(stack *middleware.Stack) error { return s3shared.AddMetadataRetrieverMiddleware(stack) } diff --git a/service/s3/auth.go b/service/s3/auth.go index a0085bfbe56..a49fcb7ce7d 100644 --- a/service/s3/auth.go +++ b/service/s3/auth.go @@ -8,6 +8,7 @@ import ( awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" smithy "github.com/aws/smithy-go" smithyauth "github.com/aws/smithy-go/auth" + "github.com/aws/smithy-go/metrics" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/tracing" smithyhttp "github.com/aws/smithy-go/transport/http" @@ -270,7 +271,13 @@ func (m *getIdentityMiddleware) HandleFinalize(ctx context.Context, in middlewar return out, metadata, fmt.Errorf("no identity resolver") } - identity, err := resolver.GetIdentity(innerCtx, rscheme.IdentityProperties) + identity, err := timeOperationMetric(ctx, "client.call.resolve_identity_duration", + func() (smithyauth.Identity, error) { + return resolver.GetIdentity(innerCtx, rscheme.IdentityProperties) + }, + func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) if err != nil { return out, metadata, fmt.Errorf("get identity: %w", err) } @@ -326,7 +333,12 @@ func (m *signRequestMiddleware) HandleFinalize(ctx context.Context, in middlewar return out, metadata, fmt.Errorf("no signer") } - if err := signer.SignRequest(ctx, req, identity, rscheme.SignerProperties); err != nil { + _, err = timeOperationMetric(ctx, "client.call.signing_duration", func() (any, error) { + return nil, signer.SignRequest(ctx, req, identity, rscheme.SignerProperties) + }, func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) + if err != nil { return out, metadata, fmt.Errorf("sign request: %w", err) } diff --git a/service/s3/deserializers.go b/service/s3/deserializers.go index 54cf45d44ba..bc6b9f46271 100644 --- a/service/s3/deserializers.go +++ b/service/s3/deserializers.go @@ -53,6 +53,8 @@ func (m *awsRestxml_deserializeOpAbortMultipartUpload) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -146,6 +148,8 @@ func (m *awsRestxml_deserializeOpCompleteMultipartUpload) HandleDeserialize(ctx } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -432,6 +436,8 @@ func (m *awsRestxml_deserializeOpCopyObject) HandleDeserialize(ctx context.Conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -643,6 +649,8 @@ func (m *awsRestxml_deserializeOpCreateBucket) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -739,6 +747,8 @@ func (m *awsRestxml_deserializeOpCreateMultipartUpload) HandleDeserialize(ctx co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -984,6 +994,8 @@ func (m *awsRestxml_deserializeOpCreateSession) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1165,6 +1177,8 @@ func (m *awsRestxml_deserializeOpDeleteBucket) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1243,6 +1257,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketAnalyticsConfiguration) HandleDeser } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1321,6 +1337,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketCors) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1399,6 +1417,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketEncryption) HandleDeserialize(ctx c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1477,6 +1497,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketIntelligentTieringConfiguration) Ha } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1555,6 +1577,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketInventoryConfiguration) HandleDeser } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1633,6 +1657,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketLifecycle) HandleDeserialize(ctx co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1711,6 +1737,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketMetricsConfiguration) HandleDeseria } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1789,6 +1817,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketOwnershipControls) HandleDeserializ } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1867,6 +1897,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketPolicy) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -1945,6 +1977,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketReplication) HandleDeserialize(ctx } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2023,6 +2057,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketTagging) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2101,6 +2137,8 @@ func (m *awsRestxml_deserializeOpDeleteBucketWebsite) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2179,6 +2217,8 @@ func (m *awsRestxml_deserializeOpDeleteObject) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2283,6 +2323,8 @@ func (m *awsRestxml_deserializeOpDeleteObjects) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2448,6 +2490,8 @@ func (m *awsRestxml_deserializeOpDeleteObjectTagging) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2538,6 +2582,8 @@ func (m *awsRestxml_deserializeOpDeletePublicAccessBlock) HandleDeserialize(ctx } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2616,6 +2662,8 @@ func (m *awsRestxml_deserializeOpGetBucketAccelerateConfiguration) HandleDeseria } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2782,6 +2830,8 @@ func (m *awsRestxml_deserializeOpGetBucketAcl) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -2930,6 +2980,8 @@ func (m *awsRestxml_deserializeOpGetBucketAnalyticsConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3072,6 +3124,8 @@ func (m *awsRestxml_deserializeOpGetBucketCors) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3214,6 +3268,8 @@ func (m *awsRestxml_deserializeOpGetBucketEncryption) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3356,6 +3412,8 @@ func (m *awsRestxml_deserializeOpGetBucketIntelligentTieringConfiguration) Handl } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3498,6 +3556,8 @@ func (m *awsRestxml_deserializeOpGetBucketInventoryConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3640,6 +3700,8 @@ func (m *awsRestxml_deserializeOpGetBucketLifecycleConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3782,6 +3844,8 @@ func (m *awsRestxml_deserializeOpGetBucketLocation) HandleDeserialize(ctx contex } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -3931,6 +3995,8 @@ func (m *awsRestxml_deserializeOpGetBucketLogging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4073,6 +4139,8 @@ func (m *awsRestxml_deserializeOpGetBucketMetricsConfiguration) HandleDeserializ } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4215,6 +4283,8 @@ func (m *awsRestxml_deserializeOpGetBucketNotificationConfiguration) HandleDeser } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4375,6 +4445,8 @@ func (m *awsRestxml_deserializeOpGetBucketOwnershipControls) HandleDeserialize(c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4517,6 +4589,8 @@ func (m *awsRestxml_deserializeOpGetBucketPolicy) HandleDeserialize(ctx context. } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4615,6 +4689,8 @@ func (m *awsRestxml_deserializeOpGetBucketPolicyStatus) HandleDeserialize(ctx co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4757,6 +4833,8 @@ func (m *awsRestxml_deserializeOpGetBucketReplication) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -4899,6 +4977,8 @@ func (m *awsRestxml_deserializeOpGetBucketRequestPayment) HandleDeserialize(ctx } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -5048,6 +5128,8 @@ func (m *awsRestxml_deserializeOpGetBucketTagging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -5190,6 +5272,8 @@ func (m *awsRestxml_deserializeOpGetBucketVersioning) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -5352,6 +5436,8 @@ func (m *awsRestxml_deserializeOpGetBucketWebsite) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -5512,6 +5598,8 @@ func (m *awsRestxml_deserializeOpGetObject) HandleDeserialize(ctx context.Contex } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -5836,6 +5924,8 @@ func (m *awsRestxml_deserializeOpGetObjectAcl) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6004,6 +6094,8 @@ func (m *awsRestxml_deserializeOpGetObjectAttributes) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6238,6 +6330,8 @@ func (m *awsRestxml_deserializeOpGetObjectLegalHold) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6380,6 +6474,8 @@ func (m *awsRestxml_deserializeOpGetObjectLockConfiguration) HandleDeserialize(c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6522,6 +6618,8 @@ func (m *awsRestxml_deserializeOpGetObjectRetention) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6664,6 +6762,8 @@ func (m *awsRestxml_deserializeOpGetObjectTagging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6823,6 +6923,8 @@ func (m *awsRestxml_deserializeOpGetObjectTorrent) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -6925,6 +7027,8 @@ func (m *awsRestxml_deserializeOpGetPublicAccessBlock) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -7067,6 +7171,8 @@ func (m *awsRestxml_deserializeOpHeadBucket) HandleDeserialize(ctx context.Conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -7179,6 +7285,8 @@ func (m *awsRestxml_deserializeOpHeadObject) HandleDeserialize(ctx context.Conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -7479,6 +7587,8 @@ func (m *awsRestxml_deserializeOpListBucketAnalyticsConfigurations) HandleDeseri } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -7663,6 +7773,8 @@ func (m *awsRestxml_deserializeOpListBucketIntelligentTieringConfigurations) Han } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -7847,6 +7959,8 @@ func (m *awsRestxml_deserializeOpListBucketInventoryConfigurations) HandleDeseri } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -8031,6 +8145,8 @@ func (m *awsRestxml_deserializeOpListBucketMetricsConfigurations) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -8215,6 +8331,8 @@ func (m *awsRestxml_deserializeOpListBuckets) HandleDeserialize(ctx context.Cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -8376,6 +8494,8 @@ func (m *awsRestxml_deserializeOpListDirectoryBuckets) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -8531,6 +8651,8 @@ func (m *awsRestxml_deserializeOpListMultipartUploads) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -8833,6 +8955,8 @@ func (m *awsRestxml_deserializeOpListObjects) HandleDeserialize(ctx context.Cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -9112,6 +9236,8 @@ func (m *awsRestxml_deserializeOpListObjectsV2) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -9421,6 +9547,8 @@ func (m *awsRestxml_deserializeOpListObjectVersions) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -9729,6 +9857,8 @@ func (m *awsRestxml_deserializeOpListParts) HandleDeserialize(ctx context.Contex } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10038,6 +10168,8 @@ func (m *awsRestxml_deserializeOpPutBucketAccelerateConfiguration) HandleDeseria } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10116,6 +10248,8 @@ func (m *awsRestxml_deserializeOpPutBucketAcl) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10194,6 +10328,8 @@ func (m *awsRestxml_deserializeOpPutBucketAnalyticsConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10272,6 +10408,8 @@ func (m *awsRestxml_deserializeOpPutBucketCors) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10350,6 +10488,8 @@ func (m *awsRestxml_deserializeOpPutBucketEncryption) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10428,6 +10568,8 @@ func (m *awsRestxml_deserializeOpPutBucketIntelligentTieringConfiguration) Handl } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10506,6 +10648,8 @@ func (m *awsRestxml_deserializeOpPutBucketInventoryConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10584,6 +10728,8 @@ func (m *awsRestxml_deserializeOpPutBucketLifecycleConfiguration) HandleDeserial } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10662,6 +10808,8 @@ func (m *awsRestxml_deserializeOpPutBucketLogging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10740,6 +10888,8 @@ func (m *awsRestxml_deserializeOpPutBucketMetricsConfiguration) HandleDeserializ } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10818,6 +10968,8 @@ func (m *awsRestxml_deserializeOpPutBucketNotificationConfiguration) HandleDeser } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10896,6 +11048,8 @@ func (m *awsRestxml_deserializeOpPutBucketOwnershipControls) HandleDeserialize(c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -10974,6 +11128,8 @@ func (m *awsRestxml_deserializeOpPutBucketPolicy) HandleDeserialize(ctx context. } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11052,6 +11208,8 @@ func (m *awsRestxml_deserializeOpPutBucketReplication) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11130,6 +11288,8 @@ func (m *awsRestxml_deserializeOpPutBucketRequestPayment) HandleDeserialize(ctx } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11208,6 +11368,8 @@ func (m *awsRestxml_deserializeOpPutBucketTagging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11286,6 +11448,8 @@ func (m *awsRestxml_deserializeOpPutBucketVersioning) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11364,6 +11528,8 @@ func (m *awsRestxml_deserializeOpPutBucketWebsite) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11442,6 +11608,8 @@ func (m *awsRestxml_deserializeOpPutObject) HandleDeserialize(ctx context.Contex } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11601,6 +11769,8 @@ func (m *awsRestxml_deserializeOpPutObjectAcl) HandleDeserialize(ctx context.Con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11694,6 +11864,8 @@ func (m *awsRestxml_deserializeOpPutObjectLegalHold) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11784,6 +11956,8 @@ func (m *awsRestxml_deserializeOpPutObjectLockConfiguration) HandleDeserialize(c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11874,6 +12048,8 @@ func (m *awsRestxml_deserializeOpPutObjectRetention) HandleDeserialize(ctx conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -11964,6 +12140,8 @@ func (m *awsRestxml_deserializeOpPutObjectTagging) HandleDeserialize(ctx context } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12054,6 +12232,8 @@ func (m *awsRestxml_deserializeOpPutPublicAccessBlock) HandleDeserialize(ctx con } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12132,6 +12312,8 @@ func (m *awsRestxml_deserializeOpRestoreObject) HandleDeserialize(ctx context.Co } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12230,6 +12412,8 @@ func (m *awsRestxml_deserializeOpSelectObjectContent) HandleDeserialize(ctx cont } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12302,6 +12486,8 @@ func (m *awsRestxml_deserializeOpUploadPart) HandleDeserialize(ctx context.Conte } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12446,6 +12632,8 @@ func (m *awsRestxml_deserializeOpUploadPartCopy) HandleDeserialize(ctx context.C } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { @@ -12639,6 +12827,8 @@ func (m *awsRestxml_deserializeOpWriteGetObjectResponse) HandleDeserialize(ctx c } _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() defer span.End() response, ok := out.RawResponse.(*smithyhttp.Response) if !ok { diff --git a/service/s3/endpoints.go b/service/s3/endpoints.go index 0294e320c86..bf314133e15 100644 --- a/service/s3/endpoints.go +++ b/service/s3/endpoints.go @@ -5818,7 +5818,10 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid } params := bindEndpointParams(ctx, getOperationInput(ctx), m.options) - endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params) + endpt, err := timeOperationMetric(ctx, "client.call.resolve_endpoint_duration", + func() (smithyendpoints.Endpoint, error) { + return m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params) + }) if err != nil { return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) } diff --git a/service/s3/go.mod b/service/s3/go.mod index b156a1dd452..d03405cac90 100644 --- a/service/s3/go.mod +++ b/service/s3/go.mod @@ -2,6 +2,8 @@ module github.com/aws/aws-sdk-go-v2/service/s3 go 1.21 +toolchain go1.22.6 + require ( github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 diff --git a/service/s3/go.sum b/service/s3/go.sum index 472f5906e46..e69de29bb2d 100644 --- a/service/s3/go.sum +++ b/service/s3/go.sum @@ -1,2 +0,0 @@ -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/s3/internal/configtesting/go.mod b/service/s3/internal/configtesting/go.mod index 847877b53df..8451b50e29f 100644 --- a/service/s3/internal/configtesting/go.mod +++ b/service/s3/internal/configtesting/go.mod @@ -22,6 +22,8 @@ require ( github.com/aws/smithy-go v1.20.4 // indirect ) +replace github.com/aws/smithy-go => /Users/lucix/git/aws-sdk-go-v2/../smithy-go + replace github.com/aws/aws-sdk-go-v2 => ../../../../ replace github.com/aws/aws-sdk-go-v2/config => ../../../../config/ @@ -47,5 +49,3 @@ replace github.com/aws/aws-sdk-go-v2/service/sso => ../../../../service/sso/ replace github.com/aws/aws-sdk-go-v2/service/ssooidc => ../../../../service/ssooidc/ replace github.com/aws/aws-sdk-go-v2/service/sts => ../../../../service/sts/ - -replace github.com/aws/smithy-go => /Users/lucix/git/aws-sdk-go-v2/../smithy-go diff --git a/service/s3/internal/configtesting/go.sum b/service/s3/internal/configtesting/go.sum index 472f5906e46..e69de29bb2d 100644 --- a/service/s3/internal/configtesting/go.sum +++ b/service/s3/internal/configtesting/go.sum @@ -1,2 +0,0 @@ -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/s3/options.go b/service/s3/options.go index 471410b49bb..8c67e4c6218 100644 --- a/service/s3/options.go +++ b/service/s3/options.go @@ -12,6 +12,7 @@ import ( s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations" smithyauth "github.com/aws/smithy-go/auth" "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/tracing" smithyhttp "github.com/aws/smithy-go/transport/http" @@ -85,6 +86,9 @@ type Options struct { // The logger writer interface to write logging messages to. Logger logging.Logger + // The client meter provider. + MeterProvider metrics.MeterProvider + // The region to send requests to. (Required) Region string diff --git a/service/s3/serializers.go b/service/s3/serializers.go index e3733e69d2f..7f7bdecb68e 100644 --- a/service/s3/serializers.go +++ b/service/s3/serializers.go @@ -30,6 +30,8 @@ func (m *awsRestxml_serializeOpAbortMultipartUpload) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -67,6 +69,7 @@ func (m *awsRestxml_serializeOpAbortMultipartUpload) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -112,6 +115,8 @@ func (m *awsRestxml_serializeOpCompleteMultipartUpload) HandleSerialize(ctx cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -173,6 +178,7 @@ func (m *awsRestxml_serializeOpCompleteMultipartUpload) HandleSerialize(ctx cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -258,6 +264,8 @@ func (m *awsRestxml_serializeOpCopyObject) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -295,6 +303,7 @@ func (m *awsRestxml_serializeOpCopyObject) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -525,6 +534,8 @@ func (m *awsRestxml_serializeOpCreateBucket) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -586,6 +597,7 @@ func (m *awsRestxml_serializeOpCreateBucket) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -648,6 +660,8 @@ func (m *awsRestxml_serializeOpCreateMultipartUpload) HandleSerialize(ctx contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -685,6 +699,7 @@ func (m *awsRestxml_serializeOpCreateMultipartUpload) HandleSerialize(ctx contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -860,6 +875,8 @@ func (m *awsRestxml_serializeOpCreateSession) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -897,6 +914,7 @@ func (m *awsRestxml_serializeOpCreateSession) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -944,6 +962,8 @@ func (m *awsRestxml_serializeOpDeleteBucket) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -981,6 +1001,7 @@ func (m *awsRestxml_serializeOpDeleteBucket) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1008,6 +1029,8 @@ func (m *awsRestxml_serializeOpDeleteBucketAnalyticsConfiguration) HandleSeriali out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1045,6 +1068,7 @@ func (m *awsRestxml_serializeOpDeleteBucketAnalyticsConfiguration) HandleSeriali } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1076,6 +1100,8 @@ func (m *awsRestxml_serializeOpDeleteBucketCors) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1113,6 +1139,7 @@ func (m *awsRestxml_serializeOpDeleteBucketCors) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1140,6 +1167,8 @@ func (m *awsRestxml_serializeOpDeleteBucketEncryption) HandleSerialize(ctx conte out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1177,6 +1206,7 @@ func (m *awsRestxml_serializeOpDeleteBucketEncryption) HandleSerialize(ctx conte } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1204,6 +1234,8 @@ func (m *awsRestxml_serializeOpDeleteBucketIntelligentTieringConfiguration) Hand out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1241,6 +1273,7 @@ func (m *awsRestxml_serializeOpDeleteBucketIntelligentTieringConfiguration) Hand } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1267,6 +1300,8 @@ func (m *awsRestxml_serializeOpDeleteBucketInventoryConfiguration) HandleSeriali out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1304,6 +1339,7 @@ func (m *awsRestxml_serializeOpDeleteBucketInventoryConfiguration) HandleSeriali } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1335,6 +1371,8 @@ func (m *awsRestxml_serializeOpDeleteBucketLifecycle) HandleSerialize(ctx contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1372,6 +1410,7 @@ func (m *awsRestxml_serializeOpDeleteBucketLifecycle) HandleSerialize(ctx contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1399,6 +1438,8 @@ func (m *awsRestxml_serializeOpDeleteBucketMetricsConfiguration) HandleSerialize out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1436,6 +1477,7 @@ func (m *awsRestxml_serializeOpDeleteBucketMetricsConfiguration) HandleSerialize } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1467,6 +1509,8 @@ func (m *awsRestxml_serializeOpDeleteBucketOwnershipControls) HandleSerialize(ct out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1504,6 +1548,7 @@ func (m *awsRestxml_serializeOpDeleteBucketOwnershipControls) HandleSerialize(ct } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1531,6 +1576,8 @@ func (m *awsRestxml_serializeOpDeleteBucketPolicy) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1568,6 +1615,7 @@ func (m *awsRestxml_serializeOpDeleteBucketPolicy) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1595,6 +1643,8 @@ func (m *awsRestxml_serializeOpDeleteBucketReplication) HandleSerialize(ctx cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1632,6 +1682,7 @@ func (m *awsRestxml_serializeOpDeleteBucketReplication) HandleSerialize(ctx cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1659,6 +1710,8 @@ func (m *awsRestxml_serializeOpDeleteBucketTagging) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1696,6 +1749,7 @@ func (m *awsRestxml_serializeOpDeleteBucketTagging) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1723,6 +1777,8 @@ func (m *awsRestxml_serializeOpDeleteBucketWebsite) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1760,6 +1816,7 @@ func (m *awsRestxml_serializeOpDeleteBucketWebsite) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1787,6 +1844,8 @@ func (m *awsRestxml_serializeOpDeleteObject) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1824,6 +1883,7 @@ func (m *awsRestxml_serializeOpDeleteObject) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1879,6 +1939,8 @@ func (m *awsRestxml_serializeOpDeleteObjects) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -1940,6 +2002,7 @@ func (m *awsRestxml_serializeOpDeleteObjects) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -1987,6 +2050,8 @@ func (m *awsRestxml_serializeOpDeleteObjectTagging) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2024,6 +2089,7 @@ func (m *awsRestxml_serializeOpDeleteObjectTagging) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2064,6 +2130,8 @@ func (m *awsRestxml_serializeOpDeletePublicAccessBlock) HandleSerialize(ctx cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2101,6 +2169,7 @@ func (m *awsRestxml_serializeOpDeletePublicAccessBlock) HandleSerialize(ctx cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2128,6 +2197,8 @@ func (m *awsRestxml_serializeOpGetBucketAccelerateConfiguration) HandleSerialize out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2165,6 +2236,7 @@ func (m *awsRestxml_serializeOpGetBucketAccelerateConfiguration) HandleSerialize } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2197,6 +2269,8 @@ func (m *awsRestxml_serializeOpGetBucketAcl) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2234,6 +2308,7 @@ func (m *awsRestxml_serializeOpGetBucketAcl) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2261,6 +2336,8 @@ func (m *awsRestxml_serializeOpGetBucketAnalyticsConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2298,6 +2375,7 @@ func (m *awsRestxml_serializeOpGetBucketAnalyticsConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2329,6 +2407,8 @@ func (m *awsRestxml_serializeOpGetBucketCors) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2366,6 +2446,7 @@ func (m *awsRestxml_serializeOpGetBucketCors) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2393,6 +2474,8 @@ func (m *awsRestxml_serializeOpGetBucketEncryption) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2430,6 +2513,7 @@ func (m *awsRestxml_serializeOpGetBucketEncryption) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2457,6 +2541,8 @@ func (m *awsRestxml_serializeOpGetBucketIntelligentTieringConfiguration) HandleS out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2494,6 +2580,7 @@ func (m *awsRestxml_serializeOpGetBucketIntelligentTieringConfiguration) HandleS } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2520,6 +2607,8 @@ func (m *awsRestxml_serializeOpGetBucketInventoryConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2557,6 +2646,7 @@ func (m *awsRestxml_serializeOpGetBucketInventoryConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2588,6 +2678,8 @@ func (m *awsRestxml_serializeOpGetBucketLifecycleConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2625,6 +2717,7 @@ func (m *awsRestxml_serializeOpGetBucketLifecycleConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2652,6 +2745,8 @@ func (m *awsRestxml_serializeOpGetBucketLocation) HandleSerialize(ctx context.Co out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2689,6 +2784,7 @@ func (m *awsRestxml_serializeOpGetBucketLocation) HandleSerialize(ctx context.Co } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2716,6 +2812,8 @@ func (m *awsRestxml_serializeOpGetBucketLogging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2753,6 +2851,7 @@ func (m *awsRestxml_serializeOpGetBucketLogging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2780,6 +2879,8 @@ func (m *awsRestxml_serializeOpGetBucketMetricsConfiguration) HandleSerialize(ct out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2817,6 +2918,7 @@ func (m *awsRestxml_serializeOpGetBucketMetricsConfiguration) HandleSerialize(ct } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2848,6 +2950,8 @@ func (m *awsRestxml_serializeOpGetBucketNotificationConfiguration) HandleSeriali out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2885,6 +2989,7 @@ func (m *awsRestxml_serializeOpGetBucketNotificationConfiguration) HandleSeriali } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2912,6 +3017,8 @@ func (m *awsRestxml_serializeOpGetBucketOwnershipControls) HandleSerialize(ctx c out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -2949,6 +3056,7 @@ func (m *awsRestxml_serializeOpGetBucketOwnershipControls) HandleSerialize(ctx c } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -2976,6 +3084,8 @@ func (m *awsRestxml_serializeOpGetBucketPolicy) HandleSerialize(ctx context.Cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3013,6 +3123,7 @@ func (m *awsRestxml_serializeOpGetBucketPolicy) HandleSerialize(ctx context.Cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3040,6 +3151,8 @@ func (m *awsRestxml_serializeOpGetBucketPolicyStatus) HandleSerialize(ctx contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3077,6 +3190,7 @@ func (m *awsRestxml_serializeOpGetBucketPolicyStatus) HandleSerialize(ctx contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3104,6 +3218,8 @@ func (m *awsRestxml_serializeOpGetBucketReplication) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3141,6 +3257,7 @@ func (m *awsRestxml_serializeOpGetBucketReplication) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3168,6 +3285,8 @@ func (m *awsRestxml_serializeOpGetBucketRequestPayment) HandleSerialize(ctx cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3205,6 +3324,7 @@ func (m *awsRestxml_serializeOpGetBucketRequestPayment) HandleSerialize(ctx cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3232,6 +3352,8 @@ func (m *awsRestxml_serializeOpGetBucketTagging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3269,6 +3391,7 @@ func (m *awsRestxml_serializeOpGetBucketTagging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3296,6 +3419,8 @@ func (m *awsRestxml_serializeOpGetBucketVersioning) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3333,6 +3458,7 @@ func (m *awsRestxml_serializeOpGetBucketVersioning) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3360,6 +3486,8 @@ func (m *awsRestxml_serializeOpGetBucketWebsite) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3397,6 +3525,7 @@ func (m *awsRestxml_serializeOpGetBucketWebsite) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3424,6 +3553,8 @@ func (m *awsRestxml_serializeOpGetObject) HandleSerialize(ctx context.Context, i out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3461,6 +3592,7 @@ func (m *awsRestxml_serializeOpGetObject) HandleSerialize(ctx context.Context, i } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3579,6 +3711,8 @@ func (m *awsRestxml_serializeOpGetObjectAcl) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3616,6 +3750,7 @@ func (m *awsRestxml_serializeOpGetObjectAcl) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3661,6 +3796,8 @@ func (m *awsRestxml_serializeOpGetObjectAttributes) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3698,6 +3835,7 @@ func (m *awsRestxml_serializeOpGetObjectAttributes) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3782,6 +3920,8 @@ func (m *awsRestxml_serializeOpGetObjectLegalHold) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3819,6 +3959,7 @@ func (m *awsRestxml_serializeOpGetObjectLegalHold) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3864,6 +4005,8 @@ func (m *awsRestxml_serializeOpGetObjectLockConfiguration) HandleSerialize(ctx c out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3901,6 +4044,7 @@ func (m *awsRestxml_serializeOpGetObjectLockConfiguration) HandleSerialize(ctx c } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -3928,6 +4072,8 @@ func (m *awsRestxml_serializeOpGetObjectRetention) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -3965,6 +4111,7 @@ func (m *awsRestxml_serializeOpGetObjectRetention) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4010,6 +4157,8 @@ func (m *awsRestxml_serializeOpGetObjectTagging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4047,6 +4196,7 @@ func (m *awsRestxml_serializeOpGetObjectTagging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4092,6 +4242,8 @@ func (m *awsRestxml_serializeOpGetObjectTorrent) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4129,6 +4281,7 @@ func (m *awsRestxml_serializeOpGetObjectTorrent) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4170,6 +4323,8 @@ func (m *awsRestxml_serializeOpGetPublicAccessBlock) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4207,6 +4362,7 @@ func (m *awsRestxml_serializeOpGetPublicAccessBlock) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4234,6 +4390,8 @@ func (m *awsRestxml_serializeOpHeadBucket) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4271,6 +4429,7 @@ func (m *awsRestxml_serializeOpHeadBucket) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4298,6 +4457,8 @@ func (m *awsRestxml_serializeOpHeadObject) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4335,6 +4496,7 @@ func (m *awsRestxml_serializeOpHeadObject) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4453,6 +4615,8 @@ func (m *awsRestxml_serializeOpListBucketAnalyticsConfigurations) HandleSerializ out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4490,6 +4654,7 @@ func (m *awsRestxml_serializeOpListBucketAnalyticsConfigurations) HandleSerializ } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4521,6 +4686,8 @@ func (m *awsRestxml_serializeOpListBucketIntelligentTieringConfigurations) Handl out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4558,6 +4725,7 @@ func (m *awsRestxml_serializeOpListBucketIntelligentTieringConfigurations) Handl } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4584,6 +4752,8 @@ func (m *awsRestxml_serializeOpListBucketInventoryConfigurations) HandleSerializ out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4621,6 +4791,7 @@ func (m *awsRestxml_serializeOpListBucketInventoryConfigurations) HandleSerializ } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4652,6 +4823,8 @@ func (m *awsRestxml_serializeOpListBucketMetricsConfigurations) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4689,6 +4862,7 @@ func (m *awsRestxml_serializeOpListBucketMetricsConfigurations) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4720,6 +4894,8 @@ func (m *awsRestxml_serializeOpListBuckets) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4757,6 +4933,7 @@ func (m *awsRestxml_serializeOpListBuckets) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4787,6 +4964,8 @@ func (m *awsRestxml_serializeOpListDirectoryBuckets) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4824,6 +5003,7 @@ func (m *awsRestxml_serializeOpListDirectoryBuckets) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4854,6 +5034,8 @@ func (m *awsRestxml_serializeOpListMultipartUploads) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4891,6 +5073,7 @@ func (m *awsRestxml_serializeOpListMultipartUploads) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -4947,6 +5130,8 @@ func (m *awsRestxml_serializeOpListObjects) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -4984,6 +5169,7 @@ func (m *awsRestxml_serializeOpListObjects) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5050,6 +5236,8 @@ func (m *awsRestxml_serializeOpListObjectsV2) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5087,6 +5275,7 @@ func (m *awsRestxml_serializeOpListObjectsV2) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5161,6 +5350,8 @@ func (m *awsRestxml_serializeOpListObjectVersions) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5198,6 +5389,7 @@ func (m *awsRestxml_serializeOpListObjectVersions) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5268,6 +5460,8 @@ func (m *awsRestxml_serializeOpListParts) HandleSerialize(ctx context.Context, i out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5305,6 +5499,7 @@ func (m *awsRestxml_serializeOpListParts) HandleSerialize(ctx context.Context, i } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5373,6 +5568,8 @@ func (m *awsRestxml_serializeOpPutBucketAccelerateConfiguration) HandleSerialize out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5434,6 +5631,7 @@ func (m *awsRestxml_serializeOpPutBucketAccelerateConfiguration) HandleSerialize } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5466,6 +5664,8 @@ func (m *awsRestxml_serializeOpPutBucketAcl) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5527,6 +5727,7 @@ func (m *awsRestxml_serializeOpPutBucketAcl) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5594,6 +5795,8 @@ func (m *awsRestxml_serializeOpPutBucketAnalyticsConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5655,6 +5858,7 @@ func (m *awsRestxml_serializeOpPutBucketAnalyticsConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5686,6 +5890,8 @@ func (m *awsRestxml_serializeOpPutBucketCors) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5747,6 +5953,7 @@ func (m *awsRestxml_serializeOpPutBucketCors) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5784,6 +5991,8 @@ func (m *awsRestxml_serializeOpPutBucketEncryption) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5845,6 +6054,7 @@ func (m *awsRestxml_serializeOpPutBucketEncryption) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5882,6 +6092,8 @@ func (m *awsRestxml_serializeOpPutBucketIntelligentTieringConfiguration) HandleS out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -5943,6 +6155,7 @@ func (m *awsRestxml_serializeOpPutBucketIntelligentTieringConfiguration) HandleS } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -5969,6 +6182,8 @@ func (m *awsRestxml_serializeOpPutBucketInventoryConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6030,6 +6245,7 @@ func (m *awsRestxml_serializeOpPutBucketInventoryConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6061,6 +6277,8 @@ func (m *awsRestxml_serializeOpPutBucketLifecycleConfiguration) HandleSerialize( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6122,6 +6340,7 @@ func (m *awsRestxml_serializeOpPutBucketLifecycleConfiguration) HandleSerialize( } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6154,6 +6373,8 @@ func (m *awsRestxml_serializeOpPutBucketLogging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6215,6 +6436,7 @@ func (m *awsRestxml_serializeOpPutBucketLogging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6252,6 +6474,8 @@ func (m *awsRestxml_serializeOpPutBucketMetricsConfiguration) HandleSerialize(ct out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6313,6 +6537,7 @@ func (m *awsRestxml_serializeOpPutBucketMetricsConfiguration) HandleSerialize(ct } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6344,6 +6569,8 @@ func (m *awsRestxml_serializeOpPutBucketNotificationConfiguration) HandleSeriali out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6405,6 +6632,7 @@ func (m *awsRestxml_serializeOpPutBucketNotificationConfiguration) HandleSeriali } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6437,6 +6665,8 @@ func (m *awsRestxml_serializeOpPutBucketOwnershipControls) HandleSerialize(ctx c out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6498,6 +6728,7 @@ func (m *awsRestxml_serializeOpPutBucketOwnershipControls) HandleSerialize(ctx c } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6530,6 +6761,8 @@ func (m *awsRestxml_serializeOpPutBucketPolicy) HandleSerialize(ctx context.Cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6579,6 +6812,7 @@ func (m *awsRestxml_serializeOpPutBucketPolicy) HandleSerialize(ctx context.Cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6621,6 +6855,8 @@ func (m *awsRestxml_serializeOpPutBucketReplication) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6682,6 +6918,7 @@ func (m *awsRestxml_serializeOpPutBucketReplication) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6724,6 +6961,8 @@ func (m *awsRestxml_serializeOpPutBucketRequestPayment) HandleSerialize(ctx cont out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6785,6 +7024,7 @@ func (m *awsRestxml_serializeOpPutBucketRequestPayment) HandleSerialize(ctx cont } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6822,6 +7062,8 @@ func (m *awsRestxml_serializeOpPutBucketTagging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6883,6 +7125,7 @@ func (m *awsRestxml_serializeOpPutBucketTagging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -6920,6 +7163,8 @@ func (m *awsRestxml_serializeOpPutBucketVersioning) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -6981,6 +7226,7 @@ func (m *awsRestxml_serializeOpPutBucketVersioning) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7023,6 +7269,8 @@ func (m *awsRestxml_serializeOpPutBucketWebsite) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7084,6 +7332,7 @@ func (m *awsRestxml_serializeOpPutBucketWebsite) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7121,6 +7370,8 @@ func (m *awsRestxml_serializeOpPutObject) HandleSerialize(ctx context.Context, i out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7170,6 +7421,7 @@ func (m *awsRestxml_serializeOpPutObject) HandleSerialize(ctx context.Context, i } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7380,6 +7632,8 @@ func (m *awsRestxml_serializeOpPutObjectAcl) HandleSerialize(ctx context.Context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7441,6 +7695,7 @@ func (m *awsRestxml_serializeOpPutObjectAcl) HandleSerialize(ctx context.Context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7526,6 +7781,8 @@ func (m *awsRestxml_serializeOpPutObjectLegalHold) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7587,6 +7844,7 @@ func (m *awsRestxml_serializeOpPutObjectLegalHold) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7642,6 +7900,8 @@ func (m *awsRestxml_serializeOpPutObjectLockConfiguration) HandleSerialize(ctx c out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7703,6 +7963,7 @@ func (m *awsRestxml_serializeOpPutObjectLockConfiguration) HandleSerialize(ctx c } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7750,6 +8011,8 @@ func (m *awsRestxml_serializeOpPutObjectRetention) HandleSerialize(ctx context.C out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7811,6 +8074,7 @@ func (m *awsRestxml_serializeOpPutObjectRetention) HandleSerialize(ctx context.C } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7871,6 +8135,8 @@ func (m *awsRestxml_serializeOpPutObjectTagging) HandleSerialize(ctx context.Con out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -7932,6 +8198,7 @@ func (m *awsRestxml_serializeOpPutObjectTagging) HandleSerialize(ctx context.Con } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -7987,6 +8254,8 @@ func (m *awsRestxml_serializeOpPutPublicAccessBlock) HandleSerialize(ctx context out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8048,6 +8317,7 @@ func (m *awsRestxml_serializeOpPutPublicAccessBlock) HandleSerialize(ctx context } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -8085,6 +8355,8 @@ func (m *awsRestxml_serializeOpRestoreObject) HandleSerialize(ctx context.Contex out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8146,6 +8418,7 @@ func (m *awsRestxml_serializeOpRestoreObject) HandleSerialize(ctx context.Contex } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -8196,6 +8469,8 @@ func (m *awsRestxml_serializeOpSelectObjectContent) HandleSerialize(ctx context. out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8251,6 +8526,7 @@ func (m *awsRestxml_serializeOpSelectObjectContent) HandleSerialize(ctx context. } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -8381,6 +8657,8 @@ func (m *awsRestxml_serializeOpUploadPart) HandleSerialize(ctx context.Context, out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8430,6 +8708,7 @@ func (m *awsRestxml_serializeOpUploadPart) HandleSerialize(ctx context.Context, } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -8529,6 +8808,8 @@ func (m *awsRestxml_serializeOpUploadPartCopy) HandleSerialize(ctx context.Conte out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8566,6 +8847,7 @@ func (m *awsRestxml_serializeOpUploadPartCopy) HandleSerialize(ctx context.Conte } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) } @@ -8680,6 +8962,8 @@ func (m *awsRestxml_serializeOpWriteGetObjectResponse) HandleSerialize(ctx conte out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() defer span.End() request, ok := in.Request.(*smithyhttp.Request) if !ok { @@ -8729,6 +9013,7 @@ func (m *awsRestxml_serializeOpWriteGetObjectResponse) HandleSerialize(ctx conte } in.Request = request + endTimer() span.End() return next.HandleSerialize(ctx, in) }