. */ namespace vierbergenlars\AuthserverStatsBundle\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use vierbergenlars\AuthserverStatsBundle\Event\StatsEvent; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Input\InputArgument; class MuninStatsCommand extends Command { protected function configure() { $this->setName('stats:munin') ->addOption('module', 'm', InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Modules to fetch statistics for') ->addArgument('munin', InputArgument::OPTIONAL, 'munin arguments'); } protected function execute(InputInterface $input, OutputInterface $output) { $eventDispatcher = $this->getApplication() ->getKernel() ->getContainer() ->get('event_dispatcher'); /* @var $eventDispatcher Symfony\Component\EventDispatcher\EventDispatcher */ $event = new StatsEvent($input->getOption('module')); $eventDispatcher->dispatch(StatsEvent::class, $event); foreach ($event->getModules() as $module) { $output->writeln('multigraph authserver_' . $module, OutputInterface::OUTPUT_RAW); if ($input->getArgument('munin') === 'config') { $stats = $event->getMuninConfig($module); $suffix = ' '; } else { $stats = $event->getModuleStatistics($module); $suffix = '.value '; } foreach ($stats as $k => $v) { $output->writeln($k . $suffix . $v, OutputInterface::OUTPUT_RAW); } } } }