| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Diagnostics\Commands; |
|
|
| use Piwik\Container\StaticContainer; |
| use Piwik\Plugin\ConsoleCommand; |
| use Piwik\Plugins\Diagnostics\Diagnostic\ArchiveInvalidationsInformational; |
| use Piwik\Translation\Translator; |
|
|
| |
| |
| |
| class ArchivingMetrics extends ConsoleCommand |
| { |
| protected function configure() |
| { |
| $this->setName('diagnostics:archiving-metrics'); |
| $this->addNoValueOption( |
| 'json', |
| null, |
| "If supplied, the command will return data in json format" |
| ); |
| $this->setDescription('Show metrics describing the current archiving status'); |
| } |
|
|
| protected function doExecute(): int |
| { |
| $input = $this->getInput(); |
| $output = $this->getOutput(); |
|
|
| $metrics = $this->getMetrics(); |
|
|
| if ($input->getOption('json')) { |
| $output->write(json_encode($metrics)); |
| } else { |
| $headers = ['Metric', 'Value']; |
| $this->renderTable($headers, $metrics); |
| } |
|
|
| return self::SUCCESS; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getMetrics(): array |
| { |
| $metrics = []; |
| $informational = new ArchiveInvalidationsInformational(StaticContainer::get(Translator::class)); |
| $diags[] = $informational->execute(); |
| if (is_array($diags)) { |
| foreach (reset($diags) as $diag) { |
| $items = $diag->getItems(); |
| if (count($items) > 0) { |
| $metrics[] = [$diag->getLabel(), reset($items)->getComment()]; |
| } |
| } |
| } |
| return $metrics; |
| } |
| } |
|
|