Skip to content

Tags: vtex/node-vtex-api

Tags

v7.3.1

Toggle v7.3.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: merge request context attributes with custom metrics (#646)

* feat: add OpenTelemetry context-based base attributes to DiagnosticsMetrics

Implement runWithBaseAttributes() method that uses OpenTelemetry Context API to automatically merge request-scoped base attributes with custom attributes in all metric calls (recordLatency, incrementCounter, setGauge).

Key features:
- Base attributes are set once per request scope and automatically merged
- Custom attributes limited to 5 (MAX_CUSTOM_ATTRIBUTES)
- Base attributes take precedence on key conflicts
- Conflicting custom attributes silently dropped (transparent to apps)
- Base attributes are not limited in count

This enables VTEX IO apps to record custom metrics without manually passing request context (account, route_id, status_code, etc.).

* feat: use base attributes in timings middleware

Update timings middleware to set base attributes (account, component, route_id, route_type) using runWithBaseAttributes() before calling next().

This ensures all metrics recorded during request handling (including by VTEX IO apps) automatically include request context without manual attribute passing.

Response-specific attributes (status_code, status) are provided as custom attributes after request completion.

* test: add comprehensive tests for base attributes merging

Add test coverage for:
- Base attributes merging with custom attributes
- Base attribute precedence on key conflicts
- Custom attribute limiting (5 max)
- Silent dropping of conflicting custom attributes
- Async context propagation
- Concurrent request isolation
- Nested context handling

Includes setup of AsyncHooksContextManager for OpenTelemetry context propagation in tests.

* test: update timings middleware tests for base attributes

Update test mocks to include runWithBaseAttributes() method and adjust expectations to reflect that only response-specific attributes (status_code, status) are passed directly, while base attributes (account, route_id, etc.) are set via context.

* chore: bump version to 7.3.1-beta.0

* fix: increase maximum custom attributes limit from 5 to 7 in DiagnosticsMetrics

* test: update DiagnosticsMetrics tests to reflect increased custom attributes limit from 5 to 7

* fix: add warning for unavailable DiagnosticsMetrics in timings middleware

* chore: update dependencies in yarn.lock

- Added @hapi/bourne version 3.0.0 as a dependency for co-body.
- Updated co-body from version 6.0.0 to 6.2.0.

* chore: release version 7.3.1

- Added OpenTelemetry context-based base attributes to DiagnosticsMetrics.
- Fixed merging of request context attributes with custom metrics to automatically include request-scoped base attributes.

v7.3.1-beta.0

Toggle v7.3.1-beta.0's commit message
Adjust metrics contextual attributes

v7.3.0

Toggle v7.3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #644 from vtex/chore/update-release

Release 7.3.0

v7.3.0-beta.10

Toggle v7.3.0-beta.10's commit message
Release beta version for testing

7.3.0-delta.1

Toggle 7.3.0-delta.1's commit message
Release 7.3.0-delta.1

v7.3.0-delta.3

Toggle v7.3.0-delta.3's commit message
Release v7.3.0-delta.3

v7.3.0-delta.1

Toggle v7.3.0-delta.1's commit message
Release 7.3.0-delta.1

v7.3.0-beta.5

Toggle v7.3.0-beta.5's commit message
Release 7.3.0-beta.5

v7.3.0-beta.4

Toggle v7.3.0-beta.4's commit message
Bump beta version

v7.3.0-beta.3

Toggle v7.3.0-beta.3's commit message
Release v7.3.0-delta.3