Skip to content

Release v3.1.2

Choose a tag to compare

@github-actions github-actions released this 14 Jul 08:43

v3.1.2

Performance improvements and async metrics fixes (recordMetricsSync handler,
single flush, deferred cache invalidation, cheaper query IDs).

See docs/CHANGELOG.md.

Changelog

Fixed

  • Async metricsRecordMetricsMessageHandler now calls recordMetricsSync() instead of recordMetrics(), fixing re-dispatch loops and ensuring metrics are persisted when async: true.
  • Async access recordsRecordMetricsMessage includes optional statusCode so HTTP status is stored on RouteDataRecord in async mode.

Changed

  • PerformancerecordMetricsSync() persists RouteData and RouteDataRecord in a single Doctrine flush() (was two).
  • Performance – Statistics cache invalidation bumps a generation counter instead of calling deleteItem() on every write (PerformanceCacheService).
  • Performance – Query IDs in QueryTrackingMiddleware use a lightweight counter instead of md5() + uniqid() per query.
  • Performance – Removed unused QueryLogger wiring and redundant middleware reset from PerformanceMetricsSubscriber (reset remains in QueryTrackingConnectionSubscriber).
  • PerformanceQueryTrackingConnectionSubscriber applies middleware once per request (removed usleep retry loop).
  • APIPerformanceMetricsService::recordMetricsSync() is now public (used by the async handler).

Notes

  • Breaking for positional RecordMetricsMessage construction – optional statusCode was inserted after httpMethod. Use named arguments or drain the Messenger queue before upgrading if async: true. See UPGRADING.md.

Commits

  • Release v3.1.2: document performance and async metrics fixes. (5eb865f)
  • Update dependencies and enhance performance tracking features (ee37498)