| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Diagnostics\Diagnostic; |
|
|
| use Piwik\ArchiveProcessor\Rules; |
| use Piwik\CliMulti; |
| use Piwik\CronArchive; |
| use Piwik\Metrics\Formatter; |
| use Piwik\Option; |
| use Piwik\SettingsPiwik; |
| use Piwik\Translation\Translator; |
| use Piwik\Url; |
|
|
| |
| |
| |
| class CronArchivingCheck implements Diagnostic |
| { |
| |
| |
| |
| private $translator; |
|
|
| public function __construct(Translator $translator) |
| { |
| $this->translator = $translator; |
| } |
|
|
| public function execute() |
| { |
| $label = $this->translator->translate('Installation_SystemCheckCronArchiveProcess') . ' (' . |
| $this->translator->translate('Installation_FasterReportLoading') . ')'; |
|
|
| if (SettingsPiwik::isMatomoInstalled()) { |
| $isBrowserTriggerEnabled = Rules::isBrowserTriggerEnabled(); |
| if ($isBrowserTriggerEnabled) { |
| $comment = $this->translator->translate('Diagnostics_BrowserTriggeredArchivingEnabled', [ |
| Url::getExternalLinkTag('https://matomo.org/docs/setup-auto-archiving/'), '</a>']); |
| $result[] = DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_WARNING, $comment); |
|
|
| $archiveLastStarted = Option::get(CronArchive::OPTION_ARCHIVING_STARTED_TS); |
| $thirtySixHoursAgoInSeconds = 36 * 3600; |
| if ($archiveLastStarted && $archiveLastStarted > (time() - $thirtySixHoursAgoInSeconds)) { |
| |
| |
| $formatter = new Formatter(); |
| $lastStarted = $formatter->getPrettyTimeFromSeconds(time() - $archiveLastStarted, true); |
| $label = $this->translator->translate('Diagnostics_BrowserAndAutoArchivingEnabledLabel'); |
| $comment = $this->translator->translate('Diagnostics_BrowserAndAutoArchivingEnabledComment', [ |
| Url::getExternalLinkTag('https://matomo.org/docs/setup-auto-archiving/'), '</a>', $lastStarted]); |
| $result[] = DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_WARNING, $comment); |
| } |
| } |
| } |
|
|
| $comment = ''; |
|
|
| $process = new CliMulti(); |
| if ($process->supportsAsync()) { |
| $comment .= $this->translator->translate('General_Ok'); |
| $status = DiagnosticResult::STATUS_OK; |
| } else { |
| $reasons = CliMulti\Process::isSupportedWithReason(); |
| if (empty($reasons)) { |
| $reasonText = $this->translator->translate('General_Unknown'); |
| } else { |
| $reasonText = implode(', ', $reasons); |
| } |
| $comment .= $this->translator->translate('Installation_NotSupported') |
| . ' ' . $this->translator->translate('Goals_Optional') |
| . ' (' . $this->translator->translate('General_Reasons') . ': ' . $reasonText . ')' |
| . ' ' . $this->translator->translate( |
| 'General_LearnMore', |
| [Url::getExternalLinkTag('https://matomo.org/faq/troubleshooting/how-to-make-the-diagnostic-managing-processes-via-cli-to-display-ok/'), '</a>'] |
| ); |
| $status = DiagnosticResult::STATUS_INFORMATIONAL; |
| } |
|
|
| $label = $this->translator->translate('Installation_SystemCheckCronArchiveProcess') . ' - ' |
| . $this->translator->translate('Installation_SystemCheckCronArchiveProcessCLI'); |
| $result[] = DiagnosticResult::singleResult($label, $status, $comment); |
|
|
| return $result; |
| } |
| } |
|
|