Comments (10)
Right, this happens on PostgreSQL only. My previous tests only were with MySQL, this information came in later.
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat tests/c.conf
object Host "foo" {
check_command = "dummy"
vars.foo = "foo"
vars.bar = "bar"
}
object Host "bar" {
check_command = "dummy"
vars.foo = "bar"
# Missing var.bar
#var.bar = "foo"
}
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat icinga2.conf
include "constants.conf"
include "zones.conf"
include <itl>
include <plugins>
include <plugins-contrib>
include <manubulon>
include <windows-plugins>
include <nscp>
include "features-enabled/*.conf"
//include_recursive "tests"
include "tests/c.conf"
mbmif /usr/local/icinga2/etc/icinga2 (master *) # icinga2 feature list
Disabled features: compatlog debuglog elasticsearch gelf graphite icingastatus ido-mysql influxdb livestatus logstash opentsdb perfdata statusdata syslog
Enabled features: api checker command ido-pgsql mainlog notification redis
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat /usr/local/icingaweb2/etc/modules/monitoring/backends.ini
...
[icinga2_ido_pgsql]
type = "ido"
resource = "icinga2_ido_pgsql"
disabled = "0"
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat /usr/local/icingaweb2/etc/resources.ini
...
[icinga2_ido_pgsql]
type = "db"
db = "pgsql"
host = "localhost"
port = "5432"
dbname = "icinga"
username = "icinga"
password = "icinga"
Steps to reproduce
Important: It does not work the other way around.
- Add dimension, the one which only one host has,
bar
- Add a second dimension which applies to both hosts,
foo
- Stacktrace
Undefined property: stdClass::$foo
#0 /usr/local/share/icingaweb2/modules/cube/library/Cube/Ido/IdoHostStatusCubeRenderer.php(21): Icinga\Application\ApplicationBootstrap->Icinga\Application\{closure}(Integer, String, String, Integer, Array)
#1 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(294): Icinga\Module\Cube\Ido\IdoHostStatusCubeRenderer->renderDimensionLabel(String, Object(stdClass))
#2 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(219): Icinga\Module\Cube\CubeRenderer->beginDimension(String, Object(stdClass))
#3 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(201): Icinga\Module\Cube\CubeRenderer->beginDimensionsUpFrom(String, Object(stdClass))
#4 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(190): Icinga\Module\Cube\CubeRenderer->beginDimensionsForRow(Object(stdClass))
#5 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(176): Icinga\Module\Cube\CubeRenderer->renderRow(Object(stdClass))
#6 /usr/local/share/icingaweb2/modules/cube/library/Cube/Cube.php(290): Icinga\Module\Cube\CubeRenderer->render(Object(Icinga\Web\View))
#7 zend.view:///usr/local/share/icingaweb2/modules/cube/application/views/scripts/index/index.phtml(18): Icinga\Module\Cube\Cube->render(Object(Icinga\Web\View))
#8 /usr/local/share/icingaweb2/library/Icinga/Web/View.php(270): include(String)
#9 /usr/local/share/icingaweb2/library/vendor/Zend/View/Abstract.php(877): Icinga\Web\View->_run(String)
#10 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(904): Zend_View_Abstract->render()
#11 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(925): Zend_Controller_Action_Helper_ViewRenderer->renderScript(String, NULL)
#12 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(964): Zend_Controller_Action_Helper_ViewRenderer->render()
#13 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/HelperBroker.php(272): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#14 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action.php(518): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#15 /usr/local/share/icingaweb2/library/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch(String)
#16 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Front.php(937): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#17 /usr/local/share/icingaweb2/library/Icinga/Application/Web.php(409): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#18 /usr/local/share/icingaweb2/library/Icinga/Application/webrouter.php(104): Icinga\Application\Web->dispatch()
#19 /usr/local/share/icingaweb2/public/index.php(4): require_once(String)
#20 {main}
from icingaweb2-module-cube.
That's strange... are you using PostgreSQL or MySQL? And in case you get a full stack trace: could you please share the full output?
from icingaweb2-module-cube.
This is also happening to me. I think this is happening when some hosts don't have specific variable defined.
Here is the stacktrace:
Undefined property: stdClass::$lsbdistcodename
#0 /usr/share/icingaweb2/modules/cube/library/Cube/Ido/IdoHostStatusCubeRenderer.php(21): Icinga\Application\ApplicationBootstrap->Icinga\Application\{closure}(8, 'Undefined prope...', '/usr/share/icin...', 21, Array)
#1 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(294): Icinga\Module\Cube\Ido\IdoHostStatusCubeRenderer->renderDimensionLabel('provider', Object(stdClass))
#2 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(219): Icinga\Module\Cube\CubeRenderer->beginDimension('provider', Object(stdClass))
#3 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(201): Icinga\Module\Cube\CubeRenderer->beginDimensionsUpFrom('provider', Object(stdClass))
#4 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(190): Icinga\Module\Cube\CubeRenderer->beginDimensionsForRow(Object(stdClass))
#5 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(176): Icinga\Module\Cube\CubeRenderer->renderRow(Object(stdClass))
#6 /usr/share/icingaweb2/modules/cube/library/Cube/Cube.php(290): Icinga\Module\Cube\CubeRenderer->render(Object(Icinga\Web\View))
#7 zend.view:///usr/share/icingaweb2/modules/cube/application/views/scripts/index/index.phtml(18): Icinga\Module\Cube\Cube->render(Object(Icinga\Web\View))
#8 /usr/share/php/Icinga/Web/View.php(231): include('zend.view:///us...')
#9 /usr/share/icingaweb2/library/vendor/Zend/View/Abstract.php(877): Icinga\Web\View->_run('/usr/share/icin...')
#10 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(904): Zend_View_Abstract->render('index/index.pht...')
#11 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(925): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/index.pht...', NULL)
#12 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(964): Zend_Controller_Action_Helper_ViewRenderer->render()
#13 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/HelperBroker.php(272): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#14 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action.php(518): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#15 /usr/share/php/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch('indexAction')
#16 /usr/share/icingaweb2/library/vendor/Zend/Controller/Front.php(937): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#17 /usr/share/php/Icinga/Application/Web.php(389): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#18 /usr/share/php/Icinga/Application/webrouter.php(109): Icinga\Application\Web->dispatch()
#19 /usr/share/icingaweb2/public/index.php(4): require_once('/usr/share/php/...')
#20 {main}
Not tested steps to reproduce:
define two hosts:
object Host "foo" {
var.foo = "foo"
var.bar = "bar"
}
object Host "bar"
var.foo = "bar"
# Missing var.bar
#var.bar = "foo"
}
Then add two dimentions in cube: first foo
as it's set for both hosts and then for bar
. 2nd dimention should crash now.
from icingaweb2-module-cube.
I'm not able to reproduce this.
from icingaweb2-module-cube.
This is also happening to me. Using IcingaWeb 2.5.3, and PostgreSQL
from icingaweb2-module-cube.
FYI, I reconfigured Icingaweb2 to use Mysql (MariaDB), and the problem went away.
from icingaweb2-module-cube.
I don't feel alone anymore. But switching to a new DB backend, just because of this is a no-go. That would be the one and only mysql/mariadb I run. Everything runs happily on PostgreSQL.
from icingaweb2-module-cube.
@dnsmichi mentioned he could not reproduce. I wonder if it was tested only with MySQL?
from icingaweb2-module-cube.
I ran today in the same issue, should be fixed with #29
from icingaweb2-module-cube.
Since the related PR is merged >> Closed.
from icingaweb2-module-cube.
Related Issues (20)
- Cube details are not filtered
- Cube detail view: Long action link title is not rendered correctly
- Operator select too wide in search editor
- Icinga DB: Custom variable denylists and protections are not respected
- IdoController: Fails remove icingadb control params
- Group services by servicegroup
- Vertically align cubes in 2-dimensional grid
- Cube module does not work if icingadb-web is disabled or missing HOT 2
- IdoController throws `Got no such dimension: "resolved"` error HOT 1
- Cube (ido) does not work in Dashboards anymore HOT 1
- Cube: Trait 'Icinga\\Module\\Icingadb\\Common\\Auth' not found in ... HOT 1
- Host/Service status HOT 1
- Add default sort by severity
- Failed to load dimensions
- Unable to load 3 dimensions
- Don't explicitly add dashboard tabs extension
- Preserve `format` query param
- Failed to render filtered cube dimensions
- PHP deprecated errors
- Undefined property when sorting cubes for severity in some views HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from icingaweb2-module-cube.