Icinga / icingaweb2-module-businessprocess

Create top-level views of your applications in a graphical editor. Rules express dependencies between existing hosts and services and let you alert on application level. Business processes are displayed in a tree or list overview.
https://icinga.com/docs/businessprocess/latest
GNU General Public License v2.0
108 stars 44 forks source link

BPM-header-config does not work with "comments" / no official comment-syntax yet. #429

Open TQQEU opened 11 months ago

TQQEU commented 11 months ago

Configurations made in the BPM header do not work once we add comments using #.

Description

We are using icingaweb2-module-businessprocess in a "non-self-service"-way by writing the BPM-config manually and publish/distribute/revision control by using git / a git-driven process.

So basically we write a lot of BPM config "by hand".

Some of our BPMs got quite large, in a way we would really benefit from comments.

At the Moment a typical (very simple) BPM-Config looks like this:

### Business Process Config File ###
#
# Title           : APP-12345-SomeDepartment
# AddToMenu       : yes
# Statetype       : hard
#
###################################

APP-SomeDepartment = APP-SomeDepartment-SomeApplication
APP-SomeDepartment-SomeApplication = PROD-SomeApplication;Service-PROD-Node0-SystemAlive & PROD-SomeApplication;Service-PROD-Node8-SystemAlive
display 0;APP-SomeDepartment-SomeApplication;SomeApplication-Service
display 1;APP-SomeDepartment;Prio 1 SomeApplication

In this config everything is fine, and if we mess arround with it in Icingaweb we can see that Statetype actually uses "hard"

Once the config gets more sophisticated, we want some comments for orientation, something like:

### Business Process Config File ###
#
# Title           : SomeCheese
# AddToMenu       : yes
# Statetype       : hard
#
###################################

## French Cheese

Camembert = Host-Camembert;Service-PROD-Ping & Host-Camembert;Service-PROD-temperature & Host-Camembert;Service-PROD-softness
Roquefort = Host-Roquefort;Service-PROD-Ping & Host-Roquefort;Service-PROD-temperature

FrenchCheese = Camembert | Roquefort

## English Cheese

Cheddar = Host-Cheddar;Service-PROD-Ping & Host-Cheddar;Service-PROD-temperature
Stilton = Host-Stilton;Service-PROD-Ping & Host-Stilton;Service-PROD-temperature
Wensleydale = Host-Wensleydale;Service-PROD-Ping & Host-Wensleydale;Service-PROD-temperature
## currently not in use:
## RedLeicester = Host-RedLeicester;Service-PROD-Ping & Host-RedLeicester;Service-PROD-temperature

EnglishCheese = 2 of: Cheddar + Stilton + Wensleydale
## please remember to add RedLeicester here too, once it is rebuilt. As it was decided in #234589 we want to stick to "2 of:"

## The Whole Cheese Buffet

CheeseBuffet = FrenchCheese & EnglishCheese

display 1;CheeseBuffet;Cheese Buffet

In reality the config will get much longer, but you should get the idea here.

Now we come to the part where I am unsure if we have a bug, or lack a feature: The config runs perfectly well, but as soon as there are comments in it will fail to adopt the configuration defined in the header, in our case at least '#Statetype : hard' - it can be viewed in Icingaweb as "soft" using the config-menu and in practical monitoring. This is non-intuitive, hides quite well and is making our configurations harder to understand (or wrong if we leave the comments in).

Request

icingaweb2-module-businessprocess should be able to have comments in any documented syntax, preferable using # or ## as prefix.

sebek72 commented 11 months ago

+1