Performance Analytics vs Custom Table for CMDB Data Quality Reporting (400k+ CIs)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Monday
Hi @everyone,
We have a CMDB with approximately 400k+ CIs and need to build data quality reports (missing attributes, completeness, etc.).
For an environment of this size, what is the recommended approach?
- Use Performance Analytics (automated indicators/KPIs), or
- Calculate the metrics and store the results in a custom table for reporting
What are the restrictions in ootb performance analytics?
- Labels:
-
Data Foundations
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wednesday
Hey @HARIKRISHNAR648
Based on experience with large CMDB implementations (300k–1M+ CIs), I would recommend using a hybrid approach rather than relying solely on either Performance Analytics or a custom reporting table.
1. Start with OOTB CMDB Health
If your goal is to measure data quality (Completeness, Correctness, and Compliance), the first choice should be the OOTB CMDB Health framework. It is specifically designed for CMDB data quality and includes scheduled jobs, health dashboards, health result tables, and score calculations that are optimized for large CMDBs.
This avoids reinventing functionality that already exists in the platform.
2. Use Performance Analytics for Trending
Performance Analytics works well for executive dashboards and historical trends.
Typical KPIs include:
- % of CIs missing Owner
- % of CIs missing Support Group
- Completeness score by CI Class
- Compliance score over time
- Correctness trend by Business Service
PA stores snapshots during collection rather than recalculating every dashboard load, making it suitable for trend analysis.
However, I would recommend collecting aggregated indicators (counts, percentages, scores) rather than indicators that iterate through every CI with complex scripted logic.
3. When a Custom Table Makes Sense
A custom table becomes useful when requirements go beyond what CMDB Health or PA provide, for example:
- Custom scoring algorithms
- Multiple business-specific quality rules
- Detailed per-CI quality history
- Integration with external BI tools
- Complex reports requiring pre-calculated results
In that case, calculate the metrics with a scheduled job during off-peak hours and store only the summarized results. Avoid calculating against all 400k records every time a report is opened.
Performance Analytics Considerations / Limitations
Some points to keep in mind:
- Historical data is not retroactive
PA only starts collecting data after indicators are configured. It cannot generate historical trends for periods before collection started. - Collection performance
For a CMDB with 400k+ records, poorly written scripted indicators can significantly increase collection time. Keep indicator source queries simple and leverage indexed fields wherever possible. - High-cardinality breakdowns
Avoid creating breakdowns on fields such as CI Name, Serial Number, or Sys ID, as they create a very large number of breakdown elements.
Recommended breakdowns include:
- CI Class
- Company
- Environment
- Business Service
- Support Group
- Location
- KPI vs Record Detail
Performance Analytics is intended for KPI and trend reporting, not detailed record listings.
For example:
- "12% of Windows Servers are missing an Owner."
- "Show me the 4,826 Windows Servers missing an Owner."
For record-level reporting, use standard list reports, database views, or CMDB Health result tables.
- Storage Growth
Every indicator collection stores historical scores. If you have many indicators with multiple breakdowns collected frequently, storage usage will grow over time, so retention policies should be considered. - Near Real-Time Data
PA reflects the last successful collection. If indicators are collected nightly, dashboards will not show changes made after the latest collection until the next scheduled run.
Recommendation for a 400k+ CI Environment
For an environment of this size, I would recommend the following architecture:
- Use CMDB Health as the primary engine for data quality evaluation.
- Use Performance Analytics to trend the health scores and KPIs over time.
- Use standard reports or CMDB Health results to identify the individual CIs contributing to poor scores.
- Introduce a custom summary table only if business requirements require calculations or reporting that cannot be achieved through OOTB CMDB Health and PA.
This approach scales well, minimizes the impact on the CMDB, leverages OOTB capabilities, and avoids maintaining custom logic unless there is a genuine business need.
*********************************************************************************************************
If this response helps, please mark it as Accept as Solution and Helpful.
Doing so helps others in the community and encourages me to keep contributing.
Regards
Vaishali Singh
Servicenow Developer
Linkedin - https://www.linkedin.com/in/vaishali-singh-2273361bb