e11y 0.2.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +130 -10
  3. data/CHANGELOG.md +80 -1
  4. data/CLAUDE.md +168 -0
  5. data/CONTRIBUTING.md +640 -0
  6. data/README.md +165 -701
  7. data/RELEASE.md +41 -12
  8. data/Rakefile +249 -57
  9. data/config/README.md +1 -1
  10. data/config/loki-local-config.yaml +12 -0
  11. data/config/otel-collector-config.yaml +44 -0
  12. data/cucumber.yml +1 -0
  13. data/docker-compose.yml +18 -2
  14. data/docs/ADAPTERS.md +76 -0
  15. data/docs/ADAPTIVE_SAMPLING.md +59 -0
  16. data/docs/COMPARISON.md +104 -0
  17. data/docs/CONFIGURATION.md +52 -0
  18. data/docs/DISTRIBUTED_TRACING.md +44 -0
  19. data/docs/LIMITATIONS.md +13 -0
  20. data/docs/METRICS_DSL.md +84 -0
  21. data/docs/PERFORMANCE.md +60 -0
  22. data/docs/PII_FILTERING.md +40 -0
  23. data/docs/PRESETS.md +65 -0
  24. data/docs/QUICK-START.md +546 -587
  25. data/docs/RAILS_INTEGRATION.md +79 -0
  26. data/docs/SCHEMA_VALIDATION.md +63 -0
  27. data/docs/SLO-PROMQL-ALERTS.md +161 -0
  28. data/docs/TESTING.md +69 -0
  29. data/docs/{ADR-001-architecture.md → architecture/ADR-001-architecture.md} +36 -65
  30. data/docs/{ADR-002-metrics-yabeda.md → architecture/ADR-002-metrics-yabeda.md} +62 -236
  31. data/docs/architecture/ADR-003-slo-observability.md +1402 -0
  32. data/docs/{ADR-004-adapter-architecture.md → architecture/ADR-004-adapter-architecture.md} +163 -146
  33. data/docs/{ADR-005-tracing-context.md → architecture/ADR-005-tracing-context.md} +10 -9
  34. data/docs/{ADR-006-security-compliance.md → architecture/ADR-006-security-compliance.md} +184 -191
  35. data/docs/{ADR-007-opentelemetry-integration.md → architecture/ADR-007-opentelemetry-integration.md} +3 -21
  36. data/docs/{ADR-008-rails-integration.md → architecture/ADR-008-rails-integration.md} +182 -743
  37. data/docs/{ADR-009-cost-optimization.md → architecture/ADR-009-cost-optimization.md} +45 -54
  38. data/docs/architecture/ADR-010-developer-experience.md +522 -0
  39. data/docs/{ADR-011-testing-strategy.md → architecture/ADR-011-testing-strategy.md} +44 -86
  40. data/docs/{ADR-012-event-evolution.md → architecture/ADR-012-event-evolution.md} +11 -11
  41. data/docs/{ADR-013-reliability-error-handling.md → architecture/ADR-013-reliability-error-handling.md} +37 -12
  42. data/docs/{ADR-014-event-driven-slo.md → architecture/ADR-014-event-driven-slo.md} +12 -24
  43. data/docs/{ADR-015-middleware-order.md → architecture/ADR-015-middleware-order.md} +43 -59
  44. data/docs/{ADR-016-self-monitoring-slo.md → architecture/ADR-016-self-monitoring-slo.md} +58 -355
  45. data/docs/{ADR-017-multi-rails-compatibility.md → architecture/ADR-017-multi-rails-compatibility.md} +4 -11
  46. data/docs/architecture/ADR-018-memory-optimization.md +366 -0
  47. data/docs/{ADR-INDEX.md → architecture/ADR-INDEX.md} +11 -6
  48. data/docs/plans/2026-03-20-browser-overlay-svelte.md +281 -0
  49. data/docs/{00-ICP-AND-TIMELINE.md → prd/00-ICP-AND-TIMELINE.md} +6 -6
  50. data/docs/{01-SCALE-REQUIREMENTS.md → prd/01-SCALE-REQUIREMENTS.md} +6 -6
  51. data/docs/prd/01-overview-vision.md +19 -14
  52. data/docs/use_cases/README.md +22 -23
  53. data/docs/use_cases/UC-001-request-scoped-debug-buffering.md +50 -44
  54. data/docs/use_cases/UC-002-business-event-tracking.md +26 -95
  55. data/docs/use_cases/UC-003-event-metrics.md +66 -0
  56. data/docs/use_cases/UC-004-zero-config-slo-tracking.md +33 -684
  57. data/docs/use_cases/UC-005-sentry-integration.md +13 -15
  58. data/docs/use_cases/UC-006-trace-context-management.md +30 -28
  59. data/docs/use_cases/UC-007-pii-filtering.md +35 -87
  60. data/docs/use_cases/UC-008-opentelemetry-integration.md +51 -89
  61. data/docs/use_cases/UC-009-multi-service-tracing.md +30 -178
  62. data/docs/use_cases/UC-010-background-job-tracking.md +24 -91
  63. data/docs/use_cases/UC-011-rate-limiting.md +95 -168
  64. data/docs/use_cases/UC-012-audit-trail.md +21 -46
  65. data/docs/use_cases/UC-013-high-cardinality-protection.md +29 -167
  66. data/docs/use_cases/UC-014-adaptive-sampling.md +2 -2
  67. data/docs/use_cases/UC-015-cost-optimization.md +46 -99
  68. data/docs/use_cases/UC-016-rails-logger-migration.md +39 -213
  69. data/docs/use_cases/UC-017-local-development.md +203 -777
  70. data/docs/use_cases/UC-018-testing-events.md +3 -3
  71. data/docs/use_cases/UC-019-retention-based-routing.md +53 -106
  72. data/docs/use_cases/UC-020-event-versioning.md +8 -9
  73. data/docs/use_cases/UC-021-error-handling-retry-dlq.md +18 -22
  74. data/docs/use_cases/UC-022-event-registry.md +15 -21
  75. data/docs/use_cases/backlog.md +119 -87
  76. data/e11y.gemspec +2 -2
  77. data/gems/e11y-devtools/README.md +158 -0
  78. data/gems/e11y-devtools/config/routes.rb +15 -0
  79. data/gems/e11y-devtools/e11y-devtools.gemspec +25 -0
  80. data/gems/e11y-devtools/exe/e11y +34 -0
  81. data/gems/e11y-devtools/frontend/.gitignore +24 -0
  82. data/gems/e11y-devtools/frontend/README.md +51 -0
  83. data/gems/e11y-devtools/frontend/index.html +14 -0
  84. data/gems/e11y-devtools/frontend/package-lock.json +3707 -0
  85. data/gems/e11y-devtools/frontend/package.json +28 -0
  86. data/gems/e11y-devtools/frontend/public/mocks/v1/events/recent.json +4205 -0
  87. data/gems/e11y-devtools/frontend/public/mocks/v1/interactions.json +194 -0
  88. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/0a2e04027cfa22d014bc22e8b27cd913/events.json +86 -0
  89. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/0e1543af6a630fb3af6b52283154b3e0/events.json +169 -0
  90. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/1838b691faa49564f97db8592ff3978d/events.json +78 -0
  91. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/29f198f6588dacffb687777eb5f8f118/events.json +197 -0
  92. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/34bc3c9c0097de28a7a6f99b90a8e7bc/events.json +194 -0
  93. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/3ba6c20d068ab9cee00e51b180e66444/events.json +184 -0
  94. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/435bfd8f17b9009146a79812d7c3726d/events.json +144 -0
  95. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/4c7676e3fe668e99edb2b94d7d5678a9/events.json +222 -0
  96. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/6daf0d47974bedfc55d5de7004a3ea9f/events.json +194 -0
  97. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/8a81ada42834d15f287bb40010043605/events.json +194 -0
  98. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/8c0a98900edaae105469df8daedccf02/events.json +198 -0
  99. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/8e4f645180f8a7d1dce426b07380466b/events.json +222 -0
  100. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/93db346fa5d44a032605a13b627f4b80/events.json +128 -0
  101. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/98ff6146faf7bd9be8bd03a8275817ba/events.json +223 -0
  102. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/9997ddd0247bc7e25f2ca7a5c415c93d/events.json +197 -0
  103. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/99e35f8ef3baedd798cc4fd085980ad9/events.json +194 -0
  104. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/b4f3095c1909924cbc98889a86c83d6d/events.json +131 -0
  105. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/b54b7fc32b7575a7110de809d11ccda0/events.json +128 -0
  106. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/c0b48033fa06746bcc5886745e053cff/events.json +169 -0
  107. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/c44649ac76701b4558927cd2305ab535/events.json +169 -0
  108. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/d601ae3320057580a39dbdac2edfdf4a/events.json +248 -0
  109. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/e67e724bab422d2b52eeb49635e512e1/events.json +194 -0
  110. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/e6c72765a28f158a8485b35fa63f73da/events.json +194 -0
  111. data/gems/e11y-devtools/frontend/public/mocks/v1/traces/f541b87405c9a54819b18ebe529f6419/events.json +194 -0
  112. data/gems/e11y-devtools/frontend/scripts/generate_mocks.rb +397 -0
  113. data/gems/e11y-devtools/frontend/src/App.svelte +827 -0
  114. data/gems/e11y-devtools/frontend/src/components/Fab.svelte +19 -0
  115. data/gems/e11y-devtools/frontend/src/components/FilterBar.svelte +38 -0
  116. data/gems/e11y-devtools/frontend/src/components/FullscreenPanel.svelte +82 -0
  117. data/gems/e11y-devtools/frontend/src/components/InteractionsTimeline.svelte +264 -0
  118. data/gems/e11y-devtools/frontend/src/components/RecentHistogram.svelte +354 -0
  119. data/gems/e11y-devtools/frontend/src/lib/api.ts +37 -0
  120. data/gems/e11y-devtools/frontend/src/lib/eventIdentity.ts +12 -0
  121. data/gems/e11y-devtools/frontend/src/lib/format.ts +37 -0
  122. data/gems/e11y-devtools/frontend/src/lib/listFilter.ts +43 -0
  123. data/gems/e11y-devtools/frontend/src/lib/recentVolume.ts +80 -0
  124. data/gems/e11y-devtools/frontend/src/lib/router.ts +12 -0
  125. data/gems/e11y-devtools/frontend/src/lib/transitions.ts +34 -0
  126. data/gems/e11y-devtools/frontend/src/lib/viewportOrigin.ts +25 -0
  127. data/gems/e11y-devtools/frontend/src/main.ts +8 -0
  128. data/gems/e11y-devtools/frontend/src/overlay-entry.ts +24 -0
  129. data/gems/e11y-devtools/frontend/src/overlay.css +1080 -0
  130. data/gems/e11y-devtools/frontend/svelte.config.js +2 -0
  131. data/gems/e11y-devtools/frontend/test_puppeteer.js +41 -0
  132. data/gems/e11y-devtools/frontend/test_scale.js +3 -0
  133. data/gems/e11y-devtools/frontend/tsconfig.app.json +21 -0
  134. data/gems/e11y-devtools/frontend/tsconfig.json +7 -0
  135. data/gems/e11y-devtools/frontend/tsconfig.node.json +26 -0
  136. data/gems/e11y-devtools/frontend/vite.config.ts +36 -0
  137. data/gems/e11y-devtools/lib/e11y/devtools/mcp/server.rb +96 -0
  138. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tool_base.rb +25 -0
  139. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/clear.rb +31 -0
  140. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/errors.rb +35 -0
  141. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/event_detail.rb +33 -0
  142. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/events_by_trace.rb +33 -0
  143. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/interactions.rb +40 -0
  144. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/recent_events.rb +34 -0
  145. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/search.rb +34 -0
  146. data/gems/e11y-devtools/lib/e11y/devtools/mcp/tools/stats.rb +30 -0
  147. data/gems/e11y-devtools/lib/e11y/devtools/overlay/assets/overlay.js +20 -0
  148. data/gems/e11y-devtools/lib/e11y/devtools/overlay/controller.rb +94 -0
  149. data/gems/e11y-devtools/lib/e11y/devtools/overlay/engine.rb +26 -0
  150. data/gems/e11y-devtools/lib/e11y/devtools/overlay/middleware.rb +80 -0
  151. data/gems/e11y-devtools/lib/e11y/devtools/overlay/rails_controller.rb +67 -0
  152. data/gems/e11y-devtools/lib/e11y/devtools/tui/app.rb +262 -0
  153. data/gems/e11y-devtools/lib/e11y/devtools/tui/grouping.rb +66 -0
  154. data/gems/e11y-devtools/lib/e11y/devtools/tui/widgets/event_detail.rb +62 -0
  155. data/gems/e11y-devtools/lib/e11y/devtools/tui/widgets/event_list.rb +70 -0
  156. data/gems/e11y-devtools/lib/e11y/devtools/tui/widgets/interaction_list.rb +47 -0
  157. data/gems/e11y-devtools/lib/e11y/devtools/version.rb +8 -0
  158. data/gems/e11y-devtools/lib/e11y/devtools.rb +13 -0
  159. data/gems/e11y-devtools/spec/e11y/devtools/mcp/tools_spec.rb +107 -0
  160. data/gems/e11y-devtools/spec/e11y/devtools/overlay/controller_spec.rb +91 -0
  161. data/gems/e11y-devtools/spec/e11y/devtools/overlay/middleware_spec.rb +46 -0
  162. data/gems/e11y-devtools/spec/e11y/devtools/tui/app_spec.rb +85 -0
  163. data/gems/e11y-devtools/spec/e11y/devtools/tui/grouping_spec.rb +64 -0
  164. data/gems/e11y-devtools/spec/spec_helper.rb +5 -0
  165. data/gems/e11y-devtools/spec/tui/widgets/event_list_spec.rb +44 -0
  166. data/gems/e11y-devtools/spec/tui/widgets/interaction_list_spec.rb +62 -0
  167. data/lib/e11y/adapters/audit_encrypted.rb +53 -11
  168. data/lib/e11y/adapters/base.rb +33 -34
  169. data/lib/e11y/adapters/dev_log/file_store.rb +143 -0
  170. data/lib/e11y/adapters/dev_log/query.rb +219 -0
  171. data/lib/e11y/adapters/dev_log.rb +118 -0
  172. data/lib/e11y/adapters/file.rb +3 -6
  173. data/lib/e11y/adapters/in_memory.rb +52 -5
  174. data/lib/e11y/adapters/in_memory_test.rb +29 -0
  175. data/lib/e11y/adapters/loki.rb +58 -23
  176. data/lib/e11y/adapters/null.rb +82 -0
  177. data/lib/e11y/adapters/opentelemetry_collector.rb +183 -0
  178. data/lib/e11y/adapters/otel_logs.rb +136 -23
  179. data/lib/e11y/adapters/sentry.rb +4 -7
  180. data/lib/e11y/adapters/stdout.rb +73 -7
  181. data/lib/e11y/adapters/yabeda.rb +153 -29
  182. data/lib/e11y/buffers/adaptive_buffer.rb +3 -17
  183. data/lib/e11y/buffers/{request_scoped_buffer.rb → ephemeral_buffer.rb} +72 -58
  184. data/lib/e11y/buffers/ring_buffer.rb +3 -16
  185. data/lib/e11y/configuration.rb +272 -0
  186. data/lib/e11y/console.rb +10 -17
  187. data/lib/e11y/current.rb +53 -1
  188. data/lib/e11y/debug/pipeline_inspector.rb +96 -0
  189. data/lib/e11y/documentation/generator.rb +48 -0
  190. data/lib/e11y/event/base.rb +176 -82
  191. data/lib/e11y/event/value_sampling_config.rb +1 -5
  192. data/lib/e11y/events/rails/database/query.rb +1 -4
  193. data/lib/e11y/events/rails/job/failed.rb +2 -0
  194. data/lib/e11y/instruments/active_job.rb +44 -12
  195. data/lib/e11y/instruments/rails_instrumentation.rb +49 -24
  196. data/lib/e11y/instruments/sidekiq.rb +135 -31
  197. data/lib/e11y/linters/base.rb +11 -0
  198. data/lib/e11y/linters/pii/pii_declaration_linter.rb +120 -0
  199. data/lib/e11y/linters/slo/config_consistency_linter.rb +76 -0
  200. data/lib/e11y/linters/slo/explicit_declaration_linter.rb +36 -0
  201. data/lib/e11y/linters/slo/slo_status_from_linter.rb +41 -0
  202. data/lib/e11y/logger/bridge.rb +26 -7
  203. data/lib/e11y/metrics/cardinality_protection.rb +10 -15
  204. data/lib/e11y/metrics/cardinality_tracker.rb +16 -6
  205. data/lib/e11y/metrics/registry.rb +3 -5
  206. data/lib/e11y/metrics/test_backend.rb +62 -0
  207. data/lib/e11y/metrics.rb +56 -10
  208. data/lib/e11y/middleware/adapter_resolver.rb +40 -0
  209. data/lib/e11y/middleware/audit_signing.rb +43 -6
  210. data/lib/e11y/middleware/baggage_protection.rb +75 -0
  211. data/lib/e11y/middleware/dev_log_source.rb +24 -0
  212. data/lib/e11y/middleware/event_slo.rb +23 -9
  213. data/lib/e11y/middleware/otel_span.rb +23 -0
  214. data/lib/e11y/middleware/pii_filter.rb +104 -75
  215. data/lib/e11y/middleware/rate_limiting.rb +54 -27
  216. data/lib/e11y/middleware/request.rb +70 -23
  217. data/lib/e11y/middleware/routing.rb +78 -21
  218. data/lib/e11y/middleware/sampling.rb +66 -17
  219. data/lib/e11y/middleware/self_monitoring_emit.rb +39 -0
  220. data/lib/e11y/middleware/trace_context.rb +45 -10
  221. data/lib/e11y/middleware/track_latency.rb +34 -0
  222. data/lib/e11y/middleware/validation.rb +7 -16
  223. data/lib/e11y/middleware/versioning.rb +26 -22
  224. data/lib/e11y/opentelemetry/semantic_conventions.rb +109 -0
  225. data/lib/e11y/opentelemetry/span_creator.rb +142 -0
  226. data/lib/e11y/pii/patterns.rb +12 -1
  227. data/lib/e11y/pipeline/builder.rb +4 -4
  228. data/lib/e11y/presets/audit_event.rb +13 -2
  229. data/lib/e11y/railtie.rb +52 -14
  230. data/lib/e11y/registry.rb +306 -0
  231. data/lib/e11y/reliability/circuit_breaker.rb +19 -21
  232. data/lib/e11y/reliability/dlq/base.rb +71 -0
  233. data/lib/e11y/reliability/dlq/file_adapter.rb +301 -0
  234. data/lib/e11y/reliability/dlq/file_storage.rb +63 -34
  235. data/lib/e11y/reliability/dlq/filter.rb +37 -54
  236. data/lib/e11y/reliability/retry_handler.rb +26 -29
  237. data/lib/e11y/reliability/retry_rate_limiter.rb +3 -11
  238. data/lib/e11y/sampling/error_spike_detector.rb +0 -2
  239. data/lib/e11y/sampling/load_monitor.rb +5 -9
  240. data/lib/e11y/sampling/stratified_tracker.rb +18 -0
  241. data/lib/e11y/self_monitoring/buffer_monitor.rb +2 -0
  242. data/lib/e11y/self_monitoring/performance_monitor.rb +19 -61
  243. data/lib/e11y/self_monitoring/reliability_monitor.rb +4 -74
  244. data/lib/e11y/slo/config_loader.rb +40 -0
  245. data/lib/e11y/slo/config_validator.rb +58 -0
  246. data/lib/e11y/slo/dashboard_generator.rb +122 -0
  247. data/lib/e11y/slo/event_driven.rb +8 -0
  248. data/lib/e11y/slo/tracker.rb +31 -4
  249. data/lib/e11y/testing/have_tracked_event_matcher.rb +190 -0
  250. data/lib/e11y/testing/rspec_matchers.rb +21 -0
  251. data/lib/e11y/testing/snapshot_matcher.rb +86 -0
  252. data/lib/e11y/trace_context/sampler.rb +35 -0
  253. data/lib/e11y/tracing/faraday_middleware.rb +31 -0
  254. data/lib/e11y/tracing/net_http_patch.rb +33 -0
  255. data/lib/e11y/tracing/propagator.rb +144 -0
  256. data/lib/e11y/tracing.rb +47 -0
  257. data/lib/e11y/version.rb +1 -1
  258. data/lib/e11y/versioning/version_extractor.rb +32 -0
  259. data/lib/e11y.rb +123 -266
  260. data/lib/generators/e11y/event/event_generator.rb +22 -0
  261. data/lib/generators/e11y/event/templates/event.rb.tt +16 -0
  262. data/lib/generators/e11y/grafana_dashboard/grafana_dashboard_generator.rb +30 -0
  263. data/lib/generators/e11y/grafana_dashboard/templates/e11y_dashboard.json +81 -0
  264. data/lib/generators/e11y/install/install_generator.rb +34 -0
  265. data/lib/generators/e11y/install/templates/e11y.rb +239 -0
  266. data/lib/generators/e11y/prometheus_alerts/prometheus_alerts_generator.rb +29 -0
  267. data/lib/generators/e11y/prometheus_alerts/templates/e11y_alerts.yml +28 -0
  268. data/lib/tasks/e11y_docs.rake +30 -0
  269. data/lib/tasks/e11y_events.rake +71 -0
  270. data/lib/tasks/e11y_lint.rake +91 -0
  271. data/lib/tasks/e11y_slo.rake +29 -0
  272. metadata +186 -39
  273. data/docs/ADR-003-slo-observability.md +0 -3337
  274. data/docs/ADR-010-developer-experience.md +0 -2166
  275. data/docs/API-REFERENCE-L28.md +0 -914
  276. data/docs/COMPREHENSIVE-CONFIGURATION.md +0 -2366
  277. data/docs/CONTRIBUTING.md +0 -312
  278. data/docs/IMPLEMENTATION_NOTES.md +0 -2804
  279. data/docs/IMPLEMENTATION_PLAN.md +0 -1971
  280. data/docs/IMPLEMENTATION_PLAN_ARCHITECTURE.md +0 -586
  281. data/docs/PLAN.md +0 -148
  282. data/docs/README.md +0 -296
  283. data/docs/design/00-memory-optimization.md +0 -593
  284. data/docs/guides/MIGRATION-L27-L28.md +0 -692
  285. data/docs/guides/PERFORMANCE-BENCHMARKS.md +0 -434
  286. data/docs/guides/README.md +0 -44
  287. data/docs/use_cases/UC-003-pattern-based-metrics.md +0 -1627
  288. data/lib/e11y/adapters/registry.rb +0 -141
@@ -0,0 +1,4205 @@
1
+ [
2
+ {
3
+ "id": "7ad2f2eb-42b8-810f-4db7458d46eb",
4
+ "timestamp": "2026-03-20T09:47:43.259Z",
5
+ "event_name": "Events::ReportExportCompleted",
6
+ "severity": "fatal",
7
+ "version": 1,
8
+ "trace_id": "93db346fa5d44a032605a13b627f4b80",
9
+ "span_id": "fbece4ee65f62978",
10
+ "service_name": "dummy",
11
+ "environment": "development",
12
+ "retention_until": "2027-03-20T09:47:43Z",
13
+ "payload": {
14
+ "report_id": 5361,
15
+ "error": "No space left on device",
16
+ "exception": {
17
+ "class": "Errno::ENOSPC",
18
+ "message": "No space left on device @ rb_sysopen",
19
+ "backtrace": [
20
+ "app/jobs/search_index_job.rb:49:in `perform'",
21
+ "activejob (6.2.0) lib/active_job/execution.rb:68:in `perform_now'"
22
+ ]
23
+ }
24
+ },
25
+ "metadata": {
26
+ "source": "job",
27
+ "started_at": "2026-03-20T09:47:40.998Z",
28
+ "duration_ms": 478
29
+ }
30
+ },
31
+ {
32
+ "id": "f066bd9f-465f-8ee2-777aff789c26",
33
+ "timestamp": "2026-03-20T09:47:42.648Z",
34
+ "event_name": "Events::LogInfo",
35
+ "severity": "info",
36
+ "version": 1,
37
+ "trace_id": "93db346fa5d44a032605a13b627f4b80",
38
+ "span_id": "026da32d59c83ff3",
39
+ "service_name": "dummy",
40
+ "environment": "development",
41
+ "retention_until": "2027-03-20T09:47:42Z",
42
+ "payload": {
43
+ "message": "Job SearchIndexJob done shard=12",
44
+ "level": "info"
45
+ },
46
+ "metadata": {
47
+ "source": "job",
48
+ "started_at": "2026-03-20T09:47:40.998Z",
49
+ "duration_ms": 782
50
+ }
51
+ },
52
+ {
53
+ "id": "d506becd-424c-a7dc-660b01a28126",
54
+ "timestamp": "2026-03-20T09:47:42.455Z",
55
+ "event_name": "Events::LogInfo",
56
+ "severity": "info",
57
+ "version": 1,
58
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
59
+ "span_id": "317127c1497b54df",
60
+ "service_name": "dummy",
61
+ "environment": "development",
62
+ "retention_until": "2027-03-20T09:47:42Z",
63
+ "payload": {
64
+ "message": "Completed GET /api/v1/me in 536ms",
65
+ "level": "info"
66
+ },
67
+ "metadata": {
68
+ "source": "web",
69
+ "started_at": "2026-03-20T09:47:42.346Z",
70
+ "request_id": "req-98ff6146-23",
71
+ "path": "/api/v1/me",
72
+ "method": "GET",
73
+ "controller": "OrdersController",
74
+ "action": "index",
75
+ "duration_ms": 53
76
+ }
77
+ },
78
+ {
79
+ "id": "20fd9d89-4a9f-996a-2db4be568e9d",
80
+ "timestamp": "2026-03-20T09:47:42.440Z",
81
+ "event_name": "Events::UserAction",
82
+ "severity": "warn",
83
+ "version": 1,
84
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
85
+ "span_id": "e8a0a62629278f9e",
86
+ "service_name": "dummy",
87
+ "environment": "development",
88
+ "retention_until": "2027-03-20T09:47:42Z",
89
+ "payload": {
90
+ "action": "checkout_step",
91
+ "step": "review",
92
+ "flags": [
93
+ "rate_limit_near"
94
+ ]
95
+ },
96
+ "metadata": {
97
+ "source": "web",
98
+ "started_at": "2026-03-20T09:47:42.346Z",
99
+ "request_id": "req-98ff6146-23",
100
+ "path": "/api/v1/me",
101
+ "method": "GET",
102
+ "controller": "OrdersController",
103
+ "action": "index",
104
+ "duration_ms": 82
105
+ }
106
+ },
107
+ {
108
+ "id": "3d1aca2c-4d58-a6b4-b4a91b17f163",
109
+ "timestamp": "2026-03-20T09:47:42.425Z",
110
+ "event_name": "Events::OrderCreated",
111
+ "severity": "success",
112
+ "version": 1,
113
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
114
+ "span_id": "9e5d50beb2f10e9a",
115
+ "service_name": "dummy",
116
+ "environment": "development",
117
+ "retention_until": "2027-03-20T09:47:42Z",
118
+ "payload": {
119
+ "order_id": "ord_673035",
120
+ "status": "completed",
121
+ "customer": {
122
+ "id": 4796,
123
+ "email": "[FILTERED]",
124
+ "locale": "en"
125
+ },
126
+ "items": [
127
+ {
128
+ "sku": "SKU-106",
129
+ "qty": 1,
130
+ "unit_price": 440.53
131
+ }
132
+ ]
133
+ },
134
+ "metadata": {
135
+ "source": "web",
136
+ "started_at": "2026-03-20T09:47:42.346Z",
137
+ "request_id": "req-98ff6146-23",
138
+ "path": "/api/v1/me",
139
+ "method": "GET",
140
+ "controller": "OrdersController",
141
+ "action": "index",
142
+ "duration_ms": 45
143
+ }
144
+ },
145
+ {
146
+ "id": "bbe18520-4505-90d7-1c92de3fc94f",
147
+ "timestamp": "2026-03-20T09:47:42.413Z",
148
+ "event_name": "Events::PostDebug",
149
+ "severity": "debug",
150
+ "version": 1,
151
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
152
+ "span_id": "a8904ca73ecb085b",
153
+ "service_name": "dummy",
154
+ "environment": "development",
155
+ "retention_until": "2027-03-20T09:47:42Z",
156
+ "payload": {
157
+ "message": " → CACHE — /api/v1/me id=31291"
158
+ },
159
+ "metadata": {
160
+ "source": "web",
161
+ "started_at": "2026-03-20T09:47:42.346Z",
162
+ "request_id": "req-98ff6146-23",
163
+ "path": "/api/v1/me",
164
+ "method": "GET",
165
+ "controller": "OrdersController",
166
+ "action": "index",
167
+ "duration_ms": 16
168
+ }
169
+ },
170
+ {
171
+ "id": "7b07b8df-413d-895c-4872d31e4ab9",
172
+ "timestamp": "2026-03-20T09:47:42.398Z",
173
+ "event_name": "Events::PostDebug",
174
+ "severity": "debug",
175
+ "version": 1,
176
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
177
+ "span_id": "9241f542590a0637",
178
+ "service_name": "dummy",
179
+ "environment": "development",
180
+ "retention_until": "2027-03-20T09:47:42Z",
181
+ "payload": {
182
+ "message": " → N+1 — /api/v1/me id=30562"
183
+ },
184
+ "metadata": {
185
+ "source": "web",
186
+ "started_at": "2026-03-20T09:47:42.346Z",
187
+ "request_id": "req-98ff6146-23",
188
+ "path": "/api/v1/me",
189
+ "method": "GET",
190
+ "controller": "OrdersController",
191
+ "action": "index",
192
+ "duration_ms": 8
193
+ }
194
+ },
195
+ {
196
+ "id": "0c7d14af-4659-a391-71c5f64da024",
197
+ "timestamp": "2026-03-20T09:47:42.385Z",
198
+ "event_name": "Events::PostDebug",
199
+ "severity": "debug",
200
+ "version": 1,
201
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
202
+ "span_id": "385ded3b1c0626af",
203
+ "service_name": "dummy",
204
+ "environment": "development",
205
+ "retention_until": "2027-03-20T09:47:42Z",
206
+ "payload": {
207
+ "message": " → CACHE /api/v1/me — 28.4ms"
208
+ },
209
+ "metadata": {
210
+ "source": "web",
211
+ "started_at": "2026-03-20T09:47:42.346Z",
212
+ "request_id": "req-98ff6146-23",
213
+ "path": "/api/v1/me",
214
+ "method": "GET",
215
+ "controller": "OrdersController",
216
+ "action": "index",
217
+ "duration_ms": 5
218
+ }
219
+ },
220
+ {
221
+ "id": "ee7ca618-4d04-a58a-c3ba48093ce1",
222
+ "timestamp": "2026-03-20T09:47:42.371Z",
223
+ "event_name": "Events::ApiRequest",
224
+ "severity": "info",
225
+ "version": 1,
226
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
227
+ "span_id": "689063d740ad9c7b",
228
+ "service_name": "dummy",
229
+ "environment": "development",
230
+ "retention_until": "2027-03-20T09:47:42Z",
231
+ "payload": {
232
+ "endpoint": "GET /api/v1/me",
233
+ "status": "ok",
234
+ "http_status": 200
235
+ },
236
+ "metadata": {
237
+ "source": "web",
238
+ "started_at": "2026-03-20T09:47:42.346Z",
239
+ "request_id": "req-98ff6146-23",
240
+ "path": "/api/v1/me",
241
+ "method": "GET",
242
+ "controller": "OrdersController",
243
+ "action": "index",
244
+ "duration_ms": 79
245
+ }
246
+ },
247
+ {
248
+ "id": "43fe5d42-4a7a-a3db-7e1ce384fe88",
249
+ "timestamp": "2026-03-20T09:47:42.361Z",
250
+ "event_name": "Events::LogInfo",
251
+ "severity": "info",
252
+ "version": 1,
253
+ "trace_id": "98ff6146faf7bd9be8bd03a8275817ba",
254
+ "span_id": "0b5c44c2f4a59398",
255
+ "service_name": "dummy",
256
+ "environment": "development",
257
+ "retention_until": "2027-03-20T09:47:42Z",
258
+ "payload": {
259
+ "message": "Started GET \"/api/v1/me\" for ::1 at 2026-03-20 09:47:42 +0000",
260
+ "level": "info"
261
+ },
262
+ "metadata": {
263
+ "source": "web",
264
+ "started_at": "2026-03-20T09:47:42.346Z",
265
+ "request_id": "req-98ff6146-23",
266
+ "path": "/api/v1/me",
267
+ "method": "GET",
268
+ "controller": "OrdersController",
269
+ "action": "index",
270
+ "duration_ms": 1
271
+ }
272
+ },
273
+ {
274
+ "id": "e06d246b-4b7d-adc1-21367641e2e2",
275
+ "timestamp": "2026-03-20T09:47:42.148Z",
276
+ "event_name": "Events::LogInfo",
277
+ "severity": "info",
278
+ "version": 1,
279
+ "trace_id": "93db346fa5d44a032605a13b627f4b80",
280
+ "span_id": "debecca9fd870221",
281
+ "service_name": "dummy",
282
+ "environment": "development",
283
+ "retention_until": "2027-03-20T09:47:42Z",
284
+ "payload": {
285
+ "message": "Job SearchIndexJob done shard=13",
286
+ "level": "info"
287
+ },
288
+ "metadata": {
289
+ "source": "job",
290
+ "started_at": "2026-03-20T09:47:40.998Z",
291
+ "duration_ms": 17
292
+ }
293
+ },
294
+ {
295
+ "id": "678c5bd6-416b-a026-de0ecdd16f77",
296
+ "timestamp": "2026-03-20T09:47:41.590Z",
297
+ "event_name": "Events::ReportCreated",
298
+ "severity": "info",
299
+ "version": 1,
300
+ "trace_id": "93db346fa5d44a032605a13b627f4b80",
301
+ "span_id": "8a1c19f089d4ae03",
302
+ "service_name": "dummy",
303
+ "environment": "development",
304
+ "retention_until": "2027-03-20T09:47:41Z",
305
+ "payload": {
306
+ "title": "Export batch 6468",
307
+ "description": "Queued by SearchIndexJob",
308
+ "employee_ids": [
309
+ 153,
310
+ 141
311
+ ],
312
+ "author": "system"
313
+ },
314
+ "metadata": {
315
+ "source": "job",
316
+ "started_at": "2026-03-20T09:47:40.998Z",
317
+ "duration_ms": 184
318
+ }
319
+ },
320
+ {
321
+ "id": "ff0fdc90-48d7-a002-709f76a01ee2",
322
+ "timestamp": "2026-03-20T09:47:41.508Z",
323
+ "event_name": "Events::LogInfo",
324
+ "severity": "info",
325
+ "version": 1,
326
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
327
+ "span_id": "3974efe59f78d30c",
328
+ "service_name": "dummy",
329
+ "environment": "development",
330
+ "retention_until": "2027-03-20T09:47:41Z",
331
+ "payload": {
332
+ "message": "Completed GET /api/v1/me in 131ms",
333
+ "level": "info"
334
+ },
335
+ "metadata": {
336
+ "source": "web",
337
+ "started_at": "2026-03-20T09:47:41.417Z",
338
+ "request_id": "req-8c0a9890-22",
339
+ "path": "/api/v1/me",
340
+ "method": "GET",
341
+ "controller": "CheckoutController",
342
+ "action": "show",
343
+ "duration_ms": 132
344
+ }
345
+ },
346
+ {
347
+ "id": "98e6f413-4779-b6f0-663c429ea77a",
348
+ "timestamp": "2026-03-20T09:47:41.495Z",
349
+ "event_name": "Events::UserAction",
350
+ "severity": "warn",
351
+ "version": 1,
352
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
353
+ "span_id": "65701de983e749a2",
354
+ "service_name": "dummy",
355
+ "environment": "development",
356
+ "retention_until": "2027-03-20T09:47:41Z",
357
+ "payload": {
358
+ "action": "checkout_step",
359
+ "step": "review",
360
+ "flags": [
361
+ "rate_limit_near"
362
+ ]
363
+ },
364
+ "metadata": {
365
+ "source": "web",
366
+ "started_at": "2026-03-20T09:47:41.417Z",
367
+ "request_id": "req-8c0a9890-22",
368
+ "path": "/api/v1/me",
369
+ "method": "GET",
370
+ "controller": "CheckoutController",
371
+ "action": "show",
372
+ "duration_ms": 50
373
+ }
374
+ },
375
+ {
376
+ "id": "3b0d2d49-4c6a-b0e1-c3383871c8d9",
377
+ "timestamp": "2026-03-20T09:47:41.481Z",
378
+ "event_name": "Events::OrderCreated",
379
+ "severity": "success",
380
+ "version": 1,
381
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
382
+ "span_id": "096743a82fba6af0",
383
+ "service_name": "dummy",
384
+ "environment": "development",
385
+ "retention_until": "2027-03-20T09:47:41Z",
386
+ "payload": {
387
+ "order_id": "ord_032734",
388
+ "status": "completed",
389
+ "customer": {
390
+ "id": 6403,
391
+ "email": "[FILTERED]",
392
+ "locale": "en"
393
+ },
394
+ "items": [
395
+ {
396
+ "sku": "SKU-987",
397
+ "qty": 1,
398
+ "unit_price": 177.96
399
+ }
400
+ ]
401
+ },
402
+ "metadata": {
403
+ "source": "web",
404
+ "started_at": "2026-03-20T09:47:41.417Z",
405
+ "request_id": "req-8c0a9890-22",
406
+ "path": "/api/v1/me",
407
+ "method": "GET",
408
+ "controller": "CheckoutController",
409
+ "action": "show",
410
+ "duration_ms": 5
411
+ }
412
+ },
413
+ {
414
+ "id": "be4c5ec6-4a33-b303-d63a66cdf647",
415
+ "timestamp": "2026-03-20T09:47:41.468Z",
416
+ "event_name": "Events::PostDebug",
417
+ "severity": "debug",
418
+ "version": 1,
419
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
420
+ "span_id": "f156de93d67bbf5c",
421
+ "service_name": "dummy",
422
+ "environment": "development",
423
+ "retention_until": "2027-03-20T09:47:41Z",
424
+ "payload": {
425
+ "message": " → Render — /api/v1/me id=38198"
426
+ },
427
+ "metadata": {
428
+ "source": "web",
429
+ "started_at": "2026-03-20T09:47:41.417Z",
430
+ "request_id": "req-8c0a9890-22",
431
+ "path": "/api/v1/me",
432
+ "method": "GET",
433
+ "controller": "CheckoutController",
434
+ "action": "show",
435
+ "duration_ms": 21
436
+ }
437
+ },
438
+ {
439
+ "id": "c94de83c-4fe4-a3aa-7d7b6ae692c5",
440
+ "timestamp": "2026-03-20T09:47:41.452Z",
441
+ "event_name": "Events::PostDebug",
442
+ "severity": "debug",
443
+ "version": 1,
444
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
445
+ "span_id": "fb7a0326e10de5b7",
446
+ "service_name": "dummy",
447
+ "environment": "development",
448
+ "retention_until": "2027-03-20T09:47:41Z",
449
+ "payload": {
450
+ "message": " → Render /api/v1/me — 46.7ms"
451
+ },
452
+ "metadata": {
453
+ "source": "web",
454
+ "started_at": "2026-03-20T09:47:41.417Z",
455
+ "request_id": "req-8c0a9890-22",
456
+ "path": "/api/v1/me",
457
+ "method": "GET",
458
+ "controller": "CheckoutController",
459
+ "action": "show",
460
+ "duration_ms": 3
461
+ }
462
+ },
463
+ {
464
+ "id": "fcdb5fed-47ce-8a48-118e62633b30",
465
+ "timestamp": "2026-03-20T09:47:41.437Z",
466
+ "event_name": "Events::ApiRequest",
467
+ "severity": "warn",
468
+ "version": 1,
469
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
470
+ "span_id": "6441df78adfd5d57",
471
+ "service_name": "dummy",
472
+ "environment": "development",
473
+ "retention_until": "2027-03-20T09:47:41Z",
474
+ "payload": {
475
+ "endpoint": "GET /api/v1/me",
476
+ "status": "slow",
477
+ "http_status": 429
478
+ },
479
+ "metadata": {
480
+ "source": "web",
481
+ "started_at": "2026-03-20T09:47:41.417Z",
482
+ "request_id": "req-8c0a9890-22",
483
+ "path": "/api/v1/me",
484
+ "method": "GET",
485
+ "controller": "CheckoutController",
486
+ "action": "show",
487
+ "duration_ms": 68
488
+ }
489
+ },
490
+ {
491
+ "id": "77a1adac-448d-a177-7e9dda5287f1",
492
+ "timestamp": "2026-03-20T09:47:41.427Z",
493
+ "event_name": "Events::LogInfo",
494
+ "severity": "info",
495
+ "version": 1,
496
+ "trace_id": "8c0a98900edaae105469df8daedccf02",
497
+ "span_id": "4bdad943b72e8091",
498
+ "service_name": "dummy",
499
+ "environment": "development",
500
+ "retention_until": "2027-03-20T09:47:41Z",
501
+ "payload": {
502
+ "message": "Started GET \"/api/v1/me\" for ::1 at 2026-03-20 09:47:41 +0000",
503
+ "level": "info"
504
+ },
505
+ "metadata": {
506
+ "source": "web",
507
+ "started_at": "2026-03-20T09:47:41.417Z",
508
+ "request_id": "req-8c0a9890-22",
509
+ "path": "/api/v1/me",
510
+ "method": "GET",
511
+ "controller": "CheckoutController",
512
+ "action": "show",
513
+ "duration_ms": 1
514
+ }
515
+ },
516
+ {
517
+ "id": "d433cde9-4266-9510-5e0d98a5249e",
518
+ "timestamp": "2026-03-20T09:47:41.034Z",
519
+ "event_name": "Events::BackgroundJobStarted",
520
+ "severity": "info",
521
+ "version": 1,
522
+ "trace_id": "93db346fa5d44a032605a13b627f4b80",
523
+ "span_id": "5d5ccc973ae1dbe2",
524
+ "service_name": "dummy",
525
+ "environment": "development",
526
+ "retention_until": "2027-03-20T09:47:41Z",
527
+ "payload": {
528
+ "job_class": "SearchIndexJob",
529
+ "job_id": "f1bb72d6-45dc-9a51-8cdedcaed3dd",
530
+ "queue": "default",
531
+ "arguments": [
532
+ {
533
+ "batch_id": 78946,
534
+ "shard": 2
535
+ }
536
+ ],
537
+ "enqueued_at": "2026-03-20T09:47:40.998Z"
538
+ },
539
+ "metadata": {
540
+ "source": "job",
541
+ "started_at": "2026-03-20T09:47:40.998Z",
542
+ "duration_ms": 444
543
+ }
544
+ },
545
+ {
546
+ "id": "9164dbd4-4c55-b0f9-418608b0af0d",
547
+ "timestamp": "2026-03-20T09:47:39.214Z",
548
+ "event_name": "Events::LogInfo",
549
+ "severity": "info",
550
+ "version": 1,
551
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
552
+ "span_id": "1eda914eb28a2274",
553
+ "service_name": "dummy",
554
+ "environment": "development",
555
+ "retention_until": "2027-03-20T09:47:39Z",
556
+ "payload": {
557
+ "message": "Completed GET /api/v1/orders in 530ms",
558
+ "level": "info"
559
+ },
560
+ "metadata": {
561
+ "source": "web",
562
+ "started_at": "2026-03-20T09:47:39.126Z",
563
+ "request_id": "req-34bc3c9c-20",
564
+ "path": "/api/v1/orders",
565
+ "method": "GET",
566
+ "controller": "Api::V1::MeController",
567
+ "action": "show",
568
+ "duration_ms": 144
569
+ }
570
+ },
571
+ {
572
+ "id": "fb0714c7-4e18-99d1-f458a58bd50b",
573
+ "timestamp": "2026-03-20T09:47:39.203Z",
574
+ "event_name": "Events::OrderCreated",
575
+ "severity": "success",
576
+ "version": 1,
577
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
578
+ "span_id": "38a12e8eb173ee3a",
579
+ "service_name": "dummy",
580
+ "environment": "development",
581
+ "retention_until": "2027-03-20T09:47:39Z",
582
+ "payload": {
583
+ "order_id": "ord_482616",
584
+ "status": "completed",
585
+ "customer": {
586
+ "id": 8681,
587
+ "email": "[FILTERED]",
588
+ "locale": "en"
589
+ },
590
+ "items": [
591
+ {
592
+ "sku": "SKU-976",
593
+ "qty": 1,
594
+ "unit_price": 335.94
595
+ }
596
+ ]
597
+ },
598
+ "metadata": {
599
+ "source": "web",
600
+ "started_at": "2026-03-20T09:47:39.126Z",
601
+ "request_id": "req-34bc3c9c-20",
602
+ "path": "/api/v1/orders",
603
+ "method": "GET",
604
+ "controller": "Api::V1::MeController",
605
+ "action": "show",
606
+ "duration_ms": 32
607
+ }
608
+ },
609
+ {
610
+ "id": "8aba053d-4e4f-a0d7-0152bb731707",
611
+ "timestamp": "2026-03-20T09:47:39.189Z",
612
+ "event_name": "Events::PostDebug",
613
+ "severity": "debug",
614
+ "version": 1,
615
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
616
+ "span_id": "a3922fdece7aca94",
617
+ "service_name": "dummy",
618
+ "environment": "development",
619
+ "retention_until": "2027-03-20T09:47:39Z",
620
+ "payload": {
621
+ "message": " → CACHE — /api/v1/orders id=1751"
622
+ },
623
+ "metadata": {
624
+ "source": "web",
625
+ "started_at": "2026-03-20T09:47:39.126Z",
626
+ "request_id": "req-34bc3c9c-20",
627
+ "path": "/api/v1/orders",
628
+ "method": "GET",
629
+ "controller": "Api::V1::MeController",
630
+ "action": "show",
631
+ "duration_ms": 5
632
+ }
633
+ },
634
+ {
635
+ "id": "50896664-4c2b-bfba-0ffaf64c1b30",
636
+ "timestamp": "2026-03-20T09:47:39.178Z",
637
+ "event_name": "Events::PostDebug",
638
+ "severity": "debug",
639
+ "version": 1,
640
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
641
+ "span_id": "23068bbcca3e5410",
642
+ "service_name": "dummy",
643
+ "environment": "development",
644
+ "retention_until": "2027-03-20T09:47:39Z",
645
+ "payload": {
646
+ "message": " → SQL — /api/v1/orders id=36409"
647
+ },
648
+ "metadata": {
649
+ "source": "web",
650
+ "started_at": "2026-03-20T09:47:39.126Z",
651
+ "request_id": "req-34bc3c9c-20",
652
+ "path": "/api/v1/orders",
653
+ "method": "GET",
654
+ "controller": "Api::V1::MeController",
655
+ "action": "show",
656
+ "duration_ms": 23
657
+ }
658
+ },
659
+ {
660
+ "id": "99294667-4829-b018-342613705f22",
661
+ "timestamp": "2026-03-20T09:47:39.168Z",
662
+ "event_name": "Events::PostDebug",
663
+ "severity": "debug",
664
+ "version": 1,
665
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
666
+ "span_id": "d1b0b08213e86df1",
667
+ "service_name": "dummy",
668
+ "environment": "development",
669
+ "retention_until": "2027-03-20T09:47:39Z",
670
+ "payload": {
671
+ "message": " → CACHE /api/v1/orders — 44.2ms"
672
+ },
673
+ "metadata": {
674
+ "source": "web",
675
+ "started_at": "2026-03-20T09:47:39.126Z",
676
+ "request_id": "req-34bc3c9c-20",
677
+ "path": "/api/v1/orders",
678
+ "method": "GET",
679
+ "controller": "Api::V1::MeController",
680
+ "action": "show",
681
+ "duration_ms": 6
682
+ }
683
+ },
684
+ {
685
+ "id": "9f92b8c8-4099-9dc1-05f458298848",
686
+ "timestamp": "2026-03-20T09:47:39.154Z",
687
+ "event_name": "Events::ApiRequest",
688
+ "severity": "info",
689
+ "version": 1,
690
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
691
+ "span_id": "133c3ac859fe8927",
692
+ "service_name": "dummy",
693
+ "environment": "development",
694
+ "retention_until": "2027-03-20T09:47:39Z",
695
+ "payload": {
696
+ "endpoint": "GET /api/v1/orders",
697
+ "status": "ok",
698
+ "http_status": 200
699
+ },
700
+ "metadata": {
701
+ "source": "web",
702
+ "started_at": "2026-03-20T09:47:39.126Z",
703
+ "request_id": "req-34bc3c9c-20",
704
+ "path": "/api/v1/orders",
705
+ "method": "GET",
706
+ "controller": "Api::V1::MeController",
707
+ "action": "show",
708
+ "duration_ms": 17
709
+ }
710
+ },
711
+ {
712
+ "id": "07fb9e23-42ee-bc93-bdd2985706e2",
713
+ "timestamp": "2026-03-20T09:47:39.138Z",
714
+ "event_name": "Events::LogInfo",
715
+ "severity": "info",
716
+ "version": 1,
717
+ "trace_id": "34bc3c9c0097de28a7a6f99b90a8e7bc",
718
+ "span_id": "d76e7cf30d2a3dea",
719
+ "service_name": "dummy",
720
+ "environment": "development",
721
+ "retention_until": "2027-03-20T09:47:39Z",
722
+ "payload": {
723
+ "message": "Started GET \"/api/v1/orders\" for ::1 at 2026-03-20 09:47:39 +0000",
724
+ "level": "info"
725
+ },
726
+ "metadata": {
727
+ "source": "web",
728
+ "started_at": "2026-03-20T09:47:39.126Z",
729
+ "request_id": "req-34bc3c9c-20",
730
+ "path": "/api/v1/orders",
731
+ "method": "GET",
732
+ "controller": "Api::V1::MeController",
733
+ "action": "show",
734
+ "duration_ms": 0
735
+ }
736
+ },
737
+ {
738
+ "id": "ea5f1aa3-4470-a0ba-2b269c437ae7",
739
+ "timestamp": "2026-03-20T09:47:38.109Z",
740
+ "event_name": "Events::LogInfo",
741
+ "severity": "info",
742
+ "version": 1,
743
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
744
+ "span_id": "90ffe4e2f305c535",
745
+ "service_name": "dummy",
746
+ "environment": "development",
747
+ "retention_until": "2027-03-20T09:47:38Z",
748
+ "payload": {
749
+ "message": "Completed POST /graphql in 109ms",
750
+ "level": "info"
751
+ },
752
+ "metadata": {
753
+ "source": "web",
754
+ "started_at": "2026-03-20T09:47:38.019Z",
755
+ "request_id": "req-29f198f6-19",
756
+ "path": "/graphql",
757
+ "method": "POST",
758
+ "controller": "Admin::UsersController",
759
+ "action": "index",
760
+ "duration_ms": 62
761
+ }
762
+ },
763
+ {
764
+ "id": "bcefc56a-4ec0-8b32-52b49a682d23",
765
+ "timestamp": "2026-03-20T09:47:38.097Z",
766
+ "event_name": "Events::PaymentFailed",
767
+ "severity": "error",
768
+ "version": 1,
769
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
770
+ "span_id": "c55f55723ecf3319",
771
+ "service_name": "dummy",
772
+ "environment": "development",
773
+ "retention_until": "2027-03-20T09:47:38Z",
774
+ "payload": {
775
+ "order_id": "ord_543352",
776
+ "amount": 43.44,
777
+ "gateway": "stripe",
778
+ "decline_code": "processing_error"
779
+ },
780
+ "metadata": {
781
+ "source": "web",
782
+ "started_at": "2026-03-20T09:47:38.019Z",
783
+ "request_id": "req-29f198f6-19",
784
+ "path": "/graphql",
785
+ "method": "POST",
786
+ "controller": "Admin::UsersController",
787
+ "action": "index",
788
+ "duration_ms": 40
789
+ }
790
+ },
791
+ {
792
+ "id": "99bb790b-46ec-97f8-bb342ce521c6",
793
+ "timestamp": "2026-03-20T09:47:38.086Z",
794
+ "event_name": "Events::OrderCreated",
795
+ "severity": "success",
796
+ "version": 1,
797
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
798
+ "span_id": "92c36b89ea16e6ac",
799
+ "service_name": "dummy",
800
+ "environment": "development",
801
+ "retention_until": "2027-03-20T09:47:38Z",
802
+ "payload": {
803
+ "order_id": "ord_543352",
804
+ "status": "pending_payment",
805
+ "customer": {
806
+ "id": 2970,
807
+ "email": "[FILTERED]",
808
+ "locale": "en"
809
+ },
810
+ "items": [
811
+ {
812
+ "sku": "SKU-575",
813
+ "qty": 1,
814
+ "unit_price": 385.83
815
+ }
816
+ ]
817
+ },
818
+ "metadata": {
819
+ "source": "web",
820
+ "started_at": "2026-03-20T09:47:38.019Z",
821
+ "request_id": "req-29f198f6-19",
822
+ "path": "/graphql",
823
+ "method": "POST",
824
+ "controller": "Admin::UsersController",
825
+ "action": "index",
826
+ "duration_ms": 46
827
+ }
828
+ },
829
+ {
830
+ "id": "7f59dbe5-4579-b24b-06561b48be74",
831
+ "timestamp": "2026-03-20T09:47:38.072Z",
832
+ "event_name": "Events::PostDebug",
833
+ "severity": "debug",
834
+ "version": 1,
835
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
836
+ "span_id": "02d09f6923d84155",
837
+ "service_name": "dummy",
838
+ "environment": "development",
839
+ "retention_until": "2027-03-20T09:47:38Z",
840
+ "payload": {
841
+ "message": " → CACHE — /graphql id=40761"
842
+ },
843
+ "metadata": {
844
+ "source": "web",
845
+ "started_at": "2026-03-20T09:47:38.019Z",
846
+ "request_id": "req-29f198f6-19",
847
+ "path": "/graphql",
848
+ "method": "POST",
849
+ "controller": "Admin::UsersController",
850
+ "action": "index",
851
+ "duration_ms": 6
852
+ }
853
+ },
854
+ {
855
+ "id": "45b5eed6-4324-804a-db45ea0f7c91",
856
+ "timestamp": "2026-03-20T09:47:38.060Z",
857
+ "event_name": "Events::PostDebug",
858
+ "severity": "debug",
859
+ "version": 1,
860
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
861
+ "span_id": "8797e87f1e24ef54",
862
+ "service_name": "dummy",
863
+ "environment": "development",
864
+ "retention_until": "2027-03-20T09:47:38Z",
865
+ "payload": {
866
+ "message": " → SQL /graphql — 36.8ms"
867
+ },
868
+ "metadata": {
869
+ "source": "web",
870
+ "started_at": "2026-03-20T09:47:38.019Z",
871
+ "request_id": "req-29f198f6-19",
872
+ "path": "/graphql",
873
+ "method": "POST",
874
+ "controller": "Admin::UsersController",
875
+ "action": "index",
876
+ "duration_ms": 6
877
+ }
878
+ },
879
+ {
880
+ "id": "4204ed66-4cc8-96f5-4515d5bdfcea",
881
+ "timestamp": "2026-03-20T09:47:38.049Z",
882
+ "event_name": "Events::ApiRequest",
883
+ "severity": "info",
884
+ "version": 1,
885
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
886
+ "span_id": "6bf4c9edfc01c803",
887
+ "service_name": "dummy",
888
+ "environment": "development",
889
+ "retention_until": "2027-03-20T09:47:38Z",
890
+ "payload": {
891
+ "endpoint": "POST /graphql",
892
+ "status": "ok",
893
+ "http_status": 200
894
+ },
895
+ "metadata": {
896
+ "source": "web",
897
+ "started_at": "2026-03-20T09:47:38.019Z",
898
+ "request_id": "req-29f198f6-19",
899
+ "path": "/graphql",
900
+ "method": "POST",
901
+ "controller": "Admin::UsersController",
902
+ "action": "index",
903
+ "duration_ms": 26
904
+ }
905
+ },
906
+ {
907
+ "id": "7897bed6-407f-92df-cad07c1a6f71",
908
+ "timestamp": "2026-03-20T09:47:38.035Z",
909
+ "event_name": "Events::LogInfo",
910
+ "severity": "info",
911
+ "version": 1,
912
+ "trace_id": "29f198f6588dacffb687777eb5f8f118",
913
+ "span_id": "05c08c7283306cd0",
914
+ "service_name": "dummy",
915
+ "environment": "development",
916
+ "retention_until": "2027-03-20T09:47:38Z",
917
+ "payload": {
918
+ "message": "Started POST \"/graphql\" for ::1 at 2026-03-20 09:47:38 +0000",
919
+ "level": "info"
920
+ },
921
+ "metadata": {
922
+ "source": "web",
923
+ "started_at": "2026-03-20T09:47:38.019Z",
924
+ "request_id": "req-29f198f6-19",
925
+ "path": "/graphql",
926
+ "method": "POST",
927
+ "controller": "Admin::UsersController",
928
+ "action": "index",
929
+ "duration_ms": 1
930
+ }
931
+ },
932
+ {
933
+ "id": "5cddb388-4ce1-b434-1bab3831d762",
934
+ "timestamp": "2026-03-20T09:47:37.173Z",
935
+ "event_name": "Events::LogInfo",
936
+ "severity": "info",
937
+ "version": 1,
938
+ "trace_id": "8a81ada42834d15f287bb40010043605",
939
+ "span_id": "f2cdd5f3f97bedf9",
940
+ "service_name": "dummy",
941
+ "environment": "development",
942
+ "retention_until": "2027-03-20T09:47:37Z",
943
+ "payload": {
944
+ "message": "Completed POST /webhooks/stripe in 865ms",
945
+ "level": "info"
946
+ },
947
+ "metadata": {
948
+ "source": "web",
949
+ "started_at": "2026-03-20T09:47:37.077Z",
950
+ "request_id": "req-8a81ada4-18",
951
+ "path": "/webhooks/stripe",
952
+ "method": "POST",
953
+ "controller": "Api::V1::MeController",
954
+ "action": "show",
955
+ "duration_ms": 115
956
+ }
957
+ },
958
+ {
959
+ "id": "e4862201-4780-bb2e-5ac457815793",
960
+ "timestamp": "2026-03-20T09:47:37.159Z",
961
+ "event_name": "Events::OrderCreated",
962
+ "severity": "success",
963
+ "version": 1,
964
+ "trace_id": "8a81ada42834d15f287bb40010043605",
965
+ "span_id": "55fb4e0a426992e9",
966
+ "service_name": "dummy",
967
+ "environment": "development",
968
+ "retention_until": "2027-03-20T09:47:37Z",
969
+ "payload": {
970
+ "order_id": "ord_274487",
971
+ "status": "cancelled",
972
+ "customer": {
973
+ "id": 1410,
974
+ "email": "[FILTERED]",
975
+ "locale": "en"
976
+ },
977
+ "items": [
978
+ {
979
+ "sku": "SKU-806",
980
+ "qty": 1,
981
+ "unit_price": 296.61
982
+ }
983
+ ]
984
+ },
985
+ "metadata": {
986
+ "source": "web",
987
+ "started_at": "2026-03-20T09:47:37.077Z",
988
+ "request_id": "req-8a81ada4-18",
989
+ "path": "/webhooks/stripe",
990
+ "method": "POST",
991
+ "controller": "Api::V1::MeController",
992
+ "action": "show",
993
+ "duration_ms": 12
994
+ }
995
+ },
996
+ {
997
+ "id": "a21c1149-4306-bea0-0896d91eec54",
998
+ "timestamp": "2026-03-20T09:47:37.146Z",
999
+ "event_name": "Events::PostDebug",
1000
+ "severity": "debug",
1001
+ "version": 1,
1002
+ "trace_id": "8a81ada42834d15f287bb40010043605",
1003
+ "span_id": "06cad0921f6e4e6f",
1004
+ "service_name": "dummy",
1005
+ "environment": "development",
1006
+ "retention_until": "2027-03-20T09:47:37Z",
1007
+ "payload": {
1008
+ "message": " → CACHE — /webhooks/stripe id=41875"
1009
+ },
1010
+ "metadata": {
1011
+ "source": "web",
1012
+ "started_at": "2026-03-20T09:47:37.077Z",
1013
+ "request_id": "req-8a81ada4-18",
1014
+ "path": "/webhooks/stripe",
1015
+ "method": "POST",
1016
+ "controller": "Api::V1::MeController",
1017
+ "action": "show",
1018
+ "duration_ms": 4
1019
+ }
1020
+ },
1021
+ {
1022
+ "id": "ce8dbb2d-49ea-af8f-d1c3f1c4d5f3",
1023
+ "timestamp": "2026-03-20T09:47:37.136Z",
1024
+ "event_name": "Events::PostDebug",
1025
+ "severity": "debug",
1026
+ "version": 1,
1027
+ "trace_id": "8a81ada42834d15f287bb40010043605",
1028
+ "span_id": "ab07a0a4241df0b5",
1029
+ "service_name": "dummy",
1030
+ "environment": "development",
1031
+ "retention_until": "2027-03-20T09:47:37Z",
1032
+ "payload": {
1033
+ "message": " → CACHE — /webhooks/stripe id=21390"
1034
+ },
1035
+ "metadata": {
1036
+ "source": "web",
1037
+ "started_at": "2026-03-20T09:47:37.077Z",
1038
+ "request_id": "req-8a81ada4-18",
1039
+ "path": "/webhooks/stripe",
1040
+ "method": "POST",
1041
+ "controller": "Api::V1::MeController",
1042
+ "action": "show",
1043
+ "duration_ms": 23
1044
+ }
1045
+ },
1046
+ {
1047
+ "id": "98552147-4c35-baf8-4cee91c70ce4",
1048
+ "timestamp": "2026-03-20T09:47:37.122Z",
1049
+ "event_name": "Events::PostDebug",
1050
+ "severity": "debug",
1051
+ "version": 1,
1052
+ "trace_id": "8a81ada42834d15f287bb40010043605",
1053
+ "span_id": "2db51a42e3309c32",
1054
+ "service_name": "dummy",
1055
+ "environment": "development",
1056
+ "retention_until": "2027-03-20T09:47:37Z",
1057
+ "payload": {
1058
+ "message": " → CACHE /webhooks/stripe — 28.7ms"
1059
+ },
1060
+ "metadata": {
1061
+ "source": "web",
1062
+ "started_at": "2026-03-20T09:47:37.077Z",
1063
+ "request_id": "req-8a81ada4-18",
1064
+ "path": "/webhooks/stripe",
1065
+ "method": "POST",
1066
+ "controller": "Api::V1::MeController",
1067
+ "action": "show",
1068
+ "duration_ms": 2
1069
+ }
1070
+ },
1071
+ {
1072
+ "id": "ddf34d86-4d5c-ac07-c3408d3db138",
1073
+ "timestamp": "2026-03-20T09:47:37.109Z",
1074
+ "event_name": "Events::ApiRequest",
1075
+ "severity": "info",
1076
+ "version": 1,
1077
+ "trace_id": "8a81ada42834d15f287bb40010043605",
1078
+ "span_id": "38d32af640fed742",
1079
+ "service_name": "dummy",
1080
+ "environment": "development",
1081
+ "retention_until": "2027-03-20T09:47:37Z",
1082
+ "payload": {
1083
+ "endpoint": "POST /webhooks/stripe",
1084
+ "status": "ok",
1085
+ "http_status": 200
1086
+ },
1087
+ "metadata": {
1088
+ "source": "web",
1089
+ "started_at": "2026-03-20T09:47:37.077Z",
1090
+ "request_id": "req-8a81ada4-18",
1091
+ "path": "/webhooks/stripe",
1092
+ "method": "POST",
1093
+ "controller": "Api::V1::MeController",
1094
+ "action": "show",
1095
+ "duration_ms": 88
1096
+ }
1097
+ },
1098
+ {
1099
+ "id": "5f91331f-4309-85c9-ffd2a4dd276d",
1100
+ "timestamp": "2026-03-20T09:47:37.093Z",
1101
+ "event_name": "Events::LogInfo",
1102
+ "severity": "info",
1103
+ "version": 1,
1104
+ "trace_id": "8a81ada42834d15f287bb40010043605",
1105
+ "span_id": "86cdd8a168a2cd7b",
1106
+ "service_name": "dummy",
1107
+ "environment": "development",
1108
+ "retention_until": "2027-03-20T09:47:37Z",
1109
+ "payload": {
1110
+ "message": "Started POST \"/webhooks/stripe\" for ::1 at 2026-03-20 09:47:37 +0000",
1111
+ "level": "info"
1112
+ },
1113
+ "metadata": {
1114
+ "source": "web",
1115
+ "started_at": "2026-03-20T09:47:37.077Z",
1116
+ "request_id": "req-8a81ada4-18",
1117
+ "path": "/webhooks/stripe",
1118
+ "method": "POST",
1119
+ "controller": "Api::V1::MeController",
1120
+ "action": "show",
1121
+ "duration_ms": 0
1122
+ }
1123
+ },
1124
+ {
1125
+ "id": "8713ebf1-40c1-99f5-d3db7b289470",
1126
+ "timestamp": "2026-03-20T09:47:34.893Z",
1127
+ "event_name": "Events::LogInfo",
1128
+ "severity": "info",
1129
+ "version": 1,
1130
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1131
+ "span_id": "669868717f3c2cdd",
1132
+ "service_name": "dummy",
1133
+ "environment": "development",
1134
+ "retention_until": "2027-03-20T09:47:34Z",
1135
+ "payload": {
1136
+ "message": "Completed GET /orders in 689ms",
1137
+ "level": "info"
1138
+ },
1139
+ "metadata": {
1140
+ "source": "web",
1141
+ "started_at": "2026-03-20T09:47:34.807Z",
1142
+ "request_id": "req-e67e724b-17",
1143
+ "path": "/orders",
1144
+ "method": "GET",
1145
+ "controller": "GraphqlController",
1146
+ "action": "execute",
1147
+ "duration_ms": 186
1148
+ }
1149
+ },
1150
+ {
1151
+ "id": "35bc5f7a-43b7-a2d2-6d3d3484081f",
1152
+ "timestamp": "2026-03-20T09:47:34.878Z",
1153
+ "event_name": "Events::OrderCreated",
1154
+ "severity": "success",
1155
+ "version": 1,
1156
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1157
+ "span_id": "77de0a9d30d0e91c",
1158
+ "service_name": "dummy",
1159
+ "environment": "development",
1160
+ "retention_until": "2027-03-20T09:47:34Z",
1161
+ "payload": {
1162
+ "order_id": "ord_980879",
1163
+ "status": "pending_payment",
1164
+ "customer": {
1165
+ "id": 4525,
1166
+ "email": "[FILTERED]",
1167
+ "locale": "en"
1168
+ },
1169
+ "items": [
1170
+ {
1171
+ "sku": "SKU-576",
1172
+ "qty": 1,
1173
+ "unit_price": 238.2
1174
+ }
1175
+ ]
1176
+ },
1177
+ "metadata": {
1178
+ "source": "web",
1179
+ "started_at": "2026-03-20T09:47:34.807Z",
1180
+ "request_id": "req-e67e724b-17",
1181
+ "path": "/orders",
1182
+ "method": "GET",
1183
+ "controller": "GraphqlController",
1184
+ "action": "execute",
1185
+ "duration_ms": 40
1186
+ }
1187
+ },
1188
+ {
1189
+ "id": "6a24ce75-4155-b9db-543eff3326bc",
1190
+ "timestamp": "2026-03-20T09:47:34.864Z",
1191
+ "event_name": "Events::PostDebug",
1192
+ "severity": "debug",
1193
+ "version": 1,
1194
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1195
+ "span_id": "2f38f567808fda30",
1196
+ "service_name": "dummy",
1197
+ "environment": "development",
1198
+ "retention_until": "2027-03-20T09:47:34Z",
1199
+ "payload": {
1200
+ "message": " → Render — /orders id=9985"
1201
+ },
1202
+ "metadata": {
1203
+ "source": "web",
1204
+ "started_at": "2026-03-20T09:47:34.807Z",
1205
+ "request_id": "req-e67e724b-17",
1206
+ "path": "/orders",
1207
+ "method": "GET",
1208
+ "controller": "GraphqlController",
1209
+ "action": "execute",
1210
+ "duration_ms": 13
1211
+ }
1212
+ },
1213
+ {
1214
+ "id": "94a1703e-43ea-9295-4a99035a289b",
1215
+ "timestamp": "2026-03-20T09:47:34.853Z",
1216
+ "event_name": "Events::PostDebug",
1217
+ "severity": "debug",
1218
+ "version": 1,
1219
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1220
+ "span_id": "36723f71a9dd95d4",
1221
+ "service_name": "dummy",
1222
+ "environment": "development",
1223
+ "retention_until": "2027-03-20T09:47:34Z",
1224
+ "payload": {
1225
+ "message": " → CACHE — /orders id=4945"
1226
+ },
1227
+ "metadata": {
1228
+ "source": "web",
1229
+ "started_at": "2026-03-20T09:47:34.807Z",
1230
+ "request_id": "req-e67e724b-17",
1231
+ "path": "/orders",
1232
+ "method": "GET",
1233
+ "controller": "GraphqlController",
1234
+ "action": "execute",
1235
+ "duration_ms": 20
1236
+ }
1237
+ },
1238
+ {
1239
+ "id": "e9a9f2fa-44b2-84b5-b29793dfb018",
1240
+ "timestamp": "2026-03-20T09:47:34.841Z",
1241
+ "event_name": "Events::PostDebug",
1242
+ "severity": "debug",
1243
+ "version": 1,
1244
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1245
+ "span_id": "7f9507c62a5f14b3",
1246
+ "service_name": "dummy",
1247
+ "environment": "development",
1248
+ "retention_until": "2027-03-20T09:47:34Z",
1249
+ "payload": {
1250
+ "message": " → SQL — /orders id=19957"
1251
+ },
1252
+ "metadata": {
1253
+ "source": "web",
1254
+ "started_at": "2026-03-20T09:47:34.807Z",
1255
+ "request_id": "req-e67e724b-17",
1256
+ "path": "/orders",
1257
+ "method": "GET",
1258
+ "controller": "GraphqlController",
1259
+ "action": "execute",
1260
+ "duration_ms": 24
1261
+ }
1262
+ },
1263
+ {
1264
+ "id": "dd0f8659-484a-9f25-218177381f86",
1265
+ "timestamp": "2026-03-20T09:47:34.831Z",
1266
+ "event_name": "Events::ApiRequest",
1267
+ "severity": "info",
1268
+ "version": 1,
1269
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1270
+ "span_id": "58d1ecd17b1821da",
1271
+ "service_name": "dummy",
1272
+ "environment": "development",
1273
+ "retention_until": "2027-03-20T09:47:34Z",
1274
+ "payload": {
1275
+ "endpoint": "GET /orders",
1276
+ "status": "ok",
1277
+ "http_status": 200
1278
+ },
1279
+ "metadata": {
1280
+ "source": "web",
1281
+ "started_at": "2026-03-20T09:47:34.807Z",
1282
+ "request_id": "req-e67e724b-17",
1283
+ "path": "/orders",
1284
+ "method": "GET",
1285
+ "controller": "GraphqlController",
1286
+ "action": "execute",
1287
+ "duration_ms": 34
1288
+ }
1289
+ },
1290
+ {
1291
+ "id": "0e04dbc8-4534-bc88-e0c9cd87cdb3",
1292
+ "timestamp": "2026-03-20T09:47:34.820Z",
1293
+ "event_name": "Events::LogInfo",
1294
+ "severity": "info",
1295
+ "version": 1,
1296
+ "trace_id": "e67e724bab422d2b52eeb49635e512e1",
1297
+ "span_id": "c9ac9938012f9074",
1298
+ "service_name": "dummy",
1299
+ "environment": "development",
1300
+ "retention_until": "2027-03-20T09:47:34Z",
1301
+ "payload": {
1302
+ "message": "Started GET \"/orders\" for ::1 at 2026-03-20 09:47:34 +0000",
1303
+ "level": "info"
1304
+ },
1305
+ "metadata": {
1306
+ "source": "web",
1307
+ "started_at": "2026-03-20T09:47:34.807Z",
1308
+ "request_id": "req-e67e724b-17",
1309
+ "path": "/orders",
1310
+ "method": "GET",
1311
+ "controller": "GraphqlController",
1312
+ "action": "execute",
1313
+ "duration_ms": 1
1314
+ }
1315
+ },
1316
+ {
1317
+ "id": "3c645664-4d94-8d59-066d2fb2b9a3",
1318
+ "timestamp": "2026-03-20T09:47:33.983Z",
1319
+ "event_name": "Events::LogInfo",
1320
+ "severity": "info",
1321
+ "version": 1,
1322
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1323
+ "span_id": "1fe9e4b5d665cbd6",
1324
+ "service_name": "dummy",
1325
+ "environment": "development",
1326
+ "retention_until": "2027-03-20T09:47:33Z",
1327
+ "payload": {
1328
+ "message": "Completed GET /orders/new in 836ms",
1329
+ "level": "info"
1330
+ },
1331
+ "metadata": {
1332
+ "source": "web",
1333
+ "started_at": "2026-03-20T09:47:33.891Z",
1334
+ "request_id": "req-6daf0d47-16",
1335
+ "path": "/orders/new",
1336
+ "method": "GET",
1337
+ "controller": "Admin::UsersController",
1338
+ "action": "index",
1339
+ "duration_ms": 8
1340
+ }
1341
+ },
1342
+ {
1343
+ "id": "b50d9747-407e-8c69-6bf09387a25b",
1344
+ "timestamp": "2026-03-20T09:47:33.972Z",
1345
+ "event_name": "Events::OrderCreated",
1346
+ "severity": "success",
1347
+ "version": 1,
1348
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1349
+ "span_id": "5fdaff1e9b51ad79",
1350
+ "service_name": "dummy",
1351
+ "environment": "development",
1352
+ "retention_until": "2027-03-20T09:47:33Z",
1353
+ "payload": {
1354
+ "order_id": "ord_845634",
1355
+ "status": "pending_payment",
1356
+ "customer": {
1357
+ "id": 5110,
1358
+ "email": "[FILTERED]",
1359
+ "locale": "en"
1360
+ },
1361
+ "items": [
1362
+ {
1363
+ "sku": "SKU-150",
1364
+ "qty": 1,
1365
+ "unit_price": 368.8
1366
+ }
1367
+ ]
1368
+ },
1369
+ "metadata": {
1370
+ "source": "web",
1371
+ "started_at": "2026-03-20T09:47:33.891Z",
1372
+ "request_id": "req-6daf0d47-16",
1373
+ "path": "/orders/new",
1374
+ "method": "GET",
1375
+ "controller": "Admin::UsersController",
1376
+ "action": "index",
1377
+ "duration_ms": 40
1378
+ }
1379
+ },
1380
+ {
1381
+ "id": "418a3be0-4e6e-a667-833b97cc6aaa",
1382
+ "timestamp": "2026-03-20T09:47:33.957Z",
1383
+ "event_name": "Events::PostDebug",
1384
+ "severity": "debug",
1385
+ "version": 1,
1386
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1387
+ "span_id": "ee9f4dcb1a2a9beb",
1388
+ "service_name": "dummy",
1389
+ "environment": "development",
1390
+ "retention_until": "2027-03-20T09:47:33Z",
1391
+ "payload": {
1392
+ "message": " → N+1 — /orders/new id=15344"
1393
+ },
1394
+ "metadata": {
1395
+ "source": "web",
1396
+ "started_at": "2026-03-20T09:47:33.891Z",
1397
+ "request_id": "req-6daf0d47-16",
1398
+ "path": "/orders/new",
1399
+ "method": "GET",
1400
+ "controller": "Admin::UsersController",
1401
+ "action": "index",
1402
+ "duration_ms": 4
1403
+ }
1404
+ },
1405
+ {
1406
+ "id": "669e32c7-4816-832e-c159f281292d",
1407
+ "timestamp": "2026-03-20T09:47:33.946Z",
1408
+ "event_name": "Events::PostDebug",
1409
+ "severity": "debug",
1410
+ "version": 1,
1411
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1412
+ "span_id": "9d6d616a2742098b",
1413
+ "service_name": "dummy",
1414
+ "environment": "development",
1415
+ "retention_until": "2027-03-20T09:47:33Z",
1416
+ "payload": {
1417
+ "message": " → SQL — /orders/new id=10381"
1418
+ },
1419
+ "metadata": {
1420
+ "source": "web",
1421
+ "started_at": "2026-03-20T09:47:33.891Z",
1422
+ "request_id": "req-6daf0d47-16",
1423
+ "path": "/orders/new",
1424
+ "method": "GET",
1425
+ "controller": "Admin::UsersController",
1426
+ "action": "index",
1427
+ "duration_ms": 8
1428
+ }
1429
+ },
1430
+ {
1431
+ "id": "b1a69af2-47a3-bd23-83194075e72a",
1432
+ "timestamp": "2026-03-20T09:47:33.933Z",
1433
+ "event_name": "Events::PostDebug",
1434
+ "severity": "debug",
1435
+ "version": 1,
1436
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1437
+ "span_id": "9959fd1a587f8844",
1438
+ "service_name": "dummy",
1439
+ "environment": "development",
1440
+ "retention_until": "2027-03-20T09:47:33Z",
1441
+ "payload": {
1442
+ "message": " → N+1 — /orders/new id=12299"
1443
+ },
1444
+ "metadata": {
1445
+ "source": "web",
1446
+ "started_at": "2026-03-20T09:47:33.891Z",
1447
+ "request_id": "req-6daf0d47-16",
1448
+ "path": "/orders/new",
1449
+ "method": "GET",
1450
+ "controller": "Admin::UsersController",
1451
+ "action": "index",
1452
+ "duration_ms": 10
1453
+ }
1454
+ },
1455
+ {
1456
+ "id": "8095f80e-4c9c-8e87-fd047c81ec9c",
1457
+ "timestamp": "2026-03-20T09:47:33.919Z",
1458
+ "event_name": "Events::ApiRequest",
1459
+ "severity": "info",
1460
+ "version": 1,
1461
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1462
+ "span_id": "3ab0382e68b14943",
1463
+ "service_name": "dummy",
1464
+ "environment": "development",
1465
+ "retention_until": "2027-03-20T09:47:33Z",
1466
+ "payload": {
1467
+ "endpoint": "GET /orders/new",
1468
+ "status": "ok",
1469
+ "http_status": 200
1470
+ },
1471
+ "metadata": {
1472
+ "source": "web",
1473
+ "started_at": "2026-03-20T09:47:33.891Z",
1474
+ "request_id": "req-6daf0d47-16",
1475
+ "path": "/orders/new",
1476
+ "method": "GET",
1477
+ "controller": "Admin::UsersController",
1478
+ "action": "index",
1479
+ "duration_ms": 76
1480
+ }
1481
+ },
1482
+ {
1483
+ "id": "e073b67a-4749-ab60-b475d23deb25",
1484
+ "timestamp": "2026-03-20T09:47:33.906Z",
1485
+ "event_name": "Events::LogInfo",
1486
+ "severity": "info",
1487
+ "version": 1,
1488
+ "trace_id": "6daf0d47974bedfc55d5de7004a3ea9f",
1489
+ "span_id": "8956d78c1c525c9e",
1490
+ "service_name": "dummy",
1491
+ "environment": "development",
1492
+ "retention_until": "2027-03-20T09:47:33Z",
1493
+ "payload": {
1494
+ "message": "Started GET \"/orders/new\" for ::1 at 2026-03-20 09:47:33 +0000",
1495
+ "level": "info"
1496
+ },
1497
+ "metadata": {
1498
+ "source": "web",
1499
+ "started_at": "2026-03-20T09:47:33.891Z",
1500
+ "request_id": "req-6daf0d47-16",
1501
+ "path": "/orders/new",
1502
+ "method": "GET",
1503
+ "controller": "Admin::UsersController",
1504
+ "action": "index",
1505
+ "duration_ms": 2
1506
+ }
1507
+ },
1508
+ {
1509
+ "id": "92ba039a-41a3-889c-2a25c09d7db8",
1510
+ "timestamp": "2026-03-20T09:47:32.364Z",
1511
+ "event_name": "Events::LogInfo",
1512
+ "severity": "info",
1513
+ "version": 1,
1514
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1515
+ "span_id": "4fcd0460b4fcabfc",
1516
+ "service_name": "dummy",
1517
+ "environment": "development",
1518
+ "retention_until": "2027-03-20T09:47:32Z",
1519
+ "payload": {
1520
+ "message": "Completed POST /webhooks/stripe in 422ms",
1521
+ "level": "info"
1522
+ },
1523
+ "metadata": {
1524
+ "source": "web",
1525
+ "started_at": "2026-03-20T09:47:32.265Z",
1526
+ "request_id": "req-99e35f8e-15",
1527
+ "path": "/webhooks/stripe",
1528
+ "method": "POST",
1529
+ "controller": "Admin::UsersController",
1530
+ "action": "index",
1531
+ "duration_ms": 190
1532
+ }
1533
+ },
1534
+ {
1535
+ "id": "110df334-4e67-a867-0fb28af82c26",
1536
+ "timestamp": "2026-03-20T09:47:32.350Z",
1537
+ "event_name": "Events::OrderCreated",
1538
+ "severity": "success",
1539
+ "version": 1,
1540
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1541
+ "span_id": "1ded07b26e78a0c5",
1542
+ "service_name": "dummy",
1543
+ "environment": "development",
1544
+ "retention_until": "2027-03-20T09:47:32Z",
1545
+ "payload": {
1546
+ "order_id": "ord_944119",
1547
+ "status": "completed",
1548
+ "customer": {
1549
+ "id": 1203,
1550
+ "email": "[FILTERED]",
1551
+ "locale": "en"
1552
+ },
1553
+ "items": [
1554
+ {
1555
+ "sku": "SKU-653",
1556
+ "qty": 1,
1557
+ "unit_price": 73.8
1558
+ }
1559
+ ]
1560
+ },
1561
+ "metadata": {
1562
+ "source": "web",
1563
+ "started_at": "2026-03-20T09:47:32.265Z",
1564
+ "request_id": "req-99e35f8e-15",
1565
+ "path": "/webhooks/stripe",
1566
+ "method": "POST",
1567
+ "controller": "Admin::UsersController",
1568
+ "action": "index",
1569
+ "duration_ms": 15
1570
+ }
1571
+ },
1572
+ {
1573
+ "id": "4d2719a5-4760-9416-923e80b2488e",
1574
+ "timestamp": "2026-03-20T09:47:32.337Z",
1575
+ "event_name": "Events::PostDebug",
1576
+ "severity": "debug",
1577
+ "version": 1,
1578
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1579
+ "span_id": "93d623e03b724a98",
1580
+ "service_name": "dummy",
1581
+ "environment": "development",
1582
+ "retention_until": "2027-03-20T09:47:32Z",
1583
+ "payload": {
1584
+ "message": " → CACHE — /webhooks/stripe id=34017"
1585
+ },
1586
+ "metadata": {
1587
+ "source": "web",
1588
+ "started_at": "2026-03-20T09:47:32.265Z",
1589
+ "request_id": "req-99e35f8e-15",
1590
+ "path": "/webhooks/stripe",
1591
+ "method": "POST",
1592
+ "controller": "Admin::UsersController",
1593
+ "action": "index",
1594
+ "duration_ms": 15
1595
+ }
1596
+ },
1597
+ {
1598
+ "id": "50f24258-46ec-8429-4858aed7e991",
1599
+ "timestamp": "2026-03-20T09:47:32.324Z",
1600
+ "event_name": "Events::PostDebug",
1601
+ "severity": "debug",
1602
+ "version": 1,
1603
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1604
+ "span_id": "d10ca92773b2e747",
1605
+ "service_name": "dummy",
1606
+ "environment": "development",
1607
+ "retention_until": "2027-03-20T09:47:32Z",
1608
+ "payload": {
1609
+ "message": " → Render — /webhooks/stripe id=29288"
1610
+ },
1611
+ "metadata": {
1612
+ "source": "web",
1613
+ "started_at": "2026-03-20T09:47:32.265Z",
1614
+ "request_id": "req-99e35f8e-15",
1615
+ "path": "/webhooks/stripe",
1616
+ "method": "POST",
1617
+ "controller": "Admin::UsersController",
1618
+ "action": "index",
1619
+ "duration_ms": 14
1620
+ }
1621
+ },
1622
+ {
1623
+ "id": "339dd90d-473b-9b1d-e5222a0d52d4",
1624
+ "timestamp": "2026-03-20T09:47:32.308Z",
1625
+ "event_name": "Events::PostDebug",
1626
+ "severity": "debug",
1627
+ "version": 1,
1628
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1629
+ "span_id": "2fb83ca4d087f804",
1630
+ "service_name": "dummy",
1631
+ "environment": "development",
1632
+ "retention_until": "2027-03-20T09:47:32Z",
1633
+ "payload": {
1634
+ "message": " → Render — /webhooks/stripe id=23931"
1635
+ },
1636
+ "metadata": {
1637
+ "source": "web",
1638
+ "started_at": "2026-03-20T09:47:32.265Z",
1639
+ "request_id": "req-99e35f8e-15",
1640
+ "path": "/webhooks/stripe",
1641
+ "method": "POST",
1642
+ "controller": "Admin::UsersController",
1643
+ "action": "index",
1644
+ "duration_ms": 14
1645
+ }
1646
+ },
1647
+ {
1648
+ "id": "2e654a4b-4fe2-a622-ca00bdba1527",
1649
+ "timestamp": "2026-03-20T09:47:32.294Z",
1650
+ "event_name": "Events::ApiRequest",
1651
+ "severity": "info",
1652
+ "version": 1,
1653
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1654
+ "span_id": "b8ba8d3f9310ab95",
1655
+ "service_name": "dummy",
1656
+ "environment": "development",
1657
+ "retention_until": "2027-03-20T09:47:32Z",
1658
+ "payload": {
1659
+ "endpoint": "POST /webhooks/stripe",
1660
+ "status": "ok",
1661
+ "http_status": 200
1662
+ },
1663
+ "metadata": {
1664
+ "source": "web",
1665
+ "started_at": "2026-03-20T09:47:32.265Z",
1666
+ "request_id": "req-99e35f8e-15",
1667
+ "path": "/webhooks/stripe",
1668
+ "method": "POST",
1669
+ "controller": "Admin::UsersController",
1670
+ "action": "index",
1671
+ "duration_ms": 60
1672
+ }
1673
+ },
1674
+ {
1675
+ "id": "1b50a45e-4f30-8644-793dbef82fbb",
1676
+ "timestamp": "2026-03-20T09:47:32.279Z",
1677
+ "event_name": "Events::LogInfo",
1678
+ "severity": "info",
1679
+ "version": 1,
1680
+ "trace_id": "99e35f8ef3baedd798cc4fd085980ad9",
1681
+ "span_id": "f70c00eb6894a7b1",
1682
+ "service_name": "dummy",
1683
+ "environment": "development",
1684
+ "retention_until": "2027-03-20T09:47:32Z",
1685
+ "payload": {
1686
+ "message": "Started POST \"/webhooks/stripe\" for ::1 at 2026-03-20 09:47:32 +0000",
1687
+ "level": "info"
1688
+ },
1689
+ "metadata": {
1690
+ "source": "web",
1691
+ "started_at": "2026-03-20T09:47:32.265Z",
1692
+ "request_id": "req-99e35f8e-15",
1693
+ "path": "/webhooks/stripe",
1694
+ "method": "POST",
1695
+ "controller": "Admin::UsersController",
1696
+ "action": "index",
1697
+ "duration_ms": 1
1698
+ }
1699
+ },
1700
+ {
1701
+ "id": "fd6e08ab-4b81-880c-14a7cf53ee81",
1702
+ "timestamp": "2026-03-20T09:47:31.057Z",
1703
+ "event_name": "Events::ReportExportCompleted",
1704
+ "severity": "fatal",
1705
+ "version": 1,
1706
+ "trace_id": "0a2e04027cfa22d014bc22e8b27cd913",
1707
+ "span_id": "167e865341302140",
1708
+ "service_name": "dummy",
1709
+ "environment": "development",
1710
+ "retention_until": "2027-03-20T09:47:31Z",
1711
+ "payload": {
1712
+ "report_id": 2342,
1713
+ "error": "No space left on device",
1714
+ "exception": {
1715
+ "class": "Errno::ENOSPC",
1716
+ "message": "No space left on device @ rb_sysopen",
1717
+ "backtrace": [
1718
+ "app/jobs/search_index_job.rb:120:in `perform'",
1719
+ "activejob (6.0.0) lib/active_job/execution.rb:68:in `perform_now'"
1720
+ ]
1721
+ }
1722
+ },
1723
+ "metadata": {
1724
+ "source": "job",
1725
+ "started_at": "2026-03-20T09:47:29.920Z",
1726
+ "duration_ms": 262
1727
+ }
1728
+ },
1729
+ {
1730
+ "id": "8190077d-408a-bdfe-ff6352159b4c",
1731
+ "timestamp": "2026-03-20T09:47:30.494Z",
1732
+ "event_name": "Events::ReportCreated",
1733
+ "severity": "info",
1734
+ "version": 1,
1735
+ "trace_id": "0a2e04027cfa22d014bc22e8b27cd913",
1736
+ "span_id": "8857c7ea9808b902",
1737
+ "service_name": "dummy",
1738
+ "environment": "development",
1739
+ "retention_until": "2027-03-20T09:47:30Z",
1740
+ "payload": {
1741
+ "title": "Export batch 4744",
1742
+ "description": "Queued by SearchIndexJob",
1743
+ "employee_ids": [
1744
+ 134,
1745
+ 178
1746
+ ],
1747
+ "author": "system"
1748
+ },
1749
+ "metadata": {
1750
+ "source": "job",
1751
+ "started_at": "2026-03-20T09:47:29.920Z",
1752
+ "duration_ms": 806
1753
+ }
1754
+ },
1755
+ {
1756
+ "id": "b600fb43-4712-a2d3-c0e0bc7ab213",
1757
+ "timestamp": "2026-03-20T09:47:29.935Z",
1758
+ "event_name": "Events::BackgroundJobStarted",
1759
+ "severity": "info",
1760
+ "version": 1,
1761
+ "trace_id": "0a2e04027cfa22d014bc22e8b27cd913",
1762
+ "span_id": "3e0e907087a3988b",
1763
+ "service_name": "dummy",
1764
+ "environment": "development",
1765
+ "retention_until": "2027-03-20T09:47:29Z",
1766
+ "payload": {
1767
+ "job_class": "SearchIndexJob",
1768
+ "job_id": "92553587-4c19-b5b2-58acc4fd7d2b",
1769
+ "queue": "low",
1770
+ "arguments": [
1771
+ {
1772
+ "batch_id": 67585,
1773
+ "shard": 9
1774
+ }
1775
+ ],
1776
+ "enqueued_at": "2026-03-20T09:47:28.920Z"
1777
+ },
1778
+ "metadata": {
1779
+ "source": "job",
1780
+ "started_at": "2026-03-20T09:47:29.920Z",
1781
+ "duration_ms": 119
1782
+ }
1783
+ },
1784
+ {
1785
+ "id": "dd91e003-474e-a285-00754205eb70",
1786
+ "timestamp": "2026-03-20T09:47:28.817Z",
1787
+ "event_name": "Events::LogInfo",
1788
+ "severity": "info",
1789
+ "version": 1,
1790
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1791
+ "span_id": "7da1b65d2bbf49f7",
1792
+ "service_name": "dummy",
1793
+ "environment": "development",
1794
+ "retention_until": "2027-03-20T09:47:28Z",
1795
+ "payload": {
1796
+ "message": "Completed GET /sidekiq/busy in 585ms",
1797
+ "level": "info"
1798
+ },
1799
+ "metadata": {
1800
+ "source": "web",
1801
+ "started_at": "2026-03-20T09:47:28.725Z",
1802
+ "request_id": "req-9997ddd0-13",
1803
+ "path": "/sidekiq/busy",
1804
+ "method": "GET",
1805
+ "controller": "Webhooks::StripeController",
1806
+ "action": "create",
1807
+ "duration_ms": 192
1808
+ }
1809
+ },
1810
+ {
1811
+ "id": "0d37fb82-40f2-8a1e-c427b26c10e4",
1812
+ "timestamp": "2026-03-20T09:47:28.801Z",
1813
+ "event_name": "Events::PaymentFailed",
1814
+ "severity": "error",
1815
+ "version": 1,
1816
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1817
+ "span_id": "fb7d2a23ff4c2397",
1818
+ "service_name": "dummy",
1819
+ "environment": "development",
1820
+ "retention_until": "2027-03-20T09:47:28Z",
1821
+ "payload": {
1822
+ "order_id": "ord_853500",
1823
+ "amount": 64.9,
1824
+ "gateway": "stripe",
1825
+ "decline_code": "expired_card"
1826
+ },
1827
+ "metadata": {
1828
+ "source": "web",
1829
+ "started_at": "2026-03-20T09:47:28.725Z",
1830
+ "request_id": "req-9997ddd0-13",
1831
+ "path": "/sidekiq/busy",
1832
+ "method": "GET",
1833
+ "controller": "Webhooks::StripeController",
1834
+ "action": "create",
1835
+ "duration_ms": 84
1836
+ }
1837
+ },
1838
+ {
1839
+ "id": "3cbae520-45b4-aa95-69142721c6c5",
1840
+ "timestamp": "2026-03-20T09:47:28.786Z",
1841
+ "event_name": "Events::OrderCreated",
1842
+ "severity": "success",
1843
+ "version": 1,
1844
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1845
+ "span_id": "5d8806453ef715f6",
1846
+ "service_name": "dummy",
1847
+ "environment": "development",
1848
+ "retention_until": "2027-03-20T09:47:28Z",
1849
+ "payload": {
1850
+ "order_id": "ord_853500",
1851
+ "status": "completed",
1852
+ "customer": {
1853
+ "id": 6987,
1854
+ "email": "[FILTERED]",
1855
+ "locale": "en"
1856
+ },
1857
+ "items": [
1858
+ {
1859
+ "sku": "SKU-545",
1860
+ "qty": 1,
1861
+ "unit_price": 145.84
1862
+ }
1863
+ ]
1864
+ },
1865
+ "metadata": {
1866
+ "source": "web",
1867
+ "started_at": "2026-03-20T09:47:28.725Z",
1868
+ "request_id": "req-9997ddd0-13",
1869
+ "path": "/sidekiq/busy",
1870
+ "method": "GET",
1871
+ "controller": "Webhooks::StripeController",
1872
+ "action": "create",
1873
+ "duration_ms": 95
1874
+ }
1875
+ },
1876
+ {
1877
+ "id": "60f73e29-49a8-aa64-f605e64f4ab3",
1878
+ "timestamp": "2026-03-20T09:47:28.772Z",
1879
+ "event_name": "Events::PostDebug",
1880
+ "severity": "debug",
1881
+ "version": 1,
1882
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1883
+ "span_id": "a55ad5199b88bd3f",
1884
+ "service_name": "dummy",
1885
+ "environment": "development",
1886
+ "retention_until": "2027-03-20T09:47:28Z",
1887
+ "payload": {
1888
+ "message": " → SQL — /sidekiq/busy id=10168"
1889
+ },
1890
+ "metadata": {
1891
+ "source": "web",
1892
+ "started_at": "2026-03-20T09:47:28.725Z",
1893
+ "request_id": "req-9997ddd0-13",
1894
+ "path": "/sidekiq/busy",
1895
+ "method": "GET",
1896
+ "controller": "Webhooks::StripeController",
1897
+ "action": "create",
1898
+ "duration_ms": 13
1899
+ }
1900
+ },
1901
+ {
1902
+ "id": "5ae81d89-4042-80e8-e86c7ac5e491",
1903
+ "timestamp": "2026-03-20T09:47:28.759Z",
1904
+ "event_name": "Events::PostDebug",
1905
+ "severity": "debug",
1906
+ "version": 1,
1907
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1908
+ "span_id": "1640686e958e18e3",
1909
+ "service_name": "dummy",
1910
+ "environment": "development",
1911
+ "retention_until": "2027-03-20T09:47:28Z",
1912
+ "payload": {
1913
+ "message": " → Render /sidekiq/busy — 22.1ms"
1914
+ },
1915
+ "metadata": {
1916
+ "source": "web",
1917
+ "started_at": "2026-03-20T09:47:28.725Z",
1918
+ "request_id": "req-9997ddd0-13",
1919
+ "path": "/sidekiq/busy",
1920
+ "method": "GET",
1921
+ "controller": "Webhooks::StripeController",
1922
+ "action": "create",
1923
+ "duration_ms": 7
1924
+ }
1925
+ },
1926
+ {
1927
+ "id": "d738c510-44e6-9855-ddd9890bc07d",
1928
+ "timestamp": "2026-03-20T09:47:28.746Z",
1929
+ "event_name": "Events::ApiRequest",
1930
+ "severity": "info",
1931
+ "version": 1,
1932
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1933
+ "span_id": "1ea8bb2b3bb41218",
1934
+ "service_name": "dummy",
1935
+ "environment": "development",
1936
+ "retention_until": "2027-03-20T09:47:28Z",
1937
+ "payload": {
1938
+ "endpoint": "GET /sidekiq/busy",
1939
+ "status": "ok",
1940
+ "http_status": 200
1941
+ },
1942
+ "metadata": {
1943
+ "source": "web",
1944
+ "started_at": "2026-03-20T09:47:28.725Z",
1945
+ "request_id": "req-9997ddd0-13",
1946
+ "path": "/sidekiq/busy",
1947
+ "method": "GET",
1948
+ "controller": "Webhooks::StripeController",
1949
+ "action": "create",
1950
+ "duration_ms": 17
1951
+ }
1952
+ },
1953
+ {
1954
+ "id": "72899df9-4b25-9ae2-87723e128c0e",
1955
+ "timestamp": "2026-03-20T09:47:28.735Z",
1956
+ "event_name": "Events::LogInfo",
1957
+ "severity": "info",
1958
+ "version": 1,
1959
+ "trace_id": "9997ddd0247bc7e25f2ca7a5c415c93d",
1960
+ "span_id": "1ad8b4bf44ed1fd8",
1961
+ "service_name": "dummy",
1962
+ "environment": "development",
1963
+ "retention_until": "2027-03-20T09:47:28Z",
1964
+ "payload": {
1965
+ "message": "Started GET \"/sidekiq/busy\" for ::1 at 2026-03-20 09:47:28 +0000",
1966
+ "level": "info"
1967
+ },
1968
+ "metadata": {
1969
+ "source": "web",
1970
+ "started_at": "2026-03-20T09:47:28.725Z",
1971
+ "request_id": "req-9997ddd0-13",
1972
+ "path": "/sidekiq/busy",
1973
+ "method": "GET",
1974
+ "controller": "Webhooks::StripeController",
1975
+ "action": "create",
1976
+ "duration_ms": 2
1977
+ }
1978
+ },
1979
+ {
1980
+ "id": "7668acd7-4d81-816c-9a990964120d",
1981
+ "timestamp": "2026-03-20T09:47:27.532Z",
1982
+ "event_name": "Events::LogInfo",
1983
+ "severity": "info",
1984
+ "version": 1,
1985
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
1986
+ "span_id": "25d23aba409fb537",
1987
+ "service_name": "dummy",
1988
+ "environment": "development",
1989
+ "retention_until": "2027-03-20T09:47:27Z",
1990
+ "payload": {
1991
+ "message": "Completed GET /sidekiq/busy in 18ms",
1992
+ "level": "info"
1993
+ },
1994
+ "metadata": {
1995
+ "source": "web",
1996
+ "started_at": "2026-03-20T09:47:27.457Z",
1997
+ "request_id": "req-c0b48033-12",
1998
+ "path": "/sidekiq/busy",
1999
+ "method": "GET",
2000
+ "controller": "OrdersController",
2001
+ "action": "create",
2002
+ "duration_ms": 10
2003
+ }
2004
+ },
2005
+ {
2006
+ "id": "14ee28ee-4437-995d-b06aebbe4b3e",
2007
+ "timestamp": "2026-03-20T09:47:27.519Z",
2008
+ "event_name": "Events::OrderCreated",
2009
+ "severity": "success",
2010
+ "version": 1,
2011
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
2012
+ "span_id": "6095d02f0fa2ce3c",
2013
+ "service_name": "dummy",
2014
+ "environment": "development",
2015
+ "retention_until": "2027-03-20T09:47:27Z",
2016
+ "payload": {
2017
+ "order_id": "ord_667376",
2018
+ "status": "pending_payment",
2019
+ "customer": {
2020
+ "id": 1277,
2021
+ "email": "[FILTERED]",
2022
+ "locale": "en"
2023
+ },
2024
+ "items": [
2025
+ {
2026
+ "sku": "SKU-791",
2027
+ "qty": 1,
2028
+ "unit_price": 108.42
2029
+ }
2030
+ ]
2031
+ },
2032
+ "metadata": {
2033
+ "source": "web",
2034
+ "started_at": "2026-03-20T09:47:27.457Z",
2035
+ "request_id": "req-c0b48033-12",
2036
+ "path": "/sidekiq/busy",
2037
+ "method": "GET",
2038
+ "controller": "OrdersController",
2039
+ "action": "create",
2040
+ "duration_ms": 56
2041
+ }
2042
+ },
2043
+ {
2044
+ "id": "e4eb6c2d-4a21-a7b0-f44d548166d9",
2045
+ "timestamp": "2026-03-20T09:47:27.506Z",
2046
+ "event_name": "Events::PostDebug",
2047
+ "severity": "debug",
2048
+ "version": 1,
2049
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
2050
+ "span_id": "b0bdb72c52533f9a",
2051
+ "service_name": "dummy",
2052
+ "environment": "development",
2053
+ "retention_until": "2027-03-20T09:47:27Z",
2054
+ "payload": {
2055
+ "message": " → CACHE — /sidekiq/busy id=23322"
2056
+ },
2057
+ "metadata": {
2058
+ "source": "web",
2059
+ "started_at": "2026-03-20T09:47:27.457Z",
2060
+ "request_id": "req-c0b48033-12",
2061
+ "path": "/sidekiq/busy",
2062
+ "method": "GET",
2063
+ "controller": "OrdersController",
2064
+ "action": "create",
2065
+ "duration_ms": 25
2066
+ }
2067
+ },
2068
+ {
2069
+ "id": "0a765d92-4f14-9404-55d14751b25b",
2070
+ "timestamp": "2026-03-20T09:47:27.494Z",
2071
+ "event_name": "Events::PostDebug",
2072
+ "severity": "debug",
2073
+ "version": 1,
2074
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
2075
+ "span_id": "58fd92a92d508f3c",
2076
+ "service_name": "dummy",
2077
+ "environment": "development",
2078
+ "retention_until": "2027-03-20T09:47:27Z",
2079
+ "payload": {
2080
+ "message": " → SQL /sidekiq/busy — 21.5ms"
2081
+ },
2082
+ "metadata": {
2083
+ "source": "web",
2084
+ "started_at": "2026-03-20T09:47:27.457Z",
2085
+ "request_id": "req-c0b48033-12",
2086
+ "path": "/sidekiq/busy",
2087
+ "method": "GET",
2088
+ "controller": "OrdersController",
2089
+ "action": "create",
2090
+ "duration_ms": 1
2091
+ }
2092
+ },
2093
+ {
2094
+ "id": "587da6b7-4118-acc2-475f79558cc2",
2095
+ "timestamp": "2026-03-20T09:47:27.482Z",
2096
+ "event_name": "Events::ApiRequest",
2097
+ "severity": "info",
2098
+ "version": 1,
2099
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
2100
+ "span_id": "83e6829aaae5105c",
2101
+ "service_name": "dummy",
2102
+ "environment": "development",
2103
+ "retention_until": "2027-03-20T09:47:27Z",
2104
+ "payload": {
2105
+ "endpoint": "GET /sidekiq/busy",
2106
+ "status": "ok",
2107
+ "http_status": 200
2108
+ },
2109
+ "metadata": {
2110
+ "source": "web",
2111
+ "started_at": "2026-03-20T09:47:27.457Z",
2112
+ "request_id": "req-c0b48033-12",
2113
+ "path": "/sidekiq/busy",
2114
+ "method": "GET",
2115
+ "controller": "OrdersController",
2116
+ "action": "create",
2117
+ "duration_ms": 32
2118
+ }
2119
+ },
2120
+ {
2121
+ "id": "898a186e-42f8-9e96-9cb695b33b4f",
2122
+ "timestamp": "2026-03-20T09:47:27.469Z",
2123
+ "event_name": "Events::LogInfo",
2124
+ "severity": "info",
2125
+ "version": 1,
2126
+ "trace_id": "c0b48033fa06746bcc5886745e053cff",
2127
+ "span_id": "26e3185e667a17ca",
2128
+ "service_name": "dummy",
2129
+ "environment": "development",
2130
+ "retention_until": "2027-03-20T09:47:27Z",
2131
+ "payload": {
2132
+ "message": "Started GET \"/sidekiq/busy\" for ::1 at 2026-03-20 09:47:27 +0000",
2133
+ "level": "info"
2134
+ },
2135
+ "metadata": {
2136
+ "source": "web",
2137
+ "started_at": "2026-03-20T09:47:27.457Z",
2138
+ "request_id": "req-c0b48033-12",
2139
+ "path": "/sidekiq/busy",
2140
+ "method": "GET",
2141
+ "controller": "OrdersController",
2142
+ "action": "create",
2143
+ "duration_ms": 1
2144
+ }
2145
+ },
2146
+ {
2147
+ "id": "25a69b83-4089-98b7-4d907dfb5549",
2148
+ "timestamp": "2026-03-20T09:47:25.701Z",
2149
+ "event_name": "Events::LogInfo",
2150
+ "severity": "info",
2151
+ "version": 1,
2152
+ "trace_id": "435bfd8f17b9009146a79812d7c3726d",
2153
+ "span_id": "c4d7cb10421c4dfb",
2154
+ "service_name": "dummy",
2155
+ "environment": "development",
2156
+ "retention_until": "2027-03-20T09:47:25Z",
2157
+ "payload": {
2158
+ "message": "Completed GET /orders/new in 863ms",
2159
+ "level": "info"
2160
+ },
2161
+ "metadata": {
2162
+ "source": "web",
2163
+ "started_at": "2026-03-20T09:47:25.634Z",
2164
+ "request_id": "req-435bfd8f-11",
2165
+ "path": "/orders/new",
2166
+ "method": "GET",
2167
+ "controller": "Admin::UsersController",
2168
+ "action": "index",
2169
+ "duration_ms": 76
2170
+ }
2171
+ },
2172
+ {
2173
+ "id": "a2fb1f51-4b1d-a54e-5b5a174be9b2",
2174
+ "timestamp": "2026-03-20T09:47:25.685Z",
2175
+ "event_name": "Events::OrderCreated",
2176
+ "severity": "success",
2177
+ "version": 1,
2178
+ "trace_id": "435bfd8f17b9009146a79812d7c3726d",
2179
+ "span_id": "e776f1beb9f527e1",
2180
+ "service_name": "dummy",
2181
+ "environment": "development",
2182
+ "retention_until": "2027-03-20T09:47:25Z",
2183
+ "payload": {
2184
+ "order_id": "ord_201153",
2185
+ "status": "pending_payment",
2186
+ "customer": {
2187
+ "id": 4262,
2188
+ "email": "[FILTERED]",
2189
+ "locale": "en"
2190
+ },
2191
+ "items": [
2192
+ {
2193
+ "sku": "SKU-580",
2194
+ "qty": 1,
2195
+ "unit_price": 392.12
2196
+ }
2197
+ ]
2198
+ },
2199
+ "metadata": {
2200
+ "source": "web",
2201
+ "started_at": "2026-03-20T09:47:25.634Z",
2202
+ "request_id": "req-435bfd8f-11",
2203
+ "path": "/orders/new",
2204
+ "method": "GET",
2205
+ "controller": "Admin::UsersController",
2206
+ "action": "index",
2207
+ "duration_ms": 30
2208
+ }
2209
+ },
2210
+ {
2211
+ "id": "075e4d2e-4b96-acce-04e49ecc9b54",
2212
+ "timestamp": "2026-03-20T09:47:25.671Z",
2213
+ "event_name": "Events::PostDebug",
2214
+ "severity": "debug",
2215
+ "version": 1,
2216
+ "trace_id": "435bfd8f17b9009146a79812d7c3726d",
2217
+ "span_id": "a3ad2f8db43e9241",
2218
+ "service_name": "dummy",
2219
+ "environment": "development",
2220
+ "retention_until": "2027-03-20T09:47:25Z",
2221
+ "payload": {
2222
+ "message": " → Render — /orders/new id=15782"
2223
+ },
2224
+ "metadata": {
2225
+ "source": "web",
2226
+ "started_at": "2026-03-20T09:47:25.634Z",
2227
+ "request_id": "req-435bfd8f-11",
2228
+ "path": "/orders/new",
2229
+ "method": "GET",
2230
+ "controller": "Admin::UsersController",
2231
+ "action": "index",
2232
+ "duration_ms": 2
2233
+ }
2234
+ },
2235
+ {
2236
+ "id": "4eca7d31-410b-a7c0-c435f7cd20eb",
2237
+ "timestamp": "2026-03-20T09:47:25.660Z",
2238
+ "event_name": "Events::ApiRequest",
2239
+ "severity": "info",
2240
+ "version": 1,
2241
+ "trace_id": "435bfd8f17b9009146a79812d7c3726d",
2242
+ "span_id": "8f99a18416a1ebdd",
2243
+ "service_name": "dummy",
2244
+ "environment": "development",
2245
+ "retention_until": "2027-03-20T09:47:25Z",
2246
+ "payload": {
2247
+ "endpoint": "GET /orders/new",
2248
+ "status": "ok",
2249
+ "http_status": 200
2250
+ },
2251
+ "metadata": {
2252
+ "source": "web",
2253
+ "started_at": "2026-03-20T09:47:25.634Z",
2254
+ "request_id": "req-435bfd8f-11",
2255
+ "path": "/orders/new",
2256
+ "method": "GET",
2257
+ "controller": "Admin::UsersController",
2258
+ "action": "index",
2259
+ "duration_ms": 94
2260
+ }
2261
+ },
2262
+ {
2263
+ "id": "9e3da71f-4821-8d5b-b85e1d121c47",
2264
+ "timestamp": "2026-03-20T09:47:25.648Z",
2265
+ "event_name": "Events::LogInfo",
2266
+ "severity": "info",
2267
+ "version": 1,
2268
+ "trace_id": "435bfd8f17b9009146a79812d7c3726d",
2269
+ "span_id": "05ade626abec3899",
2270
+ "service_name": "dummy",
2271
+ "environment": "development",
2272
+ "retention_until": "2027-03-20T09:47:25Z",
2273
+ "payload": {
2274
+ "message": "Started GET \"/orders/new\" for ::1 at 2026-03-20 09:47:25 +0000",
2275
+ "level": "info"
2276
+ },
2277
+ "metadata": {
2278
+ "source": "web",
2279
+ "started_at": "2026-03-20T09:47:25.634Z",
2280
+ "request_id": "req-435bfd8f-11",
2281
+ "path": "/orders/new",
2282
+ "method": "GET",
2283
+ "controller": "Admin::UsersController",
2284
+ "action": "index",
2285
+ "duration_ms": 1
2286
+ }
2287
+ },
2288
+ {
2289
+ "id": "c1d012c9-4dc9-9052-34903db7bc54",
2290
+ "timestamp": "2026-03-20T09:47:25.459Z",
2291
+ "event_name": "Events::LogInfo",
2292
+ "severity": "info",
2293
+ "version": 1,
2294
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2295
+ "span_id": "7356dc4d347dd9c8",
2296
+ "service_name": "dummy",
2297
+ "environment": "development",
2298
+ "retention_until": "2027-03-20T09:47:25Z",
2299
+ "payload": {
2300
+ "message": "Completed GET /orders/new in 889ms",
2301
+ "level": "info"
2302
+ },
2303
+ "metadata": {
2304
+ "source": "web",
2305
+ "started_at": "2026-03-20T09:47:25.381Z",
2306
+ "request_id": "req-0e1543af-10",
2307
+ "path": "/orders/new",
2308
+ "method": "GET",
2309
+ "controller": "OrdersController",
2310
+ "action": "index",
2311
+ "duration_ms": 8
2312
+ }
2313
+ },
2314
+ {
2315
+ "id": "096d2868-4c62-a1fe-018003800194",
2316
+ "timestamp": "2026-03-20T09:47:25.445Z",
2317
+ "event_name": "Events::OrderCreated",
2318
+ "severity": "success",
2319
+ "version": 1,
2320
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2321
+ "span_id": "0e6e9fef134abb36",
2322
+ "service_name": "dummy",
2323
+ "environment": "development",
2324
+ "retention_until": "2027-03-20T09:47:25Z",
2325
+ "payload": {
2326
+ "order_id": "ord_364168",
2327
+ "status": "completed",
2328
+ "customer": {
2329
+ "id": 2001,
2330
+ "email": "[FILTERED]",
2331
+ "locale": "en"
2332
+ },
2333
+ "items": [
2334
+ {
2335
+ "sku": "SKU-808",
2336
+ "qty": 1,
2337
+ "unit_price": 498.86
2338
+ }
2339
+ ]
2340
+ },
2341
+ "metadata": {
2342
+ "source": "web",
2343
+ "started_at": "2026-03-20T09:47:25.381Z",
2344
+ "request_id": "req-0e1543af-10",
2345
+ "path": "/orders/new",
2346
+ "method": "GET",
2347
+ "controller": "OrdersController",
2348
+ "action": "index",
2349
+ "duration_ms": 102
2350
+ }
2351
+ },
2352
+ {
2353
+ "id": "7af98891-40df-b4ee-b8b06071f70a",
2354
+ "timestamp": "2026-03-20T09:47:25.434Z",
2355
+ "event_name": "Events::PostDebug",
2356
+ "severity": "debug",
2357
+ "version": 1,
2358
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2359
+ "span_id": "9818f354bfe45d19",
2360
+ "service_name": "dummy",
2361
+ "environment": "development",
2362
+ "retention_until": "2027-03-20T09:47:25Z",
2363
+ "payload": {
2364
+ "message": " → Render — /orders/new id=20310"
2365
+ },
2366
+ "metadata": {
2367
+ "source": "web",
2368
+ "started_at": "2026-03-20T09:47:25.381Z",
2369
+ "request_id": "req-0e1543af-10",
2370
+ "path": "/orders/new",
2371
+ "method": "GET",
2372
+ "controller": "OrdersController",
2373
+ "action": "index",
2374
+ "duration_ms": 17
2375
+ }
2376
+ },
2377
+ {
2378
+ "id": "6aa8db72-40ff-92c4-c72eeb4f2798",
2379
+ "timestamp": "2026-03-20T09:47:25.419Z",
2380
+ "event_name": "Events::PostDebug",
2381
+ "severity": "debug",
2382
+ "version": 1,
2383
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2384
+ "span_id": "6b11f9c1152f0009",
2385
+ "service_name": "dummy",
2386
+ "environment": "development",
2387
+ "retention_until": "2027-03-20T09:47:25Z",
2388
+ "payload": {
2389
+ "message": " → SQL /orders/new — 45.4ms"
2390
+ },
2391
+ "metadata": {
2392
+ "source": "web",
2393
+ "started_at": "2026-03-20T09:47:25.381Z",
2394
+ "request_id": "req-0e1543af-10",
2395
+ "path": "/orders/new",
2396
+ "method": "GET",
2397
+ "controller": "OrdersController",
2398
+ "action": "index",
2399
+ "duration_ms": 7
2400
+ }
2401
+ },
2402
+ {
2403
+ "id": "6944d7f4-4ed3-a9cc-8adb455d7aef",
2404
+ "timestamp": "2026-03-20T09:47:25.404Z",
2405
+ "event_name": "Events::ApiRequest",
2406
+ "severity": "info",
2407
+ "version": 1,
2408
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2409
+ "span_id": "29a1439c22186b8c",
2410
+ "service_name": "dummy",
2411
+ "environment": "development",
2412
+ "retention_until": "2027-03-20T09:47:25Z",
2413
+ "payload": {
2414
+ "endpoint": "GET /orders/new",
2415
+ "status": "ok",
2416
+ "http_status": 200
2417
+ },
2418
+ "metadata": {
2419
+ "source": "web",
2420
+ "started_at": "2026-03-20T09:47:25.381Z",
2421
+ "request_id": "req-0e1543af-10",
2422
+ "path": "/orders/new",
2423
+ "method": "GET",
2424
+ "controller": "OrdersController",
2425
+ "action": "index",
2426
+ "duration_ms": 46
2427
+ }
2428
+ },
2429
+ {
2430
+ "id": "956a7cb1-421b-aadb-9364f971f028",
2431
+ "timestamp": "2026-03-20T09:47:25.394Z",
2432
+ "event_name": "Events::LogInfo",
2433
+ "severity": "info",
2434
+ "version": 1,
2435
+ "trace_id": "0e1543af6a630fb3af6b52283154b3e0",
2436
+ "span_id": "428c12e3fc784ebf",
2437
+ "service_name": "dummy",
2438
+ "environment": "development",
2439
+ "retention_until": "2027-03-20T09:47:25Z",
2440
+ "payload": {
2441
+ "message": "Started GET \"/orders/new\" for ::1 at 2026-03-20 09:47:25 +0000",
2442
+ "level": "info"
2443
+ },
2444
+ "metadata": {
2445
+ "source": "web",
2446
+ "started_at": "2026-03-20T09:47:25.381Z",
2447
+ "request_id": "req-0e1543af-10",
2448
+ "path": "/orders/new",
2449
+ "method": "GET",
2450
+ "controller": "OrdersController",
2451
+ "action": "index",
2452
+ "duration_ms": 2
2453
+ }
2454
+ },
2455
+ {
2456
+ "id": "f56d8549-4adf-ab0f-53c764ff6165",
2457
+ "timestamp": "2026-03-20T09:47:23.999Z",
2458
+ "event_name": "Events::LogInfo",
2459
+ "severity": "info",
2460
+ "version": 1,
2461
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2462
+ "span_id": "74a5ebcb1b545d97",
2463
+ "service_name": "dummy",
2464
+ "environment": "development",
2465
+ "retention_until": "2027-03-20T09:47:23Z",
2466
+ "payload": {
2467
+ "message": "Completed POST /webhooks/stripe in 679ms",
2468
+ "level": "info"
2469
+ },
2470
+ "metadata": {
2471
+ "source": "web",
2472
+ "started_at": "2026-03-20T09:47:23.887Z",
2473
+ "request_id": "req-4c7676e3-9",
2474
+ "path": "/webhooks/stripe",
2475
+ "method": "POST",
2476
+ "controller": "OrdersController",
2477
+ "action": "index",
2478
+ "duration_ms": 124
2479
+ }
2480
+ },
2481
+ {
2482
+ "id": "3780cd30-460d-b48e-cd9efeeece00",
2483
+ "timestamp": "2026-03-20T09:47:23.983Z",
2484
+ "event_name": "Events::PaymentFailed",
2485
+ "severity": "error",
2486
+ "version": 1,
2487
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2488
+ "span_id": "a0a7a574b269ae35",
2489
+ "service_name": "dummy",
2490
+ "environment": "development",
2491
+ "retention_until": "2027-03-20T09:47:23Z",
2492
+ "payload": {
2493
+ "order_id": "ord_718217",
2494
+ "amount": 296.31,
2495
+ "gateway": "stripe",
2496
+ "decline_code": "processing_error"
2497
+ },
2498
+ "metadata": {
2499
+ "source": "web",
2500
+ "started_at": "2026-03-20T09:47:23.887Z",
2501
+ "request_id": "req-4c7676e3-9",
2502
+ "path": "/webhooks/stripe",
2503
+ "method": "POST",
2504
+ "controller": "OrdersController",
2505
+ "action": "index",
2506
+ "duration_ms": 57
2507
+ }
2508
+ },
2509
+ {
2510
+ "id": "fa57b2ac-4a9f-98ac-873c529b932e",
2511
+ "timestamp": "2026-03-20T09:47:23.972Z",
2512
+ "event_name": "Events::OrderCreated",
2513
+ "severity": "success",
2514
+ "version": 1,
2515
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2516
+ "span_id": "e421f4940b1c504f",
2517
+ "service_name": "dummy",
2518
+ "environment": "development",
2519
+ "retention_until": "2027-03-20T09:47:23Z",
2520
+ "payload": {
2521
+ "order_id": "ord_718217",
2522
+ "status": "completed",
2523
+ "customer": {
2524
+ "id": 5349,
2525
+ "email": "[FILTERED]",
2526
+ "locale": "en"
2527
+ },
2528
+ "items": [
2529
+ {
2530
+ "sku": "SKU-775",
2531
+ "qty": 1,
2532
+ "unit_price": 278.6
2533
+ }
2534
+ ]
2535
+ },
2536
+ "metadata": {
2537
+ "source": "web",
2538
+ "started_at": "2026-03-20T09:47:23.887Z",
2539
+ "request_id": "req-4c7676e3-9",
2540
+ "path": "/webhooks/stripe",
2541
+ "method": "POST",
2542
+ "controller": "OrdersController",
2543
+ "action": "index",
2544
+ "duration_ms": 20
2545
+ }
2546
+ },
2547
+ {
2548
+ "id": "f650f0bd-41f8-84be-85fb49246d70",
2549
+ "timestamp": "2026-03-20T09:47:23.957Z",
2550
+ "event_name": "Events::PostDebug",
2551
+ "severity": "debug",
2552
+ "version": 1,
2553
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2554
+ "span_id": "15385d98de5c8337",
2555
+ "service_name": "dummy",
2556
+ "environment": "development",
2557
+ "retention_until": "2027-03-20T09:47:23Z",
2558
+ "payload": {
2559
+ "message": " → CACHE — /webhooks/stripe id=37798"
2560
+ },
2561
+ "metadata": {
2562
+ "source": "web",
2563
+ "started_at": "2026-03-20T09:47:23.887Z",
2564
+ "request_id": "req-4c7676e3-9",
2565
+ "path": "/webhooks/stripe",
2566
+ "method": "POST",
2567
+ "controller": "OrdersController",
2568
+ "action": "index",
2569
+ "duration_ms": 21
2570
+ }
2571
+ },
2572
+ {
2573
+ "id": "924c0e7d-4439-b693-d9dbc466e1c7",
2574
+ "timestamp": "2026-03-20T09:47:23.944Z",
2575
+ "event_name": "Events::PostDebug",
2576
+ "severity": "debug",
2577
+ "version": 1,
2578
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2579
+ "span_id": "1e16333cd2a2637e",
2580
+ "service_name": "dummy",
2581
+ "environment": "development",
2582
+ "retention_until": "2027-03-20T09:47:23Z",
2583
+ "payload": {
2584
+ "message": " → CACHE — /webhooks/stripe id=42919"
2585
+ },
2586
+ "metadata": {
2587
+ "source": "web",
2588
+ "started_at": "2026-03-20T09:47:23.887Z",
2589
+ "request_id": "req-4c7676e3-9",
2590
+ "path": "/webhooks/stripe",
2591
+ "method": "POST",
2592
+ "controller": "OrdersController",
2593
+ "action": "index",
2594
+ "duration_ms": 1
2595
+ }
2596
+ },
2597
+ {
2598
+ "id": "8ef394b5-48a6-905a-62c9e806d759",
2599
+ "timestamp": "2026-03-20T09:47:23.931Z",
2600
+ "event_name": "Events::PostDebug",
2601
+ "severity": "debug",
2602
+ "version": 1,
2603
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2604
+ "span_id": "548b6e121c777026",
2605
+ "service_name": "dummy",
2606
+ "environment": "development",
2607
+ "retention_until": "2027-03-20T09:47:23Z",
2608
+ "payload": {
2609
+ "message": " → SQL — /webhooks/stripe id=44483"
2610
+ },
2611
+ "metadata": {
2612
+ "source": "web",
2613
+ "started_at": "2026-03-20T09:47:23.887Z",
2614
+ "request_id": "req-4c7676e3-9",
2615
+ "path": "/webhooks/stripe",
2616
+ "method": "POST",
2617
+ "controller": "OrdersController",
2618
+ "action": "index",
2619
+ "duration_ms": 13
2620
+ }
2621
+ },
2622
+ {
2623
+ "id": "3c976690-41fe-9d46-90d89786052c",
2624
+ "timestamp": "2026-03-20T09:47:23.917Z",
2625
+ "event_name": "Events::ApiRequest",
2626
+ "severity": "info",
2627
+ "version": 1,
2628
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2629
+ "span_id": "c0dd648359a7e723",
2630
+ "service_name": "dummy",
2631
+ "environment": "development",
2632
+ "retention_until": "2027-03-20T09:47:23Z",
2633
+ "payload": {
2634
+ "endpoint": "POST /webhooks/stripe",
2635
+ "status": "ok",
2636
+ "http_status": 200
2637
+ },
2638
+ "metadata": {
2639
+ "source": "web",
2640
+ "started_at": "2026-03-20T09:47:23.887Z",
2641
+ "request_id": "req-4c7676e3-9",
2642
+ "path": "/webhooks/stripe",
2643
+ "method": "POST",
2644
+ "controller": "OrdersController",
2645
+ "action": "index",
2646
+ "duration_ms": 70
2647
+ }
2648
+ },
2649
+ {
2650
+ "id": "b4cc4a79-44c1-8604-581c15b7eca4",
2651
+ "timestamp": "2026-03-20T09:47:23.901Z",
2652
+ "event_name": "Events::LogInfo",
2653
+ "severity": "info",
2654
+ "version": 1,
2655
+ "trace_id": "4c7676e3fe668e99edb2b94d7d5678a9",
2656
+ "span_id": "3bb4d5a5fc946952",
2657
+ "service_name": "dummy",
2658
+ "environment": "development",
2659
+ "retention_until": "2027-03-20T09:47:23Z",
2660
+ "payload": {
2661
+ "message": "Started POST \"/webhooks/stripe\" for ::1 at 2026-03-20 09:47:23 +0000",
2662
+ "level": "info"
2663
+ },
2664
+ "metadata": {
2665
+ "source": "web",
2666
+ "started_at": "2026-03-20T09:47:23.887Z",
2667
+ "request_id": "req-4c7676e3-9",
2668
+ "path": "/webhooks/stripe",
2669
+ "method": "POST",
2670
+ "controller": "OrdersController",
2671
+ "action": "index",
2672
+ "duration_ms": 3
2673
+ }
2674
+ },
2675
+ {
2676
+ "id": "bb4d4462-4fef-8623-93d1400113f0",
2677
+ "timestamp": "2026-03-20T09:47:23.735Z",
2678
+ "event_name": "Events::LogInfo",
2679
+ "severity": "info",
2680
+ "version": 1,
2681
+ "trace_id": "b54b7fc32b7575a7110de809d11ccda0",
2682
+ "span_id": "c6c2ffe6949e885f",
2683
+ "service_name": "dummy",
2684
+ "environment": "development",
2685
+ "retention_until": "2027-03-20T09:47:23Z",
2686
+ "payload": {
2687
+ "message": "Job WebhookRetryJob done shard=7",
2688
+ "level": "info"
2689
+ },
2690
+ "metadata": {
2691
+ "source": "job",
2692
+ "started_at": "2026-03-20T09:47:21.474Z",
2693
+ "duration_ms": 193
2694
+ }
2695
+ },
2696
+ {
2697
+ "id": "bc2d9da3-42d8-ad14-5bfc48336af8",
2698
+ "timestamp": "2026-03-20T09:47:23.152Z",
2699
+ "event_name": "Events::LogInfo",
2700
+ "severity": "info",
2701
+ "version": 1,
2702
+ "trace_id": "b54b7fc32b7575a7110de809d11ccda0",
2703
+ "span_id": "8c47e2a32d6cad89",
2704
+ "service_name": "dummy",
2705
+ "environment": "development",
2706
+ "retention_until": "2027-03-20T09:47:23Z",
2707
+ "payload": {
2708
+ "message": "Job WebhookRetryJob done shard=4",
2709
+ "level": "info"
2710
+ },
2711
+ "metadata": {
2712
+ "source": "job",
2713
+ "started_at": "2026-03-20T09:47:21.474Z",
2714
+ "duration_ms": 76
2715
+ }
2716
+ },
2717
+ {
2718
+ "id": "9e45e2f1-4822-aad6-6b50a7dd7059",
2719
+ "timestamp": "2026-03-20T09:47:22.583Z",
2720
+ "event_name": "Events::ReportExportCompleted",
2721
+ "severity": "fatal",
2722
+ "version": 1,
2723
+ "trace_id": "b54b7fc32b7575a7110de809d11ccda0",
2724
+ "span_id": "51a8630762a95a5c",
2725
+ "service_name": "dummy",
2726
+ "environment": "development",
2727
+ "retention_until": "2027-03-20T09:47:22Z",
2728
+ "payload": {
2729
+ "report_id": 1417,
2730
+ "error": "No space left on device",
2731
+ "exception": {
2732
+ "class": "Errno::ENOSPC",
2733
+ "message": "No space left on device @ rb_sysopen",
2734
+ "backtrace": [
2735
+ "app/jobs/webhook_retry_job.rb:26:in `perform'",
2736
+ "activejob (7.0.0) lib/active_job/execution.rb:68:in `perform_now'"
2737
+ ]
2738
+ }
2739
+ },
2740
+ "metadata": {
2741
+ "source": "job",
2742
+ "started_at": "2026-03-20T09:47:21.474Z",
2743
+ "duration_ms": 899
2744
+ }
2745
+ },
2746
+ {
2747
+ "id": "62d79f42-4e40-95a0-b4a7e7c50f49",
2748
+ "timestamp": "2026-03-20T09:47:22.090Z",
2749
+ "event_name": "Events::ReportCreated",
2750
+ "severity": "info",
2751
+ "version": 1,
2752
+ "trace_id": "b54b7fc32b7575a7110de809d11ccda0",
2753
+ "span_id": "34e9442a321f5e2b",
2754
+ "service_name": "dummy",
2755
+ "environment": "development",
2756
+ "retention_until": "2027-03-20T09:47:22Z",
2757
+ "payload": {
2758
+ "title": "Export batch 5380",
2759
+ "description": "Queued by WebhookRetryJob",
2760
+ "employee_ids": [
2761
+ 141,
2762
+ 12
2763
+ ],
2764
+ "author": "system"
2765
+ },
2766
+ "metadata": {
2767
+ "source": "job",
2768
+ "started_at": "2026-03-20T09:47:21.474Z",
2769
+ "duration_ms": 269
2770
+ }
2771
+ },
2772
+ {
2773
+ "id": "249b1a4b-4c08-9c49-43b99e4389eb",
2774
+ "timestamp": "2026-03-20T09:47:21.928Z",
2775
+ "event_name": "Events::LogInfo",
2776
+ "severity": "info",
2777
+ "version": 1,
2778
+ "trace_id": "b4f3095c1909924cbc98889a86c83d6d",
2779
+ "span_id": "ddeb1b9019e32cfc",
2780
+ "service_name": "dummy",
2781
+ "environment": "development",
2782
+ "retention_until": "2027-03-20T09:47:21Z",
2783
+ "payload": {
2784
+ "message": "Completed GET /up in 241ms",
2785
+ "level": "info"
2786
+ },
2787
+ "metadata": {
2788
+ "source": "web",
2789
+ "started_at": "2026-03-20T09:47:21.861Z",
2790
+ "request_id": "req-b4f3095c-8",
2791
+ "path": "/up",
2792
+ "method": "GET",
2793
+ "controller": "Webhooks::StripeController",
2794
+ "action": "create",
2795
+ "duration_ms": 14
2796
+ }
2797
+ },
2798
+ {
2799
+ "id": "ca246a38-4426-886c-5eb47e925429",
2800
+ "timestamp": "2026-03-20T09:47:21.917Z",
2801
+ "event_name": "Events::PostDebug",
2802
+ "severity": "debug",
2803
+ "version": 1,
2804
+ "trace_id": "b4f3095c1909924cbc98889a86c83d6d",
2805
+ "span_id": "f96854b90ebc2ba6",
2806
+ "service_name": "dummy",
2807
+ "environment": "development",
2808
+ "retention_until": "2027-03-20T09:47:21Z",
2809
+ "payload": {
2810
+ "message": " → SQL — /up id=37498"
2811
+ },
2812
+ "metadata": {
2813
+ "source": "web",
2814
+ "started_at": "2026-03-20T09:47:21.861Z",
2815
+ "request_id": "req-b4f3095c-8",
2816
+ "path": "/up",
2817
+ "method": "GET",
2818
+ "controller": "Webhooks::StripeController",
2819
+ "action": "create",
2820
+ "duration_ms": 5
2821
+ }
2822
+ },
2823
+ {
2824
+ "id": "f35afd7f-4e33-9352-edf9a1c0156e",
2825
+ "timestamp": "2026-03-20T09:47:21.903Z",
2826
+ "event_name": "Events::PostDebug",
2827
+ "severity": "debug",
2828
+ "version": 1,
2829
+ "trace_id": "b4f3095c1909924cbc98889a86c83d6d",
2830
+ "span_id": "1552208f72cd5374",
2831
+ "service_name": "dummy",
2832
+ "environment": "development",
2833
+ "retention_until": "2027-03-20T09:47:21Z",
2834
+ "payload": {
2835
+ "message": " → CACHE /up — 35.8ms"
2836
+ },
2837
+ "metadata": {
2838
+ "source": "web",
2839
+ "started_at": "2026-03-20T09:47:21.861Z",
2840
+ "request_id": "req-b4f3095c-8",
2841
+ "path": "/up",
2842
+ "method": "GET",
2843
+ "controller": "Webhooks::StripeController",
2844
+ "action": "create",
2845
+ "duration_ms": 4
2846
+ }
2847
+ },
2848
+ {
2849
+ "id": "63a2b8b0-4663-818b-f9bce7c71ce8",
2850
+ "timestamp": "2026-03-20T09:47:21.887Z",
2851
+ "event_name": "Events::ApiRequest",
2852
+ "severity": "info",
2853
+ "version": 1,
2854
+ "trace_id": "b4f3095c1909924cbc98889a86c83d6d",
2855
+ "span_id": "d8de5f92175e904b",
2856
+ "service_name": "dummy",
2857
+ "environment": "development",
2858
+ "retention_until": "2027-03-20T09:47:21Z",
2859
+ "payload": {
2860
+ "endpoint": "GET /up",
2861
+ "status": "ok",
2862
+ "http_status": 200
2863
+ },
2864
+ "metadata": {
2865
+ "source": "web",
2866
+ "started_at": "2026-03-20T09:47:21.861Z",
2867
+ "request_id": "req-b4f3095c-8",
2868
+ "path": "/up",
2869
+ "method": "GET",
2870
+ "controller": "Webhooks::StripeController",
2871
+ "action": "create",
2872
+ "duration_ms": 9
2873
+ }
2874
+ },
2875
+ {
2876
+ "id": "3cfd0b62-4368-971d-b51088c9af70",
2877
+ "timestamp": "2026-03-20T09:47:21.875Z",
2878
+ "event_name": "Events::LogInfo",
2879
+ "severity": "info",
2880
+ "version": 1,
2881
+ "trace_id": "b4f3095c1909924cbc98889a86c83d6d",
2882
+ "span_id": "8158383d7f1ea253",
2883
+ "service_name": "dummy",
2884
+ "environment": "development",
2885
+ "retention_until": "2027-03-20T09:47:21Z",
2886
+ "payload": {
2887
+ "message": "Started GET \"/up\" for ::1 at 2026-03-20 09:47:21 +0000",
2888
+ "level": "info"
2889
+ },
2890
+ "metadata": {
2891
+ "source": "web",
2892
+ "started_at": "2026-03-20T09:47:21.861Z",
2893
+ "request_id": "req-b4f3095c-8",
2894
+ "path": "/up",
2895
+ "method": "GET",
2896
+ "controller": "Webhooks::StripeController",
2897
+ "action": "create",
2898
+ "duration_ms": 3
2899
+ }
2900
+ },
2901
+ {
2902
+ "id": "a2eb589f-4dda-8353-4697ad5ae78b",
2903
+ "timestamp": "2026-03-20T09:47:21.550Z",
2904
+ "event_name": "Events::BackgroundJobStarted",
2905
+ "severity": "info",
2906
+ "version": 1,
2907
+ "trace_id": "b54b7fc32b7575a7110de809d11ccda0",
2908
+ "span_id": "635f1ab192c82ea2",
2909
+ "service_name": "dummy",
2910
+ "environment": "development",
2911
+ "retention_until": "2027-03-20T09:47:21Z",
2912
+ "payload": {
2913
+ "job_class": "WebhookRetryJob",
2914
+ "job_id": "af183fec-4203-ac0f-cb17f1a2e14f",
2915
+ "queue": "default",
2916
+ "arguments": [
2917
+ {
2918
+ "batch_id": 4001,
2919
+ "shard": 12
2920
+ }
2921
+ ],
2922
+ "enqueued_at": "2026-03-20T09:47:19.474Z"
2923
+ },
2924
+ "metadata": {
2925
+ "source": "job",
2926
+ "started_at": "2026-03-20T09:47:21.474Z",
2927
+ "duration_ms": 897
2928
+ }
2929
+ },
2930
+ {
2931
+ "id": "e2fd7c63-4b21-acb3-9cde03eaff89",
2932
+ "timestamp": "2026-03-20T09:47:20.224Z",
2933
+ "event_name": "Events::LogInfo",
2934
+ "severity": "info",
2935
+ "version": 1,
2936
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
2937
+ "span_id": "a0385af9eef5ae92",
2938
+ "service_name": "dummy",
2939
+ "environment": "development",
2940
+ "retention_until": "2027-03-20T09:47:20Z",
2941
+ "payload": {
2942
+ "message": "Completed GET /api/v1/orders in 453ms",
2943
+ "level": "info"
2944
+ },
2945
+ "metadata": {
2946
+ "source": "web",
2947
+ "started_at": "2026-03-20T09:47:20.109Z",
2948
+ "request_id": "req-d601ae33-6",
2949
+ "path": "/api/v1/orders",
2950
+ "method": "GET",
2951
+ "controller": "OrdersController",
2952
+ "action": "index",
2953
+ "duration_ms": 103
2954
+ }
2955
+ },
2956
+ {
2957
+ "id": "79357226-4663-b520-dcfd6f10e6dd",
2958
+ "timestamp": "2026-03-20T09:47:20.209Z",
2959
+ "event_name": "Events::UserAction",
2960
+ "severity": "warn",
2961
+ "version": 1,
2962
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
2963
+ "span_id": "a657916466046816",
2964
+ "service_name": "dummy",
2965
+ "environment": "development",
2966
+ "retention_until": "2027-03-20T09:47:20Z",
2967
+ "payload": {
2968
+ "action": "checkout_step",
2969
+ "step": "review",
2970
+ "flags": [
2971
+ "rate_limit_near"
2972
+ ]
2973
+ },
2974
+ "metadata": {
2975
+ "source": "web",
2976
+ "started_at": "2026-03-20T09:47:20.109Z",
2977
+ "request_id": "req-d601ae33-6",
2978
+ "path": "/api/v1/orders",
2979
+ "method": "GET",
2980
+ "controller": "OrdersController",
2981
+ "action": "index",
2982
+ "duration_ms": 10
2983
+ }
2984
+ },
2985
+ {
2986
+ "id": "c20233e4-4c55-8ab8-6d1c1db6efcd",
2987
+ "timestamp": "2026-03-20T09:47:20.196Z",
2988
+ "event_name": "Events::OrderCreated",
2989
+ "severity": "success",
2990
+ "version": 1,
2991
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
2992
+ "span_id": "178024db0bc6d444",
2993
+ "service_name": "dummy",
2994
+ "environment": "development",
2995
+ "retention_until": "2027-03-20T09:47:20Z",
2996
+ "payload": {
2997
+ "order_id": "ord_227898",
2998
+ "status": "cancelled",
2999
+ "customer": {
3000
+ "id": 2142,
3001
+ "email": "[FILTERED]",
3002
+ "locale": "en"
3003
+ },
3004
+ "items": [
3005
+ {
3006
+ "sku": "SKU-849",
3007
+ "qty": 1,
3008
+ "unit_price": 488.88
3009
+ }
3010
+ ]
3011
+ },
3012
+ "metadata": {
3013
+ "source": "web",
3014
+ "started_at": "2026-03-20T09:47:20.109Z",
3015
+ "request_id": "req-d601ae33-6",
3016
+ "path": "/api/v1/orders",
3017
+ "method": "GET",
3018
+ "controller": "OrdersController",
3019
+ "action": "index",
3020
+ "duration_ms": 69
3021
+ }
3022
+ },
3023
+ {
3024
+ "id": "f4720d0f-44bc-8fe6-72bf8dea25be",
3025
+ "timestamp": "2026-03-20T09:47:20.184Z",
3026
+ "event_name": "Events::PostDebug",
3027
+ "severity": "debug",
3028
+ "version": 1,
3029
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3030
+ "span_id": "6f8842449c99bb15",
3031
+ "service_name": "dummy",
3032
+ "environment": "development",
3033
+ "retention_until": "2027-03-20T09:47:20Z",
3034
+ "payload": {
3035
+ "message": " → CACHE — /api/v1/orders id=8131"
3036
+ },
3037
+ "metadata": {
3038
+ "source": "web",
3039
+ "started_at": "2026-03-20T09:47:20.109Z",
3040
+ "request_id": "req-d601ae33-6",
3041
+ "path": "/api/v1/orders",
3042
+ "method": "GET",
3043
+ "controller": "OrdersController",
3044
+ "action": "index",
3045
+ "duration_ms": 12
3046
+ }
3047
+ },
3048
+ {
3049
+ "id": "ea4b7279-4200-beee-eb213d62b45f",
3050
+ "timestamp": "2026-03-20T09:47:20.172Z",
3051
+ "event_name": "Events::PostDebug",
3052
+ "severity": "debug",
3053
+ "version": 1,
3054
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3055
+ "span_id": "8c9a1e7d18081475",
3056
+ "service_name": "dummy",
3057
+ "environment": "development",
3058
+ "retention_until": "2027-03-20T09:47:20Z",
3059
+ "payload": {
3060
+ "message": " → N+1 — /api/v1/orders id=20057"
3061
+ },
3062
+ "metadata": {
3063
+ "source": "web",
3064
+ "started_at": "2026-03-20T09:47:20.109Z",
3065
+ "request_id": "req-d601ae33-6",
3066
+ "path": "/api/v1/orders",
3067
+ "method": "GET",
3068
+ "controller": "OrdersController",
3069
+ "action": "index",
3070
+ "duration_ms": 8
3071
+ }
3072
+ },
3073
+ {
3074
+ "id": "1415b7b6-4559-a2e4-7dd9f6702074",
3075
+ "timestamp": "2026-03-20T09:47:20.161Z",
3076
+ "event_name": "Events::PostDebug",
3077
+ "severity": "debug",
3078
+ "version": 1,
3079
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3080
+ "span_id": "14b4173dd602cb16",
3081
+ "service_name": "dummy",
3082
+ "environment": "development",
3083
+ "retention_until": "2027-03-20T09:47:20Z",
3084
+ "payload": {
3085
+ "message": " → Render — /api/v1/orders id=23945"
3086
+ },
3087
+ "metadata": {
3088
+ "source": "web",
3089
+ "started_at": "2026-03-20T09:47:20.109Z",
3090
+ "request_id": "req-d601ae33-6",
3091
+ "path": "/api/v1/orders",
3092
+ "method": "GET",
3093
+ "controller": "OrdersController",
3094
+ "action": "index",
3095
+ "duration_ms": 12
3096
+ }
3097
+ },
3098
+ {
3099
+ "id": "236b1ba7-4f33-9a8f-710cf8339171",
3100
+ "timestamp": "2026-03-20T09:47:20.149Z",
3101
+ "event_name": "Events::PostDebug",
3102
+ "severity": "debug",
3103
+ "version": 1,
3104
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3105
+ "span_id": "842c427bb6efb469",
3106
+ "service_name": "dummy",
3107
+ "environment": "development",
3108
+ "retention_until": "2027-03-20T09:47:20Z",
3109
+ "payload": {
3110
+ "message": " → SQL /api/v1/orders — 19.0ms"
3111
+ },
3112
+ "metadata": {
3113
+ "source": "web",
3114
+ "started_at": "2026-03-20T09:47:20.109Z",
3115
+ "request_id": "req-d601ae33-6",
3116
+ "path": "/api/v1/orders",
3117
+ "method": "GET",
3118
+ "controller": "OrdersController",
3119
+ "action": "index",
3120
+ "duration_ms": 8
3121
+ }
3122
+ },
3123
+ {
3124
+ "id": "f71abe6b-4004-9466-54c3d78ed305",
3125
+ "timestamp": "2026-03-20T09:47:20.135Z",
3126
+ "event_name": "Events::ApiRequest",
3127
+ "severity": "info",
3128
+ "version": 1,
3129
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3130
+ "span_id": "0d3b036c31c2e3df",
3131
+ "service_name": "dummy",
3132
+ "environment": "development",
3133
+ "retention_until": "2027-03-20T09:47:20Z",
3134
+ "payload": {
3135
+ "endpoint": "GET /api/v1/orders",
3136
+ "status": "ok",
3137
+ "http_status": 200
3138
+ },
3139
+ "metadata": {
3140
+ "source": "web",
3141
+ "started_at": "2026-03-20T09:47:20.109Z",
3142
+ "request_id": "req-d601ae33-6",
3143
+ "path": "/api/v1/orders",
3144
+ "method": "GET",
3145
+ "controller": "OrdersController",
3146
+ "action": "index",
3147
+ "duration_ms": 116
3148
+ }
3149
+ },
3150
+ {
3151
+ "id": "098fa6b3-42a9-b345-cf0e5c357435",
3152
+ "timestamp": "2026-03-20T09:47:20.120Z",
3153
+ "event_name": "Events::LogInfo",
3154
+ "severity": "info",
3155
+ "version": 1,
3156
+ "trace_id": "d601ae3320057580a39dbdac2edfdf4a",
3157
+ "span_id": "897e3bea208709bb",
3158
+ "service_name": "dummy",
3159
+ "environment": "development",
3160
+ "retention_until": "2027-03-20T09:47:20Z",
3161
+ "payload": {
3162
+ "message": "Started GET \"/api/v1/orders\" for ::1 at 2026-03-20 09:47:20 +0000",
3163
+ "level": "info"
3164
+ },
3165
+ "metadata": {
3166
+ "source": "web",
3167
+ "started_at": "2026-03-20T09:47:20.109Z",
3168
+ "request_id": "req-d601ae33-6",
3169
+ "path": "/api/v1/orders",
3170
+ "method": "GET",
3171
+ "controller": "OrdersController",
3172
+ "action": "index",
3173
+ "duration_ms": 0
3174
+ }
3175
+ },
3176
+ {
3177
+ "id": "94307d61-4341-971f-2ad6ac09e7be",
3178
+ "timestamp": "2026-03-20T09:47:18.699Z",
3179
+ "event_name": "Events::LogInfo",
3180
+ "severity": "info",
3181
+ "version": 1,
3182
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3183
+ "span_id": "093383555401d032",
3184
+ "service_name": "dummy",
3185
+ "environment": "development",
3186
+ "retention_until": "2027-03-20T09:47:18Z",
3187
+ "payload": {
3188
+ "message": "Completed GET /up in 676ms",
3189
+ "level": "info"
3190
+ },
3191
+ "metadata": {
3192
+ "source": "web",
3193
+ "started_at": "2026-03-20T09:47:18.612Z",
3194
+ "request_id": "req-3ba6c20d-5",
3195
+ "path": "/up",
3196
+ "method": "GET",
3197
+ "controller": "GraphqlController",
3198
+ "action": "execute",
3199
+ "duration_ms": 193
3200
+ }
3201
+ },
3202
+ {
3203
+ "id": "a0bdb023-42ac-b013-094012292f07",
3204
+ "timestamp": "2026-03-20T09:47:18.689Z",
3205
+ "event_name": "Events::PaymentFailed",
3206
+ "severity": "error",
3207
+ "version": 1,
3208
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3209
+ "span_id": "b3b419ff65939fed",
3210
+ "service_name": "dummy",
3211
+ "environment": "development",
3212
+ "retention_until": "2027-03-20T09:47:18Z",
3213
+ "payload": {
3214
+ "order_id": "ord_466961",
3215
+ "amount": 399.94,
3216
+ "gateway": "stripe",
3217
+ "decline_code": "processing_error"
3218
+ },
3219
+ "metadata": {
3220
+ "source": "web",
3221
+ "started_at": "2026-03-20T09:47:18.612Z",
3222
+ "request_id": "req-3ba6c20d-5",
3223
+ "path": "/up",
3224
+ "method": "GET",
3225
+ "controller": "GraphqlController",
3226
+ "action": "execute",
3227
+ "duration_ms": 87
3228
+ }
3229
+ },
3230
+ {
3231
+ "id": "b57b30f5-4caf-9c26-d5dc4be816a9",
3232
+ "timestamp": "2026-03-20T09:47:18.679Z",
3233
+ "event_name": "Events::PostDebug",
3234
+ "severity": "debug",
3235
+ "version": 1,
3236
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3237
+ "span_id": "cf324af66b76c219",
3238
+ "service_name": "dummy",
3239
+ "environment": "development",
3240
+ "retention_until": "2027-03-20T09:47:18Z",
3241
+ "payload": {
3242
+ "message": " → Render — /up id=29593"
3243
+ },
3244
+ "metadata": {
3245
+ "source": "web",
3246
+ "started_at": "2026-03-20T09:47:18.612Z",
3247
+ "request_id": "req-3ba6c20d-5",
3248
+ "path": "/up",
3249
+ "method": "GET",
3250
+ "controller": "GraphqlController",
3251
+ "action": "execute",
3252
+ "duration_ms": 24
3253
+ }
3254
+ },
3255
+ {
3256
+ "id": "fd742b55-4696-8bc1-de7e84b1409a",
3257
+ "timestamp": "2026-03-20T09:47:18.668Z",
3258
+ "event_name": "Events::PostDebug",
3259
+ "severity": "debug",
3260
+ "version": 1,
3261
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3262
+ "span_id": "4b9829e9e09b8581",
3263
+ "service_name": "dummy",
3264
+ "environment": "development",
3265
+ "retention_until": "2027-03-20T09:47:18Z",
3266
+ "payload": {
3267
+ "message": " → SQL — /up id=785"
3268
+ },
3269
+ "metadata": {
3270
+ "source": "web",
3271
+ "started_at": "2026-03-20T09:47:18.612Z",
3272
+ "request_id": "req-3ba6c20d-5",
3273
+ "path": "/up",
3274
+ "method": "GET",
3275
+ "controller": "GraphqlController",
3276
+ "action": "execute",
3277
+ "duration_ms": 8
3278
+ }
3279
+ },
3280
+ {
3281
+ "id": "7c3b4d42-407f-a811-8718650a7fe9",
3282
+ "timestamp": "2026-03-20T09:47:18.655Z",
3283
+ "event_name": "Events::PostDebug",
3284
+ "severity": "debug",
3285
+ "version": 1,
3286
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3287
+ "span_id": "efa7d6ded81e5a35",
3288
+ "service_name": "dummy",
3289
+ "environment": "development",
3290
+ "retention_until": "2027-03-20T09:47:18Z",
3291
+ "payload": {
3292
+ "message": " → SQL /up — 3.7ms"
3293
+ },
3294
+ "metadata": {
3295
+ "source": "web",
3296
+ "started_at": "2026-03-20T09:47:18.612Z",
3297
+ "request_id": "req-3ba6c20d-5",
3298
+ "path": "/up",
3299
+ "method": "GET",
3300
+ "controller": "GraphqlController",
3301
+ "action": "execute",
3302
+ "duration_ms": 6
3303
+ }
3304
+ },
3305
+ {
3306
+ "id": "f776b0b4-425e-8c62-02bbda5ed3e0",
3307
+ "timestamp": "2026-03-20T09:47:18.643Z",
3308
+ "event_name": "Events::ApiRequest",
3309
+ "severity": "info",
3310
+ "version": 1,
3311
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3312
+ "span_id": "1349e4734b6100be",
3313
+ "service_name": "dummy",
3314
+ "environment": "development",
3315
+ "retention_until": "2027-03-20T09:47:18Z",
3316
+ "payload": {
3317
+ "endpoint": "GET /up",
3318
+ "status": "ok",
3319
+ "http_status": 200
3320
+ },
3321
+ "metadata": {
3322
+ "source": "web",
3323
+ "started_at": "2026-03-20T09:47:18.612Z",
3324
+ "request_id": "req-3ba6c20d-5",
3325
+ "path": "/up",
3326
+ "method": "GET",
3327
+ "controller": "GraphqlController",
3328
+ "action": "execute",
3329
+ "duration_ms": 85
3330
+ }
3331
+ },
3332
+ {
3333
+ "id": "784e489d-49dc-842d-8d74e22caa05",
3334
+ "timestamp": "2026-03-20T09:47:18.627Z",
3335
+ "event_name": "Events::LogInfo",
3336
+ "severity": "info",
3337
+ "version": 1,
3338
+ "trace_id": "3ba6c20d068ab9cee00e51b180e66444",
3339
+ "span_id": "5ec2b862bf6a7f7b",
3340
+ "service_name": "dummy",
3341
+ "environment": "development",
3342
+ "retention_until": "2027-03-20T09:47:18Z",
3343
+ "payload": {
3344
+ "message": "Started GET \"/up\" for ::1 at 2026-03-20 09:47:18 +0000",
3345
+ "level": "info"
3346
+ },
3347
+ "metadata": {
3348
+ "source": "web",
3349
+ "started_at": "2026-03-20T09:47:18.612Z",
3350
+ "request_id": "req-3ba6c20d-5",
3351
+ "path": "/up",
3352
+ "method": "GET",
3353
+ "controller": "GraphqlController",
3354
+ "action": "execute",
3355
+ "duration_ms": 0
3356
+ }
3357
+ },
3358
+ {
3359
+ "id": "ab3e9b6e-43bf-95e0-71c43aed6bfb",
3360
+ "timestamp": "2026-03-20T09:47:17.123Z",
3361
+ "event_name": "Events::LogInfo",
3362
+ "severity": "info",
3363
+ "version": 1,
3364
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3365
+ "span_id": "b8f29f3c7fcb232f",
3366
+ "service_name": "dummy",
3367
+ "environment": "development",
3368
+ "retention_until": "2027-03-20T09:47:17Z",
3369
+ "payload": {
3370
+ "message": "Completed GET /sidekiq/busy in 670ms",
3371
+ "level": "info"
3372
+ },
3373
+ "metadata": {
3374
+ "source": "web",
3375
+ "started_at": "2026-03-20T09:47:17.046Z",
3376
+ "request_id": "req-c44649ac-4",
3377
+ "path": "/sidekiq/busy",
3378
+ "method": "GET",
3379
+ "controller": "Webhooks::StripeController",
3380
+ "action": "create",
3381
+ "duration_ms": 11
3382
+ }
3383
+ },
3384
+ {
3385
+ "id": "5e229f72-41d5-8d76-44153e761aed",
3386
+ "timestamp": "2026-03-20T09:47:17.110Z",
3387
+ "event_name": "Events::OrderCreated",
3388
+ "severity": "success",
3389
+ "version": 1,
3390
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3391
+ "span_id": "9701c69df9173825",
3392
+ "service_name": "dummy",
3393
+ "environment": "development",
3394
+ "retention_until": "2027-03-20T09:47:17Z",
3395
+ "payload": {
3396
+ "order_id": "ord_698377",
3397
+ "status": "completed",
3398
+ "customer": {
3399
+ "id": 3437,
3400
+ "email": "[FILTERED]",
3401
+ "locale": "en"
3402
+ },
3403
+ "items": [
3404
+ {
3405
+ "sku": "SKU-662",
3406
+ "qty": 1,
3407
+ "unit_price": 445.67
3408
+ }
3409
+ ]
3410
+ },
3411
+ "metadata": {
3412
+ "source": "web",
3413
+ "started_at": "2026-03-20T09:47:17.046Z",
3414
+ "request_id": "req-c44649ac-4",
3415
+ "path": "/sidekiq/busy",
3416
+ "method": "GET",
3417
+ "controller": "Webhooks::StripeController",
3418
+ "action": "create",
3419
+ "duration_ms": 27
3420
+ }
3421
+ },
3422
+ {
3423
+ "id": "2dc7532f-4f93-a5f7-577fbe81f587",
3424
+ "timestamp": "2026-03-20T09:47:17.099Z",
3425
+ "event_name": "Events::PostDebug",
3426
+ "severity": "debug",
3427
+ "version": 1,
3428
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3429
+ "span_id": "d966b486b88f84c2",
3430
+ "service_name": "dummy",
3431
+ "environment": "development",
3432
+ "retention_until": "2027-03-20T09:47:17Z",
3433
+ "payload": {
3434
+ "message": " → CACHE — /sidekiq/busy id=4736"
3435
+ },
3436
+ "metadata": {
3437
+ "source": "web",
3438
+ "started_at": "2026-03-20T09:47:17.046Z",
3439
+ "request_id": "req-c44649ac-4",
3440
+ "path": "/sidekiq/busy",
3441
+ "method": "GET",
3442
+ "controller": "Webhooks::StripeController",
3443
+ "action": "create",
3444
+ "duration_ms": 1
3445
+ }
3446
+ },
3447
+ {
3448
+ "id": "014bb75c-4b91-b77f-536d8c79d151",
3449
+ "timestamp": "2026-03-20T09:47:17.086Z",
3450
+ "event_name": "Events::PostDebug",
3451
+ "severity": "debug",
3452
+ "version": 1,
3453
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3454
+ "span_id": "7c512ec1b1200b35",
3455
+ "service_name": "dummy",
3456
+ "environment": "development",
3457
+ "retention_until": "2027-03-20T09:47:17Z",
3458
+ "payload": {
3459
+ "message": " → Render /sidekiq/busy — 16.8ms"
3460
+ },
3461
+ "metadata": {
3462
+ "source": "web",
3463
+ "started_at": "2026-03-20T09:47:17.046Z",
3464
+ "request_id": "req-c44649ac-4",
3465
+ "path": "/sidekiq/busy",
3466
+ "method": "GET",
3467
+ "controller": "Webhooks::StripeController",
3468
+ "action": "create",
3469
+ "duration_ms": 4
3470
+ }
3471
+ },
3472
+ {
3473
+ "id": "29607fc7-45a3-a5a5-d0679b3eef53",
3474
+ "timestamp": "2026-03-20T09:47:17.072Z",
3475
+ "event_name": "Events::ApiRequest",
3476
+ "severity": "info",
3477
+ "version": 1,
3478
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3479
+ "span_id": "94a7e0fd025abce2",
3480
+ "service_name": "dummy",
3481
+ "environment": "development",
3482
+ "retention_until": "2027-03-20T09:47:17Z",
3483
+ "payload": {
3484
+ "endpoint": "GET /sidekiq/busy",
3485
+ "status": "ok",
3486
+ "http_status": 200
3487
+ },
3488
+ "metadata": {
3489
+ "source": "web",
3490
+ "started_at": "2026-03-20T09:47:17.046Z",
3491
+ "request_id": "req-c44649ac-4",
3492
+ "path": "/sidekiq/busy",
3493
+ "method": "GET",
3494
+ "controller": "Webhooks::StripeController",
3495
+ "action": "create",
3496
+ "duration_ms": 112
3497
+ }
3498
+ },
3499
+ {
3500
+ "id": "b34aa692-4b2f-88cf-0482db381193",
3501
+ "timestamp": "2026-03-20T09:47:17.058Z",
3502
+ "event_name": "Events::LogInfo",
3503
+ "severity": "info",
3504
+ "version": 1,
3505
+ "trace_id": "c44649ac76701b4558927cd2305ab535",
3506
+ "span_id": "e3181897678dd835",
3507
+ "service_name": "dummy",
3508
+ "environment": "development",
3509
+ "retention_until": "2027-03-20T09:47:17Z",
3510
+ "payload": {
3511
+ "message": "Started GET \"/sidekiq/busy\" for ::1 at 2026-03-20 09:47:17 +0000",
3512
+ "level": "info"
3513
+ },
3514
+ "metadata": {
3515
+ "source": "web",
3516
+ "started_at": "2026-03-20T09:47:17.046Z",
3517
+ "request_id": "req-c44649ac-4",
3518
+ "path": "/sidekiq/busy",
3519
+ "method": "GET",
3520
+ "controller": "Webhooks::StripeController",
3521
+ "action": "create",
3522
+ "duration_ms": 3
3523
+ }
3524
+ },
3525
+ {
3526
+ "id": "8e21a3f8-4ff3-ae3b-b3703dea0801",
3527
+ "timestamp": "2026-03-20T09:47:15.613Z",
3528
+ "event_name": "Events::LogInfo",
3529
+ "severity": "info",
3530
+ "version": 1,
3531
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3532
+ "span_id": "ff0a7b8017d5952f",
3533
+ "service_name": "dummy",
3534
+ "environment": "development",
3535
+ "retention_until": "2027-03-20T09:47:15Z",
3536
+ "payload": {
3537
+ "message": "Completed POST /graphql in 265ms",
3538
+ "level": "info"
3539
+ },
3540
+ "metadata": {
3541
+ "source": "web",
3542
+ "started_at": "2026-03-20T09:47:15.513Z",
3543
+ "request_id": "req-e6c72765-3",
3544
+ "path": "/graphql",
3545
+ "method": "POST",
3546
+ "controller": "Orders::PaymentsController",
3547
+ "action": "create",
3548
+ "duration_ms": 147
3549
+ }
3550
+ },
3551
+ {
3552
+ "id": "65c747a7-467f-9a26-8951d6742b67",
3553
+ "timestamp": "2026-03-20T09:47:15.598Z",
3554
+ "event_name": "Events::OrderCreated",
3555
+ "severity": "success",
3556
+ "version": 1,
3557
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3558
+ "span_id": "23349280acfa070a",
3559
+ "service_name": "dummy",
3560
+ "environment": "development",
3561
+ "retention_until": "2027-03-20T09:47:15Z",
3562
+ "payload": {
3563
+ "order_id": "ord_214284",
3564
+ "status": "pending_payment",
3565
+ "customer": {
3566
+ "id": 6617,
3567
+ "email": "[FILTERED]",
3568
+ "locale": "en"
3569
+ },
3570
+ "items": [
3571
+ {
3572
+ "sku": "SKU-250",
3573
+ "qty": 1,
3574
+ "unit_price": 272.48
3575
+ }
3576
+ ]
3577
+ },
3578
+ "metadata": {
3579
+ "source": "web",
3580
+ "started_at": "2026-03-20T09:47:15.513Z",
3581
+ "request_id": "req-e6c72765-3",
3582
+ "path": "/graphql",
3583
+ "method": "POST",
3584
+ "controller": "Orders::PaymentsController",
3585
+ "action": "create",
3586
+ "duration_ms": 42
3587
+ }
3588
+ },
3589
+ {
3590
+ "id": "53720afb-4bba-b7a3-1992b60de559",
3591
+ "timestamp": "2026-03-20T09:47:15.583Z",
3592
+ "event_name": "Events::PostDebug",
3593
+ "severity": "debug",
3594
+ "version": 1,
3595
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3596
+ "span_id": "831887c2cf3b75fe",
3597
+ "service_name": "dummy",
3598
+ "environment": "development",
3599
+ "retention_until": "2027-03-20T09:47:15Z",
3600
+ "payload": {
3601
+ "message": " → Render — /graphql id=11412"
3602
+ },
3603
+ "metadata": {
3604
+ "source": "web",
3605
+ "started_at": "2026-03-20T09:47:15.513Z",
3606
+ "request_id": "req-e6c72765-3",
3607
+ "path": "/graphql",
3608
+ "method": "POST",
3609
+ "controller": "Orders::PaymentsController",
3610
+ "action": "create",
3611
+ "duration_ms": 7
3612
+ }
3613
+ },
3614
+ {
3615
+ "id": "8928878a-4dfe-baef-588fd5d66260",
3616
+ "timestamp": "2026-03-20T09:47:15.567Z",
3617
+ "event_name": "Events::PostDebug",
3618
+ "severity": "debug",
3619
+ "version": 1,
3620
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3621
+ "span_id": "26956cc8521ea47b",
3622
+ "service_name": "dummy",
3623
+ "environment": "development",
3624
+ "retention_until": "2027-03-20T09:47:15Z",
3625
+ "payload": {
3626
+ "message": " → Render — /graphql id=44358"
3627
+ },
3628
+ "metadata": {
3629
+ "source": "web",
3630
+ "started_at": "2026-03-20T09:47:15.513Z",
3631
+ "request_id": "req-e6c72765-3",
3632
+ "path": "/graphql",
3633
+ "method": "POST",
3634
+ "controller": "Orders::PaymentsController",
3635
+ "action": "create",
3636
+ "duration_ms": 16
3637
+ }
3638
+ },
3639
+ {
3640
+ "id": "8d8a66c5-459f-b8f6-134314b2cdb6",
3641
+ "timestamp": "2026-03-20T09:47:15.554Z",
3642
+ "event_name": "Events::PostDebug",
3643
+ "severity": "debug",
3644
+ "version": 1,
3645
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3646
+ "span_id": "c2f980ca5ea1acb7",
3647
+ "service_name": "dummy",
3648
+ "environment": "development",
3649
+ "retention_until": "2027-03-20T09:47:15Z",
3650
+ "payload": {
3651
+ "message": " → Render /graphql — 17.5ms"
3652
+ },
3653
+ "metadata": {
3654
+ "source": "web",
3655
+ "started_at": "2026-03-20T09:47:15.513Z",
3656
+ "request_id": "req-e6c72765-3",
3657
+ "path": "/graphql",
3658
+ "method": "POST",
3659
+ "controller": "Orders::PaymentsController",
3660
+ "action": "create",
3661
+ "duration_ms": 8
3662
+ }
3663
+ },
3664
+ {
3665
+ "id": "08760356-4fe4-96df-1ce0a264d980",
3666
+ "timestamp": "2026-03-20T09:47:15.541Z",
3667
+ "event_name": "Events::ApiRequest",
3668
+ "severity": "info",
3669
+ "version": 1,
3670
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3671
+ "span_id": "3d53ed92ae42b67d",
3672
+ "service_name": "dummy",
3673
+ "environment": "development",
3674
+ "retention_until": "2027-03-20T09:47:15Z",
3675
+ "payload": {
3676
+ "endpoint": "POST /graphql",
3677
+ "status": "ok",
3678
+ "http_status": 200
3679
+ },
3680
+ "metadata": {
3681
+ "source": "web",
3682
+ "started_at": "2026-03-20T09:47:15.513Z",
3683
+ "request_id": "req-e6c72765-3",
3684
+ "path": "/graphql",
3685
+ "method": "POST",
3686
+ "controller": "Orders::PaymentsController",
3687
+ "action": "create",
3688
+ "duration_ms": 2
3689
+ }
3690
+ },
3691
+ {
3692
+ "id": "7f4bad81-4d82-9c70-066448eb4e70",
3693
+ "timestamp": "2026-03-20T09:47:15.525Z",
3694
+ "event_name": "Events::LogInfo",
3695
+ "severity": "info",
3696
+ "version": 1,
3697
+ "trace_id": "e6c72765a28f158a8485b35fa63f73da",
3698
+ "span_id": "ff6bebb709716c50",
3699
+ "service_name": "dummy",
3700
+ "environment": "development",
3701
+ "retention_until": "2027-03-20T09:47:15Z",
3702
+ "payload": {
3703
+ "message": "Started POST \"/graphql\" for ::1 at 2026-03-20 09:47:15 +0000",
3704
+ "level": "info"
3705
+ },
3706
+ "metadata": {
3707
+ "source": "web",
3708
+ "started_at": "2026-03-20T09:47:15.513Z",
3709
+ "request_id": "req-e6c72765-3",
3710
+ "path": "/graphql",
3711
+ "method": "POST",
3712
+ "controller": "Orders::PaymentsController",
3713
+ "action": "create",
3714
+ "duration_ms": 2
3715
+ }
3716
+ },
3717
+ {
3718
+ "id": "f16287ce-4f3a-ad75-ee9f84cf765f",
3719
+ "timestamp": "2026-03-20T09:47:13.745Z",
3720
+ "event_name": "Events::LogInfo",
3721
+ "severity": "info",
3722
+ "version": 1,
3723
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3724
+ "span_id": "8edfc5d7b3f90ce8",
3725
+ "service_name": "dummy",
3726
+ "environment": "development",
3727
+ "retention_until": "2027-03-20T09:47:13Z",
3728
+ "payload": {
3729
+ "message": "Completed POST /webhooks/stripe in 703ms",
3730
+ "level": "info"
3731
+ },
3732
+ "metadata": {
3733
+ "source": "web",
3734
+ "started_at": "2026-03-20T09:47:13.643Z",
3735
+ "request_id": "req-8e4f6451-2",
3736
+ "path": "/webhooks/stripe",
3737
+ "method": "POST",
3738
+ "controller": "Orders::PaymentsController",
3739
+ "action": "create",
3740
+ "duration_ms": 120
3741
+ }
3742
+ },
3743
+ {
3744
+ "id": "4e062502-4d66-a2c5-55c788ba159a",
3745
+ "timestamp": "2026-03-20T09:47:13.733Z",
3746
+ "event_name": "Events::PaymentFailed",
3747
+ "severity": "error",
3748
+ "version": 1,
3749
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3750
+ "span_id": "6adb72887c1dd13d",
3751
+ "service_name": "dummy",
3752
+ "environment": "development",
3753
+ "retention_until": "2027-03-20T09:47:13Z",
3754
+ "payload": {
3755
+ "order_id": "ord_375714",
3756
+ "amount": 118.83,
3757
+ "gateway": "stripe",
3758
+ "decline_code": "processing_error"
3759
+ },
3760
+ "metadata": {
3761
+ "source": "web",
3762
+ "started_at": "2026-03-20T09:47:13.643Z",
3763
+ "request_id": "req-8e4f6451-2",
3764
+ "path": "/webhooks/stripe",
3765
+ "method": "POST",
3766
+ "controller": "Orders::PaymentsController",
3767
+ "action": "create",
3768
+ "duration_ms": 106
3769
+ }
3770
+ },
3771
+ {
3772
+ "id": "8a12554a-467f-a5f9-27f6e5663d5b",
3773
+ "timestamp": "2026-03-20T09:47:13.721Z",
3774
+ "event_name": "Events::OrderCreated",
3775
+ "severity": "success",
3776
+ "version": 1,
3777
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3778
+ "span_id": "5b3655d85168ace6",
3779
+ "service_name": "dummy",
3780
+ "environment": "development",
3781
+ "retention_until": "2027-03-20T09:47:13Z",
3782
+ "payload": {
3783
+ "order_id": "ord_375714",
3784
+ "status": "completed",
3785
+ "customer": {
3786
+ "id": 7393,
3787
+ "email": "[FILTERED]",
3788
+ "locale": "en"
3789
+ },
3790
+ "items": [
3791
+ {
3792
+ "sku": "SKU-484",
3793
+ "qty": 1,
3794
+ "unit_price": 117.6
3795
+ }
3796
+ ]
3797
+ },
3798
+ "metadata": {
3799
+ "source": "web",
3800
+ "started_at": "2026-03-20T09:47:13.643Z",
3801
+ "request_id": "req-8e4f6451-2",
3802
+ "path": "/webhooks/stripe",
3803
+ "method": "POST",
3804
+ "controller": "Orders::PaymentsController",
3805
+ "action": "create",
3806
+ "duration_ms": 62
3807
+ }
3808
+ },
3809
+ {
3810
+ "id": "9fd5aaa9-4a2c-a63d-bfb81b01abf4",
3811
+ "timestamp": "2026-03-20T09:47:13.706Z",
3812
+ "event_name": "Events::PostDebug",
3813
+ "severity": "debug",
3814
+ "version": 1,
3815
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3816
+ "span_id": "df180a8574df731b",
3817
+ "service_name": "dummy",
3818
+ "environment": "development",
3819
+ "retention_until": "2027-03-20T09:47:13Z",
3820
+ "payload": {
3821
+ "message": " → N+1 — /webhooks/stripe id=46700"
3822
+ },
3823
+ "metadata": {
3824
+ "source": "web",
3825
+ "started_at": "2026-03-20T09:47:13.643Z",
3826
+ "request_id": "req-8e4f6451-2",
3827
+ "path": "/webhooks/stripe",
3828
+ "method": "POST",
3829
+ "controller": "Orders::PaymentsController",
3830
+ "action": "create",
3831
+ "duration_ms": 12
3832
+ }
3833
+ },
3834
+ {
3835
+ "id": "9abb18e6-4aec-868e-ccaa33fbd21c",
3836
+ "timestamp": "2026-03-20T09:47:13.690Z",
3837
+ "event_name": "Events::PostDebug",
3838
+ "severity": "debug",
3839
+ "version": 1,
3840
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3841
+ "span_id": "3a928423f15eda0c",
3842
+ "service_name": "dummy",
3843
+ "environment": "development",
3844
+ "retention_until": "2027-03-20T09:47:13Z",
3845
+ "payload": {
3846
+ "message": " → N+1 — /webhooks/stripe id=16199"
3847
+ },
3848
+ "metadata": {
3849
+ "source": "web",
3850
+ "started_at": "2026-03-20T09:47:13.643Z",
3851
+ "request_id": "req-8e4f6451-2",
3852
+ "path": "/webhooks/stripe",
3853
+ "method": "POST",
3854
+ "controller": "Orders::PaymentsController",
3855
+ "action": "create",
3856
+ "duration_ms": 19
3857
+ }
3858
+ },
3859
+ {
3860
+ "id": "b5ee00ce-440e-9759-de2970785b7b",
3861
+ "timestamp": "2026-03-20T09:47:13.680Z",
3862
+ "event_name": "Events::PostDebug",
3863
+ "severity": "debug",
3864
+ "version": 1,
3865
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3866
+ "span_id": "1b9ec5cc33a3deb2",
3867
+ "service_name": "dummy",
3868
+ "environment": "development",
3869
+ "retention_until": "2027-03-20T09:47:13Z",
3870
+ "payload": {
3871
+ "message": " → Render — /webhooks/stripe id=41524"
3872
+ },
3873
+ "metadata": {
3874
+ "source": "web",
3875
+ "started_at": "2026-03-20T09:47:13.643Z",
3876
+ "request_id": "req-8e4f6451-2",
3877
+ "path": "/webhooks/stripe",
3878
+ "method": "POST",
3879
+ "controller": "Orders::PaymentsController",
3880
+ "action": "create",
3881
+ "duration_ms": 4
3882
+ }
3883
+ },
3884
+ {
3885
+ "id": "1e9dba64-4fae-b5cd-6a82c2c2cf00",
3886
+ "timestamp": "2026-03-20T09:47:13.669Z",
3887
+ "event_name": "Events::ApiRequest",
3888
+ "severity": "info",
3889
+ "version": 1,
3890
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3891
+ "span_id": "b8c344048fafdcd9",
3892
+ "service_name": "dummy",
3893
+ "environment": "development",
3894
+ "retention_until": "2027-03-20T09:47:13Z",
3895
+ "payload": {
3896
+ "endpoint": "POST /webhooks/stripe",
3897
+ "status": "ok",
3898
+ "http_status": 200
3899
+ },
3900
+ "metadata": {
3901
+ "source": "web",
3902
+ "started_at": "2026-03-20T09:47:13.643Z",
3903
+ "request_id": "req-8e4f6451-2",
3904
+ "path": "/webhooks/stripe",
3905
+ "method": "POST",
3906
+ "controller": "Orders::PaymentsController",
3907
+ "action": "create",
3908
+ "duration_ms": 119
3909
+ }
3910
+ },
3911
+ {
3912
+ "id": "5eedf1f6-4996-ae3d-36d7aa79e324",
3913
+ "timestamp": "2026-03-20T09:47:13.654Z",
3914
+ "event_name": "Events::LogInfo",
3915
+ "severity": "info",
3916
+ "version": 1,
3917
+ "trace_id": "8e4f645180f8a7d1dce426b07380466b",
3918
+ "span_id": "bac77862975f4aab",
3919
+ "service_name": "dummy",
3920
+ "environment": "development",
3921
+ "retention_until": "2027-03-20T09:47:13Z",
3922
+ "payload": {
3923
+ "message": "Started POST \"/webhooks/stripe\" for ::1 at 2026-03-20 09:47:13 +0000",
3924
+ "level": "info"
3925
+ },
3926
+ "metadata": {
3927
+ "source": "web",
3928
+ "started_at": "2026-03-20T09:47:13.643Z",
3929
+ "request_id": "req-8e4f6451-2",
3930
+ "path": "/webhooks/stripe",
3931
+ "method": "POST",
3932
+ "controller": "Orders::PaymentsController",
3933
+ "action": "create",
3934
+ "duration_ms": 3
3935
+ }
3936
+ },
3937
+ {
3938
+ "id": "0bf247ff-4ddb-8abb-e3cf3b96e70e",
3939
+ "timestamp": "2026-03-20T09:47:13.305Z",
3940
+ "event_name": "Events::LogInfo",
3941
+ "severity": "info",
3942
+ "version": 1,
3943
+ "trace_id": "1838b691faa49564f97db8592ff3978d",
3944
+ "span_id": "74c100bd1731fbbd",
3945
+ "service_name": "dummy",
3946
+ "environment": "development",
3947
+ "retention_until": "2027-03-20T09:47:13Z",
3948
+ "payload": {
3949
+ "message": "Job BillingSyncJob done shard=14",
3950
+ "level": "info"
3951
+ },
3952
+ "metadata": {
3953
+ "source": "job",
3954
+ "started_at": "2026-03-20T09:47:12.181Z",
3955
+ "duration_ms": 60
3956
+ }
3957
+ },
3958
+ {
3959
+ "id": "32e755f2-4a50-8187-36a2ca48f1a2",
3960
+ "timestamp": "2026-03-20T09:47:13.179Z",
3961
+ "event_name": "Events::LogInfo",
3962
+ "severity": "info",
3963
+ "version": 1,
3964
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
3965
+ "span_id": "c571f9209b20317a",
3966
+ "service_name": "dummy",
3967
+ "environment": "development",
3968
+ "retention_until": "2027-03-20T09:47:13Z",
3969
+ "payload": {
3970
+ "message": "Completed GET /admin/users in 784ms",
3971
+ "level": "info"
3972
+ },
3973
+ "metadata": {
3974
+ "source": "web",
3975
+ "started_at": "2026-03-20T09:47:13.094Z",
3976
+ "request_id": "req-f541b874-1",
3977
+ "path": "/admin/users",
3978
+ "method": "GET",
3979
+ "controller": "Orders::PaymentsController",
3980
+ "action": "create",
3981
+ "duration_ms": 48
3982
+ }
3983
+ },
3984
+ {
3985
+ "id": "f71af8d8-42fb-98bb-217b46a7e1ec",
3986
+ "timestamp": "2026-03-20T09:47:13.169Z",
3987
+ "event_name": "Events::OrderCreated",
3988
+ "severity": "success",
3989
+ "version": 1,
3990
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
3991
+ "span_id": "24139c284bd8949c",
3992
+ "service_name": "dummy",
3993
+ "environment": "development",
3994
+ "retention_until": "2027-03-20T09:47:13Z",
3995
+ "payload": {
3996
+ "order_id": "ord_555840",
3997
+ "status": "cancelled",
3998
+ "customer": {
3999
+ "id": 65,
4000
+ "email": "[FILTERED]",
4001
+ "locale": "en"
4002
+ },
4003
+ "items": [
4004
+ {
4005
+ "sku": "SKU-956",
4006
+ "qty": 1,
4007
+ "unit_price": 492.52
4008
+ }
4009
+ ]
4010
+ },
4011
+ "metadata": {
4012
+ "source": "web",
4013
+ "started_at": "2026-03-20T09:47:13.094Z",
4014
+ "request_id": "req-f541b874-1",
4015
+ "path": "/admin/users",
4016
+ "method": "GET",
4017
+ "controller": "Orders::PaymentsController",
4018
+ "action": "create",
4019
+ "duration_ms": 88
4020
+ }
4021
+ },
4022
+ {
4023
+ "id": "322beed6-44fb-83f8-5ebd5348d927",
4024
+ "timestamp": "2026-03-20T09:47:13.156Z",
4025
+ "event_name": "Events::PostDebug",
4026
+ "severity": "debug",
4027
+ "version": 1,
4028
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
4029
+ "span_id": "d8335ed463805acf",
4030
+ "service_name": "dummy",
4031
+ "environment": "development",
4032
+ "retention_until": "2027-03-20T09:47:13Z",
4033
+ "payload": {
4034
+ "message": " → CACHE — /admin/users id=8530"
4035
+ },
4036
+ "metadata": {
4037
+ "source": "web",
4038
+ "started_at": "2026-03-20T09:47:13.094Z",
4039
+ "request_id": "req-f541b874-1",
4040
+ "path": "/admin/users",
4041
+ "method": "GET",
4042
+ "controller": "Orders::PaymentsController",
4043
+ "action": "create",
4044
+ "duration_ms": 15
4045
+ }
4046
+ },
4047
+ {
4048
+ "id": "d79ff991-4ad9-962b-00a1652890c9",
4049
+ "timestamp": "2026-03-20T09:47:13.145Z",
4050
+ "event_name": "Events::PostDebug",
4051
+ "severity": "debug",
4052
+ "version": 1,
4053
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
4054
+ "span_id": "e51367bded3983e3",
4055
+ "service_name": "dummy",
4056
+ "environment": "development",
4057
+ "retention_until": "2027-03-20T09:47:13Z",
4058
+ "payload": {
4059
+ "message": " → SQL — /admin/users id=32607"
4060
+ },
4061
+ "metadata": {
4062
+ "source": "web",
4063
+ "started_at": "2026-03-20T09:47:13.094Z",
4064
+ "request_id": "req-f541b874-1",
4065
+ "path": "/admin/users",
4066
+ "method": "GET",
4067
+ "controller": "Orders::PaymentsController",
4068
+ "action": "create",
4069
+ "duration_ms": 16
4070
+ }
4071
+ },
4072
+ {
4073
+ "id": "08cdafae-4022-b8cd-8c50423f67a3",
4074
+ "timestamp": "2026-03-20T09:47:13.135Z",
4075
+ "event_name": "Events::PostDebug",
4076
+ "severity": "debug",
4077
+ "version": 1,
4078
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
4079
+ "span_id": "2ea70631a99b0f67",
4080
+ "service_name": "dummy",
4081
+ "environment": "development",
4082
+ "retention_until": "2027-03-20T09:47:13Z",
4083
+ "payload": {
4084
+ "message": " → SQL /admin/users — 6.5ms"
4085
+ },
4086
+ "metadata": {
4087
+ "source": "web",
4088
+ "started_at": "2026-03-20T09:47:13.094Z",
4089
+ "request_id": "req-f541b874-1",
4090
+ "path": "/admin/users",
4091
+ "method": "GET",
4092
+ "controller": "Orders::PaymentsController",
4093
+ "action": "create",
4094
+ "duration_ms": 2
4095
+ }
4096
+ },
4097
+ {
4098
+ "id": "4dfb2b08-4d59-8a34-db81af29e553",
4099
+ "timestamp": "2026-03-20T09:47:13.122Z",
4100
+ "event_name": "Events::ApiRequest",
4101
+ "severity": "info",
4102
+ "version": 1,
4103
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
4104
+ "span_id": "3db3d85b70add56e",
4105
+ "service_name": "dummy",
4106
+ "environment": "development",
4107
+ "retention_until": "2027-03-20T09:47:13Z",
4108
+ "payload": {
4109
+ "endpoint": "GET /admin/users",
4110
+ "status": "ok",
4111
+ "http_status": 200
4112
+ },
4113
+ "metadata": {
4114
+ "source": "web",
4115
+ "started_at": "2026-03-20T09:47:13.094Z",
4116
+ "request_id": "req-f541b874-1",
4117
+ "path": "/admin/users",
4118
+ "method": "GET",
4119
+ "controller": "Orders::PaymentsController",
4120
+ "action": "create",
4121
+ "duration_ms": 60
4122
+ }
4123
+ },
4124
+ {
4125
+ "id": "dc250de4-4f32-a286-78147353eb48",
4126
+ "timestamp": "2026-03-20T09:47:13.106Z",
4127
+ "event_name": "Events::LogInfo",
4128
+ "severity": "info",
4129
+ "version": 1,
4130
+ "trace_id": "f541b87405c9a54819b18ebe529f6419",
4131
+ "span_id": "10a738a603655511",
4132
+ "service_name": "dummy",
4133
+ "environment": "development",
4134
+ "retention_until": "2027-03-20T09:47:13Z",
4135
+ "payload": {
4136
+ "message": "Started GET \"/admin/users\" for ::1 at 2026-03-20 09:47:13 +0000",
4137
+ "level": "info"
4138
+ },
4139
+ "metadata": {
4140
+ "source": "web",
4141
+ "started_at": "2026-03-20T09:47:13.094Z",
4142
+ "request_id": "req-f541b874-1",
4143
+ "path": "/admin/users",
4144
+ "method": "GET",
4145
+ "controller": "Orders::PaymentsController",
4146
+ "action": "create",
4147
+ "duration_ms": 3
4148
+ }
4149
+ },
4150
+ {
4151
+ "id": "365bdb25-4981-94bf-93bb2ef39914",
4152
+ "timestamp": "2026-03-20T09:47:12.789Z",
4153
+ "event_name": "Events::ReportCreated",
4154
+ "severity": "info",
4155
+ "version": 1,
4156
+ "trace_id": "1838b691faa49564f97db8592ff3978d",
4157
+ "span_id": "9e1344a04de2d1cb",
4158
+ "service_name": "dummy",
4159
+ "environment": "development",
4160
+ "retention_until": "2027-03-20T09:47:12Z",
4161
+ "payload": {
4162
+ "title": "Export batch 4385",
4163
+ "description": "Queued by BillingSyncJob",
4164
+ "employee_ids": [
4165
+ 22,
4166
+ 89
4167
+ ],
4168
+ "author": "system"
4169
+ },
4170
+ "metadata": {
4171
+ "source": "job",
4172
+ "started_at": "2026-03-20T09:47:12.181Z",
4173
+ "duration_ms": 415
4174
+ }
4175
+ },
4176
+ {
4177
+ "id": "1997f4d6-414a-95ca-b857556ded74",
4178
+ "timestamp": "2026-03-20T09:47:12.194Z",
4179
+ "event_name": "Events::BackgroundJobStarted",
4180
+ "severity": "info",
4181
+ "version": 1,
4182
+ "trace_id": "1838b691faa49564f97db8592ff3978d",
4183
+ "span_id": "99e2ac632492eb67",
4184
+ "service_name": "dummy",
4185
+ "environment": "development",
4186
+ "retention_until": "2027-03-20T09:47:12Z",
4187
+ "payload": {
4188
+ "job_class": "BillingSyncJob",
4189
+ "job_id": "f362035c-450e-b46a-d4479941aebc",
4190
+ "queue": "low",
4191
+ "arguments": [
4192
+ {
4193
+ "batch_id": 67222,
4194
+ "shard": 4
4195
+ }
4196
+ ],
4197
+ "enqueued_at": "2026-03-20T09:47:11.181Z"
4198
+ },
4199
+ "metadata": {
4200
+ "source": "job",
4201
+ "started_at": "2026-03-20T09:47:12.181Z",
4202
+ "duration_ms": 468
4203
+ }
4204
+ }
4205
+ ]