fix: Simplify localhost detection and add early metrics support
Some checks failed
Create Release Package / build-release (push) Failing after 53s

- License/Manager: Simplify localhost TLD detection to .localhost and .local
- Prometheus/Integration: Add collect_early_metrics() for wp-prometheus early mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-02 22:53:07 +01:00
parent d4e7c9127d
commit 36a546c224
2 changed files with 35 additions and 9 deletions

View File

@@ -443,23 +443,25 @@ final class Manager {
public static function is_localhost(): bool { public static function is_localhost(): bool {
$host = wp_parse_url( home_url(), PHP_URL_HOST ); $host = wp_parse_url( home_url(), PHP_URL_HOST );
// Common localhost identifiers. $localhost_patterns = array(
$localhost_hosts = array(
'localhost', 'localhost',
'127.0.0.1', '127.0.0.1',
'::1', '::1',
); );
if ( in_array( $host, $localhost_hosts, true ) ) { // Check exact matches.
if ( in_array( $host, $localhost_patterns, true ) ) {
return true; return true;
} }
// Common local development TLDs. // Check .localhost TLD (e.g., mysite.localhost).
$local_tlds = array( '.local', '.test', '.localhost', '.dev.local' ); if ( str_ends_with( $host, '.localhost' ) ) {
foreach ( $local_tlds as $tld ) {
if ( str_ends_with( $host, $tld ) ) {
return true; return true;
} }
// Check .local TLD (common for local development).
if ( str_ends_with( $host, '.local' ) ) {
return true;
} }
return false; return false;

View File

@@ -76,6 +76,30 @@ class Integration {
return $this->prometheus_active; return $this->prometheus_active;
} }
/**
* Collect metrics for early metrics mode.
*
* This static method can be called directly by wp-prometheus during early
* metrics mode when the wp_prometheus_collect_metrics hook is skipped.
*
* Usage in wp-prometheus early metrics handler:
*
* ```php
* // After creating the collector, before rendering:
* if ( class_exists( 'WP_FediStream\Prometheus\Integration' ) ) {
* \WP_FediStream\Prometheus\Integration::collect_early_metrics( $collector );
* }
* ```
*
* @param object $collector The Prometheus collector instance.
* @return void
*/
public static function collect_early_metrics( object $collector ): void {
$integration = new self();
$integration->prometheus_active = true; // Force active since we're being called directly.
$integration->collect_metrics( $collector );
}
/** /**
* Collect FediStream metrics. * Collect FediStream metrics.
* *