TeamCity 9.0 Help

Custom Statistics

TeamCity provides a number of ways to customize statistics. You can add your own custom metrics to integrate your tools/processes, insert any statistical chart/report into statistic page extension places and so on.

This page describes programmatic approaches to statistics customization. For user-level customizations, please refer to the Custom Chart page.

Customize TeamCity Statistics Page

Add Chart

To add a chart to the Statistics tab for a project or build configuration, use the ChartProviderRegistry bean:

public MyExtension(ChartProviderRegistry registry, ProjectManager manager) { registry.getChartProvider("project-graphs").registerChart(manager.findProjectByExternalId("externalId"), createXmlGraphBean()); // "project-graphs" for Project Statistics Tab // "buildtype-graphs" for Build Configuration Statistics Tab } public XmlGraphBean createXmlGraphBean() { // creates XmlGraphBean }

Add Custom Content

To add custom content to the Statistics tab for a project or build configuration, use the following example Web UI Extensions and the appropriate PlaceId:

    • for Build Configuration Statistics tab, use PlaceId.BUILD_CONF_STATISTICS_FRAGMENT

    • for Project Statistics tab, use PlaceId.PROJECT_STATS_FRAGMENT.

Add Statistics to your Custom Pages

To add charts to your custom JSP pages, use the <buildGraph> tag and a special controller accessible on "/buildGraph.html". It requires the jsp attribute leading to your page:

new ModelAndView("/buildGraph.html?jsp=" + myDescriptor.getPluginResourcesPath("sampleChartPage.jsp"))'

To insert statistics chart into the sampleChartPage.jsp:

<%@taglib prefix="stats" tagdir="/WEB-INF/tags/graph"%> <stats:buildGraph id="g1" valueType="BuildDuration"/>

Customize Chart Appearance

Attribute

Description

Usage

width, height

modify the chart image size

Integer value

hideFilters

suppress filter controls

Comma separated filters names: 'all', 'series', 'average', 'showFailed', 'range', 'yAxisType', 'forceZero' or 'yAxisRange'

defaultFilter

default filter state

Comma separated names: 'showFailed', 'averaged', 'logYAxis', 'autoscale'

hints

chart style

Set to 'rendererB' for a bar chart

Add Custom Build Metrics

To add a custom build metric, in addition to Custom Chart, you can extend BuildValueTypeBase to define your build metric calculation method, appearance, and key. After that you can reference this metric by its key in statistics chart/report tags.

Last modified: 20 April 2023