Skip to content

v0.3.2

Choose a tag to compare

@railspulse-old railspulse-old released this 12 May 10:24

Release v0.3.2

New Features

  • Deployment tracking — Record deployments via POST /rails_pulse/deployments (with token auth) or rake rails_pulse:record_deployment[sha]. Deployments appear as vertical marker lines on performance charts so you can correlate releases with regressions
  • deployment_api_token config option — Secure the deployments endpoint for CI/CD pipelines (set in config/initializers/rails_pulse.rb)

Improvements

  • Native ECharts time axis — All multi-series charts now use [timestamp_ms, value] pairs instead of separate labels arrays, enabling deployment markers and smoother zoom/pan behaviour
  • Timezone-aware x-axis labels — Charts with ≤25 hour ranges show HH:MM format; longer ranges show full dates
  • actual_sql migration — Operations now store the full, unparameterized SQL string in a dedicated actual_sql column (backfilled from label for existing records), improving query normalization and N+1 detection accuracy
  • N+1 detection via query_id — N+1 detection now matches on query_id (normalized SQL) instead of fragile LIKE patterns on the first 3 words of the label
  • SQL analysis fallback chain — Analysis services now prefer actual_sql, then fall back to query.normalized_sql, then label
  • Label truncation — Operation labels are now truncated to 255 characters to prevent MySQL index-size errors
  • Error count accuracy — Summary service now counts 5xx statuses as errors (was 4xx), aligning with standard practice; 4xx client errors are now correctly tracked separately
  • Authentication config clarity — The authentication_enabled warning only fires when the user explicitly sets it to true without configuring a method, not when the production default kicks in

Bug Fixes

  • Missing migration fix — Fixed a deploy-time error where the install generator would fail on fresh setups (PR #144)

Breaking Changes

  • Summary service error counting — The error_count field now counts only 5xx responses (was ≥400). 4xx responses continue to be tracked in status_4xx. If your dashboards or alerts rely on error_count, verify the threshold doesn't need updating
  • Queries::Charts::AverageQueryTimes removed — Superseded by Queries::Charts::DatabaseLoad

Upgrade Notes

  • Run rails generate rails_pulse:upgrade after updating to apply migrations (adds rails_pulse_deployments table and actual_sql column to rails_pulse_operations)