1.5.0-beta1: external services collector + probe-onboarding warnings Beta tag deliberate. The Guzzle middleware API surface is one we hadn't touched before, and the 1.3.0 lesson (new collector shipped stable, wired against the wrong API tier, dead in production for four releases) is recent enough that a soak gate is the right move. What ships: - ExternalServicesInstrumentor + ExternalServicesMiddleware split. Middleware tagged http_client_middleware; Drupal core's HandlerStackConfigurator pushes it onto every Guzzle handler stack. Records host + elapsed time as each Guzzle promise resolves (fulfilled or rejected; failed requests still count). Short-circuits to one bool check when the instrumentor is disabled, so default installs pay near-zero overhead. - ExternalServicesCollector. Shape 2 (async-decoration) plus Shape 4 (panel-contribution), mirroring 1.4.3's DatabaseCollector. Resets/configures the instrumentor at kernel.request priority 256; ships five counters (call_count, total_ms, slow_call_count, slowest_ms, slowest_host) to AsyncContextStore at kernel.terminate. - BeaconStorage::correlateByExternalServiceCount. Buckets at 0 / 1-5 / 6-20 / 21-50 / 51+; median CWV metric per bucket. The zero bucket gets its own row so operators can compare CWV on pages with no third-party dependency against the API-heavy tail. - Two new config keys via cwv_update_10037: external_services_instrumentation_enabled (bool, default false) external_services_slow_threshold_ms (int, default 500; higher than database's 100ms because outbound HTTP has inherent network round-trip cost). - Form surface added to Correlation collectors section. - Probe-onboarding hook_requirements warnings at /admin/reports/status: two new runtime checks flagging the two common half-configured states (probe_enabled on but nothing to probe; probes configured but master switch off). Driven by 1.4.1 / 1.4.4 soak feedback. - ExternalServicesInstrumentorTest unit test (7 cases) follows the DatabaseInstrumentorTest template. Catches the same class of regression that bit 1.3.0 at commit time. Library version 1.4.4 -> 1.5.0-beta1. First all-green CI on the new beta tag: phpunit, cspell, eslint, phpstan, phpcs, composer-lint, composer all success, no allow_failure crutches.