diff --git a/pkg/observability/key.go b/pkg/observability/key.go index 793c29a7415..7b7a75de1c0 100644 --- a/pkg/observability/key.go +++ b/pkg/observability/key.go @@ -58,5 +58,7 @@ var ( CloudEventSpecVersion = attributekey.String(ceo11y.SpecversionAttr) // attributes relating to the request - RequestScheme = attributekey.String("url.scheme") + RequestScheme = attributekey.String("url.scheme") + ResponseStatusCode = attributekey.Int("response.statuscode") + ResponseStatusText = attributekey.String("response.statustext") ) diff --git a/pkg/observability/newcontext.go b/pkg/observability/newcontext.go index 97729fcc0e0..58148149200 100644 --- a/pkg/observability/newcontext.go +++ b/pkg/observability/newcontext.go @@ -71,6 +71,17 @@ func WithLowCardinalityMessagingLabels(ctx context.Context, destinationTemplate, return ctx } +func WithResponseLabels(ctx context.Context, statusCode int) context.Context { + labeler, ok := otelhttp.LabelerFromContext(ctx) + if !ok { + ctx = otelhttp.ContextWithLabeler(ctx, labeler) + } + + labeler.Add(ResponseStatusCode.With(statusCode)) + + return ctx +} + func WithRequestLabels(ctx context.Context, r *http.Request) context.Context { labeler, ok := otelhttp.LabelerFromContext(ctx) if !ok {