Hi Thomas,

thanks for you long answer.
I can really understand that we have more possibilities with a db.
You speak fron the bad design of the old Nagios-style database schema.
Do you plan to do it better, with a new db schema for example ?

Pfiat-di!

Jacques Mineur
________________________________
Deutsche Rentenversicherung Bund



Von:    Thomas Gelf <thomas.g...@netways.de>
An:     <icinga-users@lists.icinga.org>,
Datum:  24.08.2015 13:35
Betreff:        Re: [icinga-users] Antwort: Re:  Icinga-web 2 and ido ?
Gesendet von:   "icinga-users" <icinga-users-boun...@lists.icinga.org>



Hi Jaques!

> do you plan livestatus also ?

TL;DR: no.

We actually planned to do so but moved the task to our backlog for now.
This means that no related work is going on, it is not scheduled for any
release as of the time being and we do not even know whether it will
ever happen.

We invested some time in a livestatus implementation, the code is still
to be found in our git repository. It's IMO already a pretty nice (but
unfinished) abstraction of Livestatus functionality. Unfortunately we
had to simulate a lot of missing functionality in userspace, as
Livestatus is unable to:

* sort data
* filter by custom variables
* join tables
* support lots of parallel requests in an efficient way

Just to name a few. Livestatus tries to emulate parts of a database
without being such. It is basically providing a couple of materialized
views in memory, that's simple and fast by design. But it is unable to
satisfy a lot of customization needs. If you simulate them in userspace
you start wasting resources.

Most of the customers I personally work with mostly need features that
would become costly:

* user restrictions based on custom variables
* special sort orders like "problem severity", just to name the most
prominent one
* history, reporting

A click on the last page of a sorted list with thousands of objects
would mean to fetch ALL objects through the API. That's still something
one could live with, but for memory efficiency reasons we had to change
the way our implementation works from "fetch all" to "sort, filter and
paginate while streaming".

This means while fetching data line by line we applied userspace-filters
missing in Livestatus. We filled up intelligent heap data structures,
dropping unneeded data as soon as we were sure to not need those lines
in the sorted result set.

Pretty cool, pretty tricky, absolutely doable. But too much effort for
an API we do not really believe in. With IDO we show each objects
history in-place, generate completely customizable reports in a breath
(availability and more) even in environments with millions of state
history lines. All those history-related tasks would never be possible
with Livestatus, so no chance it could ever become a first-class citizen
in Icinga Web 2. While I hate the old Nagios-style database schema, I
really love relational databases. And you can expect a couple of new
exciting database-based web2 modules being released to public within
this year.

Given all this we decided to postpone Livestatus unless someone is
willing to sponsor the work required to finish the implementation. Sure,
it is absolutely possible, performance will be good, even for large
environments, even supporting all kinds of special filters, restrictions
and sort rules. Trust me, I wrote most of the current prototype ;-)
Still, I have no emotional bindings to that code. Silently dropping all
attempts to support Livestatus would be perfectly fine for me.

Regards,
Thomas

--
Thomas Gelf
Senior Consultant

NETWAYS GmbH | Deutschherrnstr. 15-19 | D-90429 Nuernberg
Tel: +49 911 92885-0 | Fax: +49 911 92885-77
GF: Julian Hein, Bernd Erk | AG Nuernberg HRB18461
http://www.netways.de | thomas.g...@netways.de

** OSBConf 2015 - September - osbconf.org **
** OSMC 2015 - November - netways.de/osmc **
_______________________________________________
icinga-users mailing list
icinga-users@lists.icinga.org
https://lists.icinga.org/mailman/listinfo/icinga-users
_______________________________________________
icinga-users mailing list
icinga-users@lists.icinga.org
https://lists.icinga.org/mailman/listinfo/icinga-users

Reply via email to