Refine PHP Fatal Error Counting (#51363)
* Refine PHP Fatal Error Counting in MC Stat * Add changelog * Fix import
This commit is contained in:
parent
bd1bbfd63c
commit
dee8c619f0
|
@ -0,0 +1,4 @@
|
||||||
|
Significance: patch
|
||||||
|
Type: enhancement
|
||||||
|
|
||||||
|
Refine PHP Fatal Error Counting in MC Stat
|
|
@ -27,7 +27,6 @@ use Automattic\WooCommerce\Internal\Traits\AccessiblePrivateMethods;
|
||||||
use Automattic\WooCommerce\Internal\Utilities\LegacyRestApiStub;
|
use Automattic\WooCommerce\Internal\Utilities\LegacyRestApiStub;
|
||||||
use Automattic\WooCommerce\Internal\Utilities\WebhookUtil;
|
use Automattic\WooCommerce\Internal\Utilities\WebhookUtil;
|
||||||
use Automattic\WooCommerce\Internal\Admin\Marketplace;
|
use Automattic\WooCommerce\Internal\Admin\Marketplace;
|
||||||
use Automattic\WooCommerce\Internal\McStats;
|
|
||||||
use Automattic\WooCommerce\Proxies\LegacyProxy;
|
use Automattic\WooCommerce\Proxies\LegacyProxy;
|
||||||
use Automattic\WooCommerce\Utilities\{LoggingUtil, RestApiUtil, TimeUtil};
|
use Automattic\WooCommerce\Utilities\{LoggingUtil, RestApiUtil, TimeUtil};
|
||||||
use Automattic\WooCommerce\Internal\Logging\RemoteLogger;
|
use Automattic\WooCommerce\Internal\Logging\RemoteLogger;
|
||||||
|
@ -407,12 +406,6 @@ final class WooCommerce {
|
||||||
$context
|
$context
|
||||||
);
|
);
|
||||||
|
|
||||||
// Record fatal error stats.
|
|
||||||
$container = wc_get_container();
|
|
||||||
$mc_stats = $container->get( McStats::class );
|
|
||||||
$mc_stats->add( 'error', 'fatal-errors-during-shutdown' );
|
|
||||||
$mc_stats->do_server_side_stats();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action triggered when there are errors during shutdown.
|
* Action triggered when there are errors during shutdown.
|
||||||
*
|
*
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace Automattic\WooCommerce\Internal\Logging;
|
||||||
|
|
||||||
use Automattic\WooCommerce\Utilities\FeaturesUtil;
|
use Automattic\WooCommerce\Utilities\FeaturesUtil;
|
||||||
use Automattic\WooCommerce\Utilities\StringUtil;
|
use Automattic\WooCommerce\Utilities\StringUtil;
|
||||||
|
use Automattic\WooCommerce\Internal\McStats;
|
||||||
use WC_Rate_Limiter;
|
use WC_Rate_Limiter;
|
||||||
use WC_Log_Levels;
|
use WC_Log_Levels;
|
||||||
|
|
||||||
|
@ -178,6 +179,15 @@ class RemoteLogger extends \WC_Log_Handler {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Record fatal error stats.
|
||||||
|
$mc_stats = wc_get_container()->get( McStats::class );
|
||||||
|
$mc_stats->add( 'error', 'critical-errors' );
|
||||||
|
$mc_stats->do_server_side_stats();
|
||||||
|
} catch ( \Throwable $e ) {
|
||||||
|
error_log( 'Warning: Failed to record fatal error stats: ' . $e->getMessage() ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
||||||
|
}
|
||||||
|
|
||||||
if ( WC_Rate_Limiter::retried_too_soon( self::RATE_LIMIT_ID ) ) {
|
if ( WC_Rate_Limiter::retried_too_soon( self::RATE_LIMIT_ID ) ) {
|
||||||
error_log( 'Remote logging throttled.' ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
error_log( 'Remote logging throttled.' ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -60,4 +60,17 @@ class McStats extends A8c_Mc_Stats {
|
||||||
|
|
||||||
return parent::do_server_side_stat( $url );
|
return parent::do_server_side_stat( $url );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pings the stats server for the current stats and empty the stored stats from the object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function do_server_side_stats() {
|
||||||
|
if ( ! \WC_Site_Tracking::is_tracking_enabled() ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::do_server_side_stats();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue