Icinga / icinga2

The core of our monitoring platform with a powerful configuration language and REST API.
https://icinga.com/docs/icinga2/latest
GNU General Public License v2.0
2.03k stars 578 forks source link

Figure out whether we want to store objects "the Redis way" #5118

Closed Thomas-Gelf closed 6 years ago

Thomas-Gelf commented 7 years ago

Currently our objects look like this:

icinga:object:Host
    "localhost": "{ __name: ...}"

Those properties are not accessible "the Redis way" as long as one doesn't write custom LUA scripts. We probably want to keep the Redis feature as an feature that should be usable in a "standalone way", even without IcingaDB.

Our current data structure is perfectly suitable for a config sync, but would make life hard for that target audience. Think of "Dashing" or similar tools, they would probably prefer to be able to filter objects by property. Moving our object keys to the global keyspace would help them:

icinga:object:Host:localhost
    __name: "localhost"
    address: "127.0.0.4"

This is a prio low feature and can be postponed.

Crunsher commented 7 years ago

We can not guarantee the type of the value of an attribute, for this reason it would look like this

icinga:object:Host:localhost
    __name: "\"localhost" \""
    address: "\"127.0.0.4\""
    zones: "[ \"a\", \"b\" ]"
    number: "5"