- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
15m ago
The Problem:
The CMDB Health Dashboard shows a Completeness percentage for a class, like 30%. When you go looking for that number in the CMDB Health tables, you can’t find it. Instead, cmdb_health_scorecard shows 70.
Neither number is wrong. They’re two sides of the same result.
Short answer:
cmdb_health_scorecard.score stores the failure percentage (70 means 7 out of 10 CIs failed). The CMDB Health Dashboard shows the pass percentage (30). They never match, but they always add up to 100.
The two tables involved:
cmdb_health_result: one row per failing CI, per sub-check. It only lists the CIs that failed. There’s no percentage in it.
cmdb_health_scorecard: one row per class per metric, with Total, Failed and Score. This is the table the dashboard reads.
Here's How I Proved it on my PDI
Step 1: Set up the check.
In CI Class Manager → Printing Hardware → Health → Completeness, I selected Asset tag and Serial number as recommended fields. For this class, a CI now counts as complete only when both fields are filled.
Step 2: Create test data.
I created 10 test CIs in Printing Hardware:
- 3 CIs have both fields filled (pass)
- 7 CIs are missing one or both fields (fail)
Step 3: Check cmdb_health_result
After the daily health job ran, this table had 7 rows, one for each failing CI.
Across those 7 CIs, 10 fields are missing in total, because three of them are missing both Asset tag and Serial number. If the table stored one row per missing field, there would be 10 rows. There are only 7, so this table counts failing CIs, not missing fields.
Step 4: Check cmdb_health_scorecard
The Completeness row for Printing Hardware shows Total 10, Failed 7, Score 70.
Step 5: Check the dashboard.
CMDB Workspace → Health Dashboard → Class → Printing Hardware shows Completeness 30% for 10 CIs, with the same evaluation timestamp as the scorecard row.
100 - 70 = 30
Additional point: The Scorecard Keeps History
The health job runs daily. Each run writes new rows with Status = Complete, and the previous rows change to Historic. You can report on trends straight from cmdb_health_scorecard without Performance Analytics. Just convert the score first (100 − score) so the chart shows health, not failure.
Things to watch for
- In cmdb_health_result, the Metric column shows Recommended (or Required), not Completeness. Completeness is the overall score made up of those sub-checks.
- Everything above applies with “Use legacy calculation methods” turned off on the dashboard (the default). With it on, the dashboard uses a weighted formula and the numbers won’t line up the same way.
- Tested on Australia Release
Takeaway
If you build a report or alert on cmdb_health_scorecard.score, remember that a higher score is worse. Convert it with 100 − score before you show it to anyone.
If this helped, please mark it helpful, and feel free to ask questions in the comments. I hope this helps developers who are new to CMDB.
Regards
Raghavendra G