Custom Chart
In addition to statistic charts generated automatically by TeamCity on the Statistics tab, it is possible to configure your own statistical charts based on the set of statistic values provided by TeamCity or values reported from a build script. In the latter case you will need to configure your build script to report custom statistical data to TeamCity.
You can view statistic values reported by the build on the Build Parameters page.
Managing Custom Charts via TeamCity UI
It is possible to manage custom charts using the TeamCity web UI.
Adding Custom Charts
The Statistics tab for a project or build configuration provides an option to create a new chart. Note that only one build configuration can be currently added as the data source. More configurations can be added manually.
On the Parameters tab of the build results page, the list of Reported statistic values provides checkboxes to select the statistics type for a new project- or build-configuration-level chart.
A project-level chart will be added to the selected target project. The root project cannot be selected as the target.
A build-configuration-level chart will be added to all build configurations of the selected target project and its subprojects. Specifying the root project as the target will add the chart to all build configurations available on the server.
Modifying Custom Charts
Use the pencil icon to edit or delete a custom chart. Note that the Add Statistic Values drop-down menu displays all statistic values registered on the server without filtering them by build. If you select a value non-existent in the current build configuration or project when editing a chart, the chart will not be saved.
Using the cog icon, you can also configure the Y-axis settings and save them as defaults for all users.
Note that there is a number of limitations to editing charts from the TeamCity UI.
Reordering Custom Charts
To reorder custom charts for a project/build configuration, click the Reorder button and drag-and-drop the charts to arrange them as required and apply your changes.
Managing Custom Charts Manually
To manually create custom charts to be displayed in the TeamCity UI, configure the <TeamCity Data Directory>/config/projects/<ProjectID>/project-config.xml
file. The file has the <project-extensions>
element which contains all project features, including custom charts. For each chart an <extention>
element is added.
Charts can also be configured via Kotlin DSL. Example configuration:
See the reference on available parameters below.
Displaying Custom Chart in TeamCity UI
To make TeamCity display a custom chart in the UI, update the <TeamCity Data Directory>/config/projects/<ProjectID>/project-config.xml
configuration file adding a new <extention>
sub-element to the <project-extensions>
element.
Each extension must have a unique id
in the project.
The type
attribute is set to
project-graphs
for project-level chartbuildtype-graphs
for build configuration-level chart
Each chart is described by the <parameters>
element. It must contain the <param>
sub-elements with data shown in the chart in name/value
pairs; the series
parameter uses the JSON format to list series of data shown on the chart.
See the example below:
Custom build configuration-level chart in project-config.xml
This chart will be shown on the Statistics tabs of the build configurations of the project where the project-config.xml
file is located and all its subprojects. To display a chart for all build configurations, add it to the project-config.xml
of the Root project.
Parameters Reference
Name | Description |
---|---|
| The title above the chart. |
| The title above the list of series used on the chart (in the singular form). The default is |
| The list of comma-separated options to be checked by default. Can include the following:
|
| The list of comma-separated filter names that will not be shown next to the chart:
Default: empty (all filters are shown). |
| The format of the y-axis values. Supported formats are:
If no format is specified, the numeric format is used. |
The series
parameter uses JSON format to list series of data shown on the chart. Each series is drawn in a separate color and you can choose one or another series using a filter.
Name | Description |
---|---|
|
|
| The name of the valueType (series). It can be predefined by TeamCity, like |
| The series name shown in the series selector. Defaults to |
| This field allows you to explicitly specify a build configuration to use the data from for the given series. This field is mandatory for the first valueType used in a chart if the chart is added at the project level. In other cases it is optional. However, note that TeamCity chooses the build configuration to take the data from according to the following rules:
|
| The color of a series to be used in the chart. Standard web color formats can be used - "#RRGGBB", color names, and so on. For more information see HTML Colors reference and HTML Color Names reference. If not specified, an automatic color will be assigned based on the series title. |
| Pattern for names of the Value Types (or series) to be shown on the chart. The asterisk ( |
Chart Dimensions
You can set the custom chart width/height in pixels using the properties.width
and properties.height
attributes for the param
elements: <param name="properties.width" value="300"/>
.
Chart Axis Settings
You can also customize the default axis settings for a chart via parameter names starting with properties
: for example, properties.axis.y.type
.
Supported properties:
Name | Description |
---|---|
|
|
| Whether the zero value is included on the Y axis:
|
| An integer value to start the Y axis from. |
| An integer value to use as the maximum for the Y axis value . |
Default Statistics Values Provided by TeamCity
The table below lists the predefined value providers that can be used to configure a custom chart. The values reported for each build differ depending on your build configuration settings.
You can view all statistic values reported by the build on the Build Results | Parameters | Reported statistic values tab. For each of the values, a statistics chart is available on clicking the View Trend icon .
Key | Description | Unit |
---|---|---|
| The sum of all artifact file sizes in the artifact directory | Bytes |
| The sum of all artifact file sizes excluding hidden artifacts (those placed under the | Bytes |
| The duration of the artifact publishing step in the build | Milliseconds |
| The duration of each step. Since version 2021.2.1, TeamCity displays the build step name next to its duration. Previously, each step's ID was generated automatically. This is still the case when the name is not defined in the step's settings or if | Milliseconds |
| The duration of the source checkout step | Milliseconds |
| The duration of resolving dependencies of the build | Milliseconds |
| The build duration (all build stages) | Milliseconds |
| The build steps' duration (excluding the checkout, artifact publishing time, and so on) | Milliseconds |
| Block-level code coverage | % |
| Class-level code coverage | % |
| Line-level code coverage | % |
| Method-level code coverage | % |
| Branch coverage | % |
| Statement coverage | % |
| The number of covered blocks | int |
| The total number of blocks | int |
| The number of covered classes | int |
| The total number of classes | int |
| The number of covered lines | int |
| The total number of lines | int |
| The number of covered methods | int |
| The total number of methods | int |
| The number of covered branches | int |
| The total number of branches | int |
| The number of covered statements | int |
| The total number of statements | int |
| The number of code duplicates found | int |
| The total number of tests in the build | int |
| The number of successfully passed tests in the build | int |
| The number of failed tests in the build | int |
| The number of ignored tests in the build | int |
| The number of inspection errors in the build | int |
| The number of inspection warnings in the build | int |
| An indicator whether the build was successful | 0 - failed, 1 - successful |
| For how long the build was staying in the queue | Milliseconds |
Custom Build Metrics
If the predefined build metrics do not cover your needs, you can report custom metrics to TeamCity from your build script and use them to create a custom chart. There are two ways to report custom metrics to TeamCity:
using service messages from your build,
or (obsolete approach) using the
teamcity-info.xml
file.
Note that custom value keys should be unique and should not interfere with value keys predefined by TeamCity.