Skip to content

feat(flow-php/etl): the run report shows the peak memory of every process - #2713

Merged
norberttech merged 1 commit into
1.xfrom
run-report
Oct 31, 2026
Merged

norberttech merged 1 commit into
1.xfrom
run-report

Conversation

@norberttech

Copy link
Copy Markdown
Member

Resolves: #xxx

Change Log


Added

  • flow-php/etl - Statistics::$processes with the OS peak memory of the parent and of every worker
  • flow-php/etl - Report::normalize() for a JSON form of the run report
  • flow-php/etl - warning when withSchema() or withColumnStatistics() stop parallel writes
  • flow-php/cli - heap, process, worker and summed memory peaks in the run statistics

Fixed

  • flow-php/etl - column statistics min and max skip NaN

Changed

  • flow-php/etl - Statistics::$memory renamed to $heap
  • flow-php/etl - SourceCounts renamed to RunCounts, it also collects worker peaks
  • flow-php/etl - the run report reads memory and row count from telemetry instead of measuring them twice

Removed

Deprecated

Security

…cess

- Statistics::$memory is now $heap; the new $processes holds the OS peak of the parent and of every worker
- SourceCounts is now RunCounts; launchers report worker peaks into it, with worker() and absorbWorkers()
- the Report reads the memory and row count that TelemetryContext keeps; it no longer measures them again
- Report::normalize() gives the JSON form for CI; INF and NaN are encoded, never dropped
- column statistics: min and max skip NaN, as in Parquet and arrow-rs
- the CLI prints heap, process, worker and summed peaks; analyze() warns when it stops parallel writes
@norberttech norberttech added this to the 0.47.0 milestone Oct 31, 2026
@codecov

codecov Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.48485% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.50%. Comparing base (54287c4) to head (3b9e483).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff              @@
##                1.x    #2713      +/-   ##
============================================
+ Coverage     89.89%   90.50%   +0.60%     
- Complexity      290    31045   +30755     
============================================
  Files          2177     2178       +1     
  Lines         89673    89805     +132     
============================================
+ Hits          80609    81274     +665     
+ Misses         9064     8531     -533     
Components Coverage Δ
etl 95.88% <98.33%> (+0.07%) ⬆️
cli 87.16% <100.00%> (+0.10%) ⬆️
lib-array-dot 96.52% <ø> (ø)
lib-azure-sdk 64.17% <ø> (+1.02%) ⬆️
lib-doctrine-dbal-bulk 94.24% <ø> (ø)
lib-filesystem 88.96% <ø> (+3.54%) ⬆️
lib-types 94.60% <ø> (ø)
lib-parquet 82.68% <ø> (ø)
lib-parquet-viewer 83.15% <ø> (ø)
lib-snappy 90.74% <ø> (ø)
lib-dremel 0.00% <ø> (ø)
lib-postgresql 89.44% <ø> (ø)
lib-telemetry 86.85% <ø> (ø)
bridge-filesystem-async-aws 96.12% <ø> (+12.17%) ⬆️
bridge-filesystem-azure 94.39% <ø> (+13.90%) ⬆️
bridge-filesystem-sftp 90.29% <ø> (+4.85%) ⬆️
bridge-monolog-http 96.84% <ø> (ø)
bridge-monolog-telemetry 94.79% <ø> (ø)
bridge-openapi-specification 91.95% <ø> (ø)
symfony-http-foundation 80.76% <ø> (ø)
bridge-psr18-telemetry 100.00% <ø> (ø)
bridge-psr3-telemetry 98.95% <ø> (ø)
bridge-psr7-telemetry 100.00% <ø> (ø)
bridge-telemetry-otlp 90.11% <ø> (ø)
bridge-symfony-http-foundation-telemetry 92.85% <ø> (ø)
bridge-symfony-filesystem-bundle 90.72% <ø> (ø)
bridge-symfony-filesystem-cache 98.18% <ø> (ø)
bridge-symfony-postgresql-bundle 93.35% <ø> (ø)
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 90.77% <ø> (ø)
adapter-chartjs 82.11% <ø> (ø)
adapter-csv 97.67% <ø> (+8.62%) ⬆️
adapter-doctrine 95.13% <ø> (ø)
adapter-google-sheet 97.51% <ø> (+27.65%) ⬆️
adapter-http 87.18% <ø> (ø)
adapter-json 90.52% <ø> (+3.57%) ⬆️
adapter-logger 47.05% <ø> (ø)
adapter-parquet 96.28% <ø> (ø)
adapter-text 97.70% <ø> (ø)
adapter-xml 98.01% <ø> (ø)
adapter-avro 6.25% <ø> (ø)
adapter-excel 96.75% <ø> (+8.49%) ⬆️
adapter-postgresql 97.34% <ø> (ø)
adapter-seal 89.91% <ø> (ø)
bridge-phpunit-postgresql 75.30% <ø> (ø)
bridge-phpunit-telemetry 87.36% <ø> (ø)
bridge-phpstan-types 0.00% <ø> (ø)
bridge-postgresql-valinor 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@norberttech
norberttech merged commit 153a098 into 1.x Oct 31, 2026
21 checks passed
@norberttech
norberttech deleted the run-report branch October 31, 2026 20:49
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant