Use PDIs? Take our 5-minute survey to help shape the PDI roadmap.

CMDB Health Dashboard

Mk_snow
Tera Contributor

Hi,

 

I am new to CMDB and would appreciate some guidance.

 

In the CMDB Health Dashboard, if we naigafte to cmdb health dashboard > class view > if we change to managed classes and health group I can see the Completeness score (currently showing 26%).

Mk_snow_0-1785773514971.png

My requirement is to display this same Completeness metric in a different dashboard/view, specifically in the Trend View. However, I am unable to determine how this percentage is being calculated or where the underlying configuration is defined.

 

I have already explored the cmdb_health_result table, but I am still unable to identify:

 

Which table or data source is used to calculate the Completeness percentage.

 

Thanks in advance😊

1 ACCEPTED SOLUTION

Hi,

I tried this out on my own PDI. Here's what worked for me.

Setting up the data

Source type is Table, and the table is CMDB Group Health Scorecard (cmdb_health_scorecard_group). For the conditions I used Metric is Completeness, and CMDB group is HEALTHFIX Group.

Picking the chart type

Type "trend" in the search box and pick Time series. It doesn't show up in the normal chart list, so it's easy to miss.

Configuring it

Set Trend by to Evaluated On, Calendar to Standard, and per to Day. Aggregation is Average.

The function field

Two things to watch here.

When you click Configure function field, you get a popup saying you need to save the report first. Click Save and continue. So give the report a name before you get to this step, otherwise you'll be stuck wondering why nothing opens.

Then in the definition box put:

glidefunction:subtract(100,score)

Set Return type to Whole number. You should see "Syntax is correct for this function" once it checks it.

What this does is take the score away from 100. Whether that's what you want depends on how your instance stores the score, so have a look at the actual numbers in the table first.

Once you save, the function field shows up in the Aggregation dropdown and the chart will draw.

I've attached screenshots from my PDI.
Please Mark Helpful, if my Reply added any Value.


Regards
Raghavendra G

View solution in original post

9 REPLIES 9

Hello  

Answering your Questions in order
1. Managed Classes is not Special OOB logic, It is a Health Group Record
   --> Navigate to cmdb_group table and apply filter group_type = health, there you can see Your              "Managed Classes" record. Open that record, where you can find child classes under                         cmdb_group_contains_encoded_query
2. The group percentage pools CIs across all member classes.

3. Tables involved:

cmdb_health_result — one row per failing CI per submetric (failures only)
cmdb_health_scorecard — per-class summary -- Score field Holds the failure percentage of the Class
cmdb_health_scorecard_group — per-group summary -Score field Holds the failure Percentage of the Group
4. For Your Trend Line Report, you don't need PA or custom snapshot. cmdb_health_scorecard_group already retains history. Report on that table, filter to your group and metric = Completeness, plot evaluated_on on the x-axis and 100 - score on the y-axis.

Now the Proof
Step1: Just like Yesterday, I went to CI Class Manager, Selected --> Printer Class --> Under Health ---> selected Completeness ---> selected  Serial Number and clicked on Save. (Refer Screenshot1)

Step2: I went to cmdb_group table, I created a new record called "HEALTHFIX Group",(Group Type = Health) just like your Managed Classes Group. Under cmdb_group_contains_encoded_query, I added these two classes, cmdb_ci_printing_hardware(The one we picked yesterday) and cmdb_ci_printer.(Please refer screenshot2)

Step3: I ran the CMDB Completeness Scheduled JOb

Step4: I went to cmdb_health_scorecard_group and filtered by the HealthFix group i created(Refer Screenshot3). You can create your trend line report on this table.

Notice the Status column in Screenshot3. Each time the job runs, it inserts a new set of rows with status = Complete and flips the previous set to Historic, keeping the original Evaluated On timestamp. In my screenshot you can see two runs — 07:40:37 (Complete) and 06:59:59 (Historic).

So for your trend report, include the Historic rows. Don't filter on status = Complete, that will give you only the latest run.

The group row shows Total 38, Failed 35. That is 10 + 28 CIs from the two classes, and 7 + 28 failing. So the group pools all CIs and counts failures across the pool rather than averaging the two class scores.

Please Mark "Helpful", if my Reply added any Value.

Regards
Raghavendra G

@RaghavendraGund 

Thank you for your help. I now understand where the calculations are coming from.

 

Regarding the fourth point from your previous response:

"For your trend line report, you don't need PA or a custom snapshot. The cmdb_health_scorecard_group table already retains the historical data. Create a report on this table, filter it for your group and the Completeness metric, use Evaluated On as the X-axis, and 100 - Score as the Y-axis."

 

I tried following these steps, but the report configuration is not allowing me to set Evaluated On as the X-axis or 100 - Score as the Y-axis.

 

Could you please let me know if there are any additional report settings or configurations required to achieve this?

Mk_snow_0-1785944533147.png

Mk_snow_1-1785944562579.png

 

 

 

Hi,

I tried this out on my own PDI. Here's what worked for me.

Setting up the data

Source type is Table, and the table is CMDB Group Health Scorecard (cmdb_health_scorecard_group). For the conditions I used Metric is Completeness, and CMDB group is HEALTHFIX Group.

Picking the chart type

Type "trend" in the search box and pick Time series. It doesn't show up in the normal chart list, so it's easy to miss.

Configuring it

Set Trend by to Evaluated On, Calendar to Standard, and per to Day. Aggregation is Average.

The function field

Two things to watch here.

When you click Configure function field, you get a popup saying you need to save the report first. Click Save and continue. So give the report a name before you get to this step, otherwise you'll be stuck wondering why nothing opens.

Then in the definition box put:

glidefunction:subtract(100,score)

Set Return type to Whole number. You should see "Syntax is correct for this function" once it checks it.

What this does is take the score away from 100. Whether that's what you want depends on how your instance stores the score, so have a look at the actual numbers in the table first.

Once you save, the function field shows up in the Aggregation dropdown and the chart will draw.

I've attached screenshots from my PDI.
Please Mark Helpful, if my Reply added any Value.


Regards
Raghavendra G

Hi @RaghavendraGund ,

 

After creating the health_score field in the cmdb_health_scorecard_group table, I was able to retrieve the results for CIs that passed all metrics.

 

I have completed this for completeness, correctness, and compliance

 

Now i want aggregate of "Duplicate relationships" , "Orphan relationships", "Stale relationships" and show it in report. Can this be done 

Mk_snow_0-1786643146258.png

 

 

Thanks on advance😀

Pratiksha
Mega Sage

How can you fix it?

Divide the CIs identified in the results into logical groups (for example, Servers, Computers, and Mobile Devices).
Review each CI class individually to determine which attributes should be Required and which should be Recommended. Required fields are mandatory, whereas recommended fields are good to have but not mandatory.
Rule of thumb: If an attribute cannot be discovered automatically, it should not be marked as a required field. Otherwise, records may fail to save when the information is unavailable.

By following this approach, your CMDB Health score will improve automatically.

You can also find a CMDB Simulator on Now Learning. I recommend using it before making changes in your actual environment, as it provides a safe way to understand how CMDB Health rules work.

Good luck!

Regards,
Pratiksha