Skip to content

Commit 1635df9

Browse files
authored
Merge pull request #29 from DevDavido/development
Bump to v1.1.4
2 parents dc7e1a2 + d57354e commit 1635df9

10 files changed

+50
-7
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
- Added: Support for Matomo 4 🎉
44
- Updated: Bumped the minimum PHP version to 7.2.5 for this new major plugin version, just as Matomo 4 itself
55

6+
## 1.1.4
7+
- Improved: Exception handling for failed audit due to too many requests response
8+
- Fixed: One performance audit setting has been displayed after disabling audits for the site in settings
9+
- Fixed: Disabled performance audits for site renders dashboard empty
10+
611
## 1.1.3
712
- Added: Possibility to set extended audit timeout for each site
813
- Improved: Minor internal refactoring for site settings
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
/**
3+
* Matomo - free/libre analytics platform
4+
*
5+
* @link https://matomo.org
6+
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7+
*/
8+
9+
namespace Piwik\Plugins\PerformanceAudit\Exceptions;
10+
11+
require PIWIK_INCLUDE_PATH . '/plugins/PerformanceAudit/vendor/autoload.php';
12+
13+
use Exception;
14+
15+
class AuditFailedTooManyRequestsException extends Exception
16+
{
17+
/**
18+
* AuditFailedTooManyRequestsException constructor.
19+
*
20+
* @param string $url
21+
* @param null|string $output
22+
*/
23+
public function __construct(string $url, $output = null)
24+
{
25+
parent::__construct('Audit of ' . $url . ' failed due to too many requests: ' . $output);
26+
}
27+
}

Lighthouse.php

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedException;
1616
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedMethodNotAllowedException;
1717
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedNotFoundException;
18+
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedTooManyRequestsException;
1819
use Piwik\Plugins\PerformanceAudit\Exceptions\DependencyMissingException;
1920
use Piwik\Plugins\PerformanceAudit\Exceptions\DependencyUnexpectedResultException;
2021
use Symfony\Component\Process\Exception\ProcessSignaledException;
@@ -220,6 +221,7 @@ protected function setAudit($audit, $enable)
220221
* @return void
221222
* @throws AuditFailedAuthoriseRefusedException|AuditFailedNotFoundException
222223
* @throws AuditFailedMethodNotAllowedException|AuditFailedException
224+
* @throws AuditFailedTooManyRequestsException
223225
*/
224226
protected function throwAuditException($url, $errorOutput)
225227
{
@@ -229,6 +231,8 @@ protected function throwAuditException($url, $errorOutput)
229231
throw new AuditFailedNotFoundException($url, $errorOutput);
230232
} elseif (stristr($errorOutput, 'Status code: 405')) {
231233
throw new AuditFailedMethodNotAllowedException($url, $errorOutput);
234+
} elseif (stristr($errorOutput, 'Status code: 429')) {
235+
throw new AuditFailedTooManyRequestsException($url, $errorOutput);
232236
}
233237

234238
throw new AuditFailedException($url, $errorOutput);

MeasurableSettings.php

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ private function makeHasExtendedTimeoutSetting()
9090
return $this->makeSetting('has_extended_timeout', false, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
9191
$field->title = Piwik::translate('PerformanceAudit_Settings_HasExtendedTimeout_Title');
9292
$field->inlineHelp = Piwik::translate('PerformanceAudit_Settings_HasExtendedTimeout_Help');
93+
$field->condition = 'is_enabled';
9394
$field->uiControl = FieldConfig::UI_CONTROL_CHECKBOX;
9495
});
9596
}

Reports/GetPerformanceBase.php

+7-5
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ protected function init()
4747
}
4848

4949
$siteSettings = new MeasurableSettings(Common::getRequestVar('idSite'));
50-
if (!$siteSettings->isAuditEnabled()) {
51-
return;
52-
}
5350
$defaultMetrics = [
5451
new MinSeconds(),
5552
new MedianSeconds(),
@@ -78,14 +75,19 @@ protected function init()
7875
*/
7976
public function isEnabled()
8077
{
81-
if (!Common::getRequestVar('idSite', false)) {
78+
$idSite = Common::getRequestVar('idSite', false);
79+
if (!$idSite) {
8280
return false;
8381
}
8482
// Disable report if initialised as instance of itself
8583
if ((new ReflectionClass($this))->getShortName() === 'GetPerformanceBase') {
8684
return false;
8785
}
88-
$idSite = Common::getRequestVar('idSite');
86+
87+
$siteSettings = new MeasurableSettings($idSite);
88+
if (!$siteSettings->isAuditEnabled()) {
89+
return false;
90+
}
8991

9092
return Piwik::isUserHasViewAccess($idSite);
9193
}

Tasks.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
use Piwik\Plugins\PerformanceAudit\Columns\Metrics\Audit;
2828
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedAuthoriseRefusedException;
2929
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedException;
30+
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedMethodNotAllowedException;
3031
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedNotFoundException;
32+
use Piwik\Plugins\PerformanceAudit\Exceptions\AuditFailedTooManyRequestsException;
3133
use Piwik\Site;
3234
use Piwik\Tracker\Action;
3335
use Piwik\Tracker\Db\DbException;
@@ -425,7 +427,7 @@ private function performAudits(int $idSite, array $urls, array $emulatedDevices,
425427
->setEmulatedDevice($emulatedDevice)
426428
->audit($url);
427429
$this->runGarbageCollection();
428-
} catch (AuditFailedAuthoriseRefusedException | AuditFailedNotFoundException $exception) {
430+
} catch (AuditFailedAuthoriseRefusedException | AuditFailedNotFoundException | AuditFailedMethodNotAllowedException | AuditFailedTooManyRequestsException $exception) {
429431
$this->logWarning($exception->getMessage());
430432
} catch (AuditFailedException | ProcessTimedOutException | RuntimeException $exception) {
431433
$this->logError($exception->getMessage());

plugin.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "PerformanceAudit",
33
"description": "Daily performance audits of all your sites in Matomo.",
4-
"version": "1.1.3",
4+
"version": "1.1.4",
55
"theme": false,
66
"require": {
77
"php": ">=7.1.3",

screenshots/WebsiteSettings.png

4.26 KB
Loading

vendor/composer/autoload_classmap.php

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedException' => $baseDir . '/Exceptions/AuditFailedException.php',
4343
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedMethodNotAllowedException' => $baseDir . '/Exceptions/AuditFailedMethodNotAllowedException.php',
4444
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedNotFoundException' => $baseDir . '/Exceptions/AuditFailedNotFoundException.php',
45+
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedTooManyRequestsException' => $baseDir . '/Exceptions/AuditFailedTooManyRequestsException.php',
4546
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyMissingException' => $baseDir . '/Exceptions/DependencyMissingException.php',
4647
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyNpmMisconfigurationException' => $baseDir . '/Exceptions/DependencyNpmMisconfigurationException.php',
4748
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyOfChromeMissingException' => $baseDir . '/Exceptions/DependencyOfChromeMissingException.php',

vendor/composer/autoload_static.php

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class ComposerStaticInit98dde460e8a16c8877d8f8d8a8e6921c
8080
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedException' => __DIR__ . '/../..' . '/Exceptions/AuditFailedException.php',
8181
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedMethodNotAllowedException' => __DIR__ . '/../..' . '/Exceptions/AuditFailedMethodNotAllowedException.php',
8282
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedNotFoundException' => __DIR__ . '/../..' . '/Exceptions/AuditFailedNotFoundException.php',
83+
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\AuditFailedTooManyRequestsException' => __DIR__ . '/../..' . '/Exceptions/AuditFailedTooManyRequestsException.php',
8384
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyMissingException' => __DIR__ . '/../..' . '/Exceptions/DependencyMissingException.php',
8485
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyNpmMisconfigurationException' => __DIR__ . '/../..' . '/Exceptions/DependencyNpmMisconfigurationException.php',
8586
'Piwik\\Plugins\\PerformanceAudit\\Exceptions\\DependencyOfChromeMissingException' => __DIR__ . '/../..' . '/Exceptions/DependencyOfChromeMissingException.php',

0 commit comments

Comments
 (0)