feat: add opentelemetry/opentelemetry-metrics-runtime to the distro#131
Merged
Merged
Conversation
Adds open-telemetry/opentelemetry-metrics-runtime 0.1.0 as a production
dependency so the distro automatically exports PHP runtime metrics (memory,
GC, etc.) via the native async OTLP transport.
Supporting changes required to make eager SDK initialization safe:
- PhpPartFacade::earlySetup() now also registers the distro's resource-
attribute override and SPI detector, not only the native OTLP serializer
and transport factory. $nativePartVersion is stored before
registerAutoloaderForVendorDir() runs so earlySetup() can read it when
triggered by a Composer files-autoload entry.
- New tools/build/fix_composer_autoload_order.php applies two ordering
fixes to any vendor directory (scoped and not_scoped alike):
1. Prepends earlySetup.php as the very first files-autoload entry so
the distro's overrides win the race against eager instrumentation init.
2. Reorders exporter-otlp/_register.php before sdk/_autoload.php so that
OTLP exporter factories are registered when the SDK auto-initializer
runs during eager init (fixes "Span exporter factory not defined for:
otlp" on non-scoped builds).
The two ordering fixes previously embedded in fix_scoped_composer_autoload.php
(scoped-only) are removed from there; that script now only handles the three
scoping-specific fixes (ClassLoader rewrite, PSR-4/classmap rewrite, hash
rehashing).
- MockOTelCollector now accepts /v1/metrics and /v1/logs with HTTP 202 so
the collector mock does not crash when metrics-runtime triggers a metrics
flush on request shutdown.
- generate_composer_lock_files.sh excludes opentelemetry-metrics-runtime
from the test lock-file variant (consistent with opentelemetry-auto-*).
SergeyKleyman
approved these changes
Jul 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds open-telemetry/opentelemetry-metrics-runtime 0.1.0 as a production dependency so the distro automatically exports PHP runtime metrics (memory, GC, etc.) via the native async OTLP transport.
Supporting changes required to make eager SDK initialization safe:
PhpPartFacade::earlySetup() now also registers the distro's resource- attribute override and SPI detector, not only the native OTLP serializer and transport factory. $nativePartVersion is stored before registerAutoloaderForVendorDir() runs so earlySetup() can read it when triggered by a Composer files-autoload entry.
New tools/build/fix_composer_autoload_order.php applies two ordering fixes to any vendor directory (scoped and not_scoped alike):
MockOTelCollector now accepts /v1/metrics and /v1/logs with HTTP 202 so the collector mock does not crash when metrics-runtime triggers a metrics flush on request shutdown.
generate_composer_lock_files.sh excludes opentelemetry-metrics-runtime from the test lock-file variant (consistent with opentelemetry-auto-*).