fusemetrics - Build Metrics Dashboard
If you have been using CI for quite sometime, you probably have a wide array of metrics for your projects - code coverage, complexity, coupling, bugs, tests, suspicious code, style violations, copy/paste detectors, performance measurements, dependency analysis and more.
And with all those metrics, it can be a struggle to get a single, simple view of what's going on with your project, and, perhaps more importantly, how your project's metrics are changing over time.
That's why we built FuseMetrics. It analyzes your metrics data, and produces a single page view of whichever metrics you find interesting, including trending graphs and some histographic analysis of your entire codebase. It's open source, extendable, and easy to use.
Who are the creators?
FuseMetrics was written primarily by John Brothers and Meera Subbarao, based on original concepts by Andrew Glover.
What does it do?
FuseMetrics produces sparkline graphs of metrics values over time, and histograms of the characteristics of the overall code base. Combines them together to produce a single-page dashboard (screenshot) that you can customize to your heart's content.
FuseMetrics is written in Groovy, and can parse the reports of many of the most common analysis tools:
And, because of a basic plugin architecture, it can be extended to support just about any other tool, as long as the output is well-formed.
How does it work?
FuseMetrics analyzes the .xml files from your existing metrics - Checkstyle, CPD, PMD, FindBugs, JDepend, JUnit, Clover, Cobertura and many more, and pulls in the top-level metrics from those tools. It uses a plugin architecture, so new metrics and changes to XML structure can be easily supported.
As it gathers metrics, it stores them in memory, so it can produce Sparkline trend graphs and histograms of the overall code base.
Lastly, it builds a simple template-based dashboard HTML page, where all these graphs and metrics can be combined into one view.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)