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\WebhookUtil;
|
||||
use Automattic\WooCommerce\Internal\Admin\Marketplace;
|
||||
use Automattic\WooCommerce\Internal\McStats;
|
||||
use Automattic\WooCommerce\Proxies\LegacyProxy;
|
||||
use Automattic\WooCommerce\Utilities\{LoggingUtil, RestApiUtil, TimeUtil};
|
||||
use Automattic\WooCommerce\Internal\Logging\RemoteLogger;
|
||||
|
@ -407,12 +406,6 @@ final class WooCommerce {
|
|||
$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.
|
||||
*
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace Automattic\WooCommerce\Internal\Logging;
|
|||
|
||||
use Automattic\WooCommerce\Utilities\FeaturesUtil;
|
||||
use Automattic\WooCommerce\Utilities\StringUtil;
|
||||
use Automattic\WooCommerce\Internal\McStats;
|
||||
use WC_Rate_Limiter;
|
||||
use WC_Log_Levels;
|
||||
|
||||
|
@ -178,6 +179,15 @@ class RemoteLogger extends \WC_Log_Handler {
|
|||
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 ) ) {
|
||||
error_log( 'Remote logging throttled.' ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
|
||||
return false;
|
||||
|
|
|
@ -60,4 +60,17 @@ class McStats extends A8c_Mc_Stats {
|
|||
|
||||
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