CMDB health Dashboard: "Relationships not compliant with suggested relationships" calculation



This article will explain how the existing CMDB relationships that are not compliant with suggested relationships are flagged.

How "Relationships not compliant with suggested relationships" is reported

The report will only flag a relationship if a suggested relationship of the same type does not exist without taking into consideration the direction. This means that a relationship will be valid if there is a relationship rule defined for the classes with the given relation type regardless of which class is the parent and which is the child.


A suggested relationship record exist in the suggested relationships table as follows:

Parent: Business Service (cmdb_ci_service
Relationship: Depends on::Used By 
Child: Server (cmdb_ci_server
Now, lets look at the following relationship scenarios:

First Scenario: 

Parent: Server 
Relationship: Depends on::Used By
Child: Business Service

This relationship is valid because there is a suggested relationship rule created between Server and Business Service for the Relationship: "Depends on::Used By". Even though the rule is defined in the opposite way, the direction of the relationship is not taken into consideration, only the rel type. 

Second Scenario: 

Parent: Server
Relationship: Uses::Used by
Child: Business Service

This relationship is not valid as there is no suggested relationship rules for "Uses::Used by" between server and service, regardless of the direction. Therefore, the dashboard job will flag it and it will be included in the report.

Third Scenario:

Parent: Business Service
Relationship: Uses::Used by 
Child: Server

This relationship is not valid and will be flagged as reported for the same reason mentioned in scenario 2

Additional Information

This is the current design on all released versions including New York release