You've already forked wp-fedistream
fix: Simplify localhost detection and add early metrics support
Some checks failed
Create Release Package / build-release (push) Failing after 53s
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:
@@ -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;
|
||||||
|
|||||||
@@ -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.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user