diff options
Diffstat (limited to '')
4 files changed, 141 insertions, 0 deletions
diff --git a/library/Graphite/ProvidedHook/Icingadb/HostDetailExtension.php b/library/Graphite/ProvidedHook/Icingadb/HostDetailExtension.php new file mode 100644 index 0000000..31e4e6c --- /dev/null +++ b/library/Graphite/ProvidedHook/Icingadb/HostDetailExtension.php @@ -0,0 +1,46 @@ +<?php + +namespace Icinga\Module\Graphite\ProvidedHook\Icingadb; + +use Icinga\Application\Icinga; +use Icinga\Module\Graphite\Util\InternalProcessTracker as IPT; +use Icinga\Module\Graphite\Web\Controller\TimeRangePickerTrait; +use Icinga\Module\Graphite\Web\Widget\Graphs; +use Icinga\Module\Icingadb\Hook\HostDetailExtensionHook; +use Icinga\Module\Icingadb\Model\Host; +use ipl\Html\Html; +use ipl\Html\HtmlString; +use ipl\Html\ValidHtml; + +class HostDetailExtension extends HostDetailExtensionHook +{ + use TimeRangePickerTrait; + + public function getHtmlForObject(Host $host): ValidHtml + { + if (Icinga::app()->getRequest()->getUrl()->getParam('graph_debug')) { + IPT::enable(); + } + + $graphs = (string) Graphs::forIcingadbObject($host) + ->setWidth(440) + ->setHeight(220) + ->setClasses(['object-detail-view']) + ->setPreloadDummy() + ->setShowNoGraphsFound(false) + ->handleRequest(); + + if (! empty($graphs)) { + $this->handleTimeRangePickerRequest(); + + $header = Html::tag('h2', [], 'Graphs'); + $timepicker = HtmlString::create($this->renderTimeRangePicker(Icinga::app()->getViewRenderer()->view)); + $graphColorRegistry = Html::tag('div', ['class' => 'graphite-graph-color-registry']); + $graphs = HtmlString::create($graphs); + + return HtmlString::create($header . $timepicker . $graphColorRegistry . $graphs); + } + + return HtmlString::create(''); + } +} diff --git a/library/Graphite/ProvidedHook/Icingadb/IcingadbSupport.php b/library/Graphite/ProvidedHook/Icingadb/IcingadbSupport.php new file mode 100644 index 0000000..8f0f38e --- /dev/null +++ b/library/Graphite/ProvidedHook/Icingadb/IcingadbSupport.php @@ -0,0 +1,9 @@ +<?php + +namespace Icinga\Module\Graphite\ProvidedHook\Icingadb; + +use Icinga\Module\Icingadb\Hook\IcingadbSupportHook; + +class IcingadbSupport extends IcingadbSupportHook +{ +} diff --git a/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php b/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php new file mode 100644 index 0000000..63c2b79 --- /dev/null +++ b/library/Graphite/ProvidedHook/Icingadb/ServiceDetailExtension.php @@ -0,0 +1,46 @@ +<?php + +namespace Icinga\Module\Graphite\ProvidedHook\Icingadb; + +use Icinga\Application\Icinga; +use Icinga\Module\Graphite\Util\InternalProcessTracker as IPT; +use Icinga\Module\Graphite\Web\Controller\TimeRangePickerTrait; +use Icinga\Module\Graphite\Web\Widget\Graphs; +use Icinga\Module\Icingadb\Hook\ServiceDetailExtensionHook; +use Icinga\Module\Icingadb\Model\Service; +use ipl\Html\Html; +use ipl\Html\HtmlString; +use ipl\Html\ValidHtml; + +class ServiceDetailExtension extends ServiceDetailExtensionHook +{ + use TimeRangePickerTrait; + + public function getHtmlForObject(Service $service): ValidHtml + { + if (Icinga::app()->getRequest()->getUrl()->getParam('graph_debug')) { + IPT::enable(); + } + + $graphs = (string) Graphs::forIcingadbObject($service) + ->setWidth(440) + ->setHeight(220) + ->setClasses(['object-detail-view']) + ->setPreloadDummy() + ->setShowNoGraphsFound(false) + ->handleRequest(); + + if (! empty($graphs)) { + $this->handleTimeRangePickerRequest(); + + $header = Html::tag('h2', [], 'Graphs'); + $timepicker = HtmlString::create($this->renderTimeRangePicker(Icinga::app()->getViewRenderer()->view)); + $graphColorRegistry = Html::tag('div', ['class' => 'graphite-graph-color-registry']); + $graphs = HtmlString::create($graphs); + + return HtmlString::create($header . $timepicker . $graphColorRegistry . $graphs); + } + + return HtmlString::create(''); + } +} diff --git a/library/Graphite/ProvidedHook/Monitoring/DetailviewExtension.php b/library/Graphite/ProvidedHook/Monitoring/DetailviewExtension.php new file mode 100644 index 0000000..d6a4673 --- /dev/null +++ b/library/Graphite/ProvidedHook/Monitoring/DetailviewExtension.php @@ -0,0 +1,40 @@ +<?php + +namespace Icinga\Module\Graphite\ProvidedHook\Monitoring; + +use Icinga\Application\Icinga; +use Icinga\Module\Graphite\Util\InternalProcessTracker as IPT; +use Icinga\Module\Graphite\Web\Controller\TimeRangePickerTrait; +use Icinga\Module\Graphite\Web\Widget\Graphs; +use Icinga\Module\Monitoring\Hook\DetailviewExtensionHook; +use Icinga\Module\Monitoring\Object\MonitoredObject; + +class DetailviewExtension extends DetailviewExtensionHook +{ + use TimeRangePickerTrait; + + public function getHtmlForObject(MonitoredObject $object) + { + if (Icinga::app()->getRequest()->getUrl()->getParam('graph_debug')) { + IPT::enable(); + } + + $graphs = (string) Graphs::forMonitoredObject($object) + ->setWidth(440) + ->setHeight(220) + ->setClasses(['object-detail-view']) + ->setPreloadDummy() + ->setShowNoGraphsFound(false) + ->handleRequest(); + + if ($graphs !== '') { + $this->handleTimeRangePickerRequest(); + return '<h2>' . mt('graphite', 'Graphs') . '</h2>' + . $this->renderTimeRangePicker($this->getView()) + . '<div class="graphite-graph-color-registry"></div>' + . $graphs; + } + + return ''; + } +} |