Is there any way to build a service from a template that becomes critical if all child items are critical, while the number of child items can be 1-6 not known upfront?
We have a case to monitor multiple bearers (network connectivity) and trigger a service outage if all of them are down (critical). There can be 1 to 6 bearers and these are defined in a table with columns specifying the bearer name, empty if bearer is not used. The bearer name is normally a service name (we monitor each bearer as a separate service), but can also be an element name if needed.
For this we'd need to build a service template that will create a service that will be critical if all child items are critical. However, we don't know upfront, how many bearers there will be, but there will be at least one, so first child is mandatory, bearers 2-6 optional.
Playing with the service template I used the Dynamically Include condition with AND condition for each child element, when each template child element alarm state == critical. This works well, if all child elements exist. However, if the second child, that is optional, does not exist, the first child won't be included in the service, if critical.
Is this somehow possible to overcome?
If necessary, we can also have the number of bearers as a Column in the source data element and then somehow use it in the condition to eg, compare number of active alarms to the number of bearers.
Thanks for any tips. I'm sure someone has already dealt with such case.


Hi, I don't have a good answer here. I believe the main difficulty is that you're looking at the group of bearers to decide whether or not they impact the service severity (only when ALL included bearers are Critical)
One potential solution I can think of would be to use service protocols / enhanced services. In that case, the service is backed by an extra hidden element which (1) knows about all the child element states and (2) is able to override or add to the service state.
If such a service protocol could be written which applies the "only when all included bearers are critical, set the service in critical", your goal would be achieved.
This would avoid the need to have "include" conditions for every bearer that reference to every other bearer.
Things might be easier to grasp/test with when taking service templates out of the picture and trying to create these services as plain services.
Hope this helps!
doc references:
Enhanced service | DataMiner Docs
Skyline Service Definition Basic | Catalog | dataminer.services
Mine might be a long shot – but curious as I haven't done it for some time:
Can you use "Redundancy Groups" in the service definition?