TeamCity Monitoring and Diagnostics
TeamCity provides a variety of diagnostic tools and indicators to monitor and troubleshoot the server. These tools make it easier to identify and investigate problems and, if needed, report issues on your server.
This article describes the diagnostics tools available in Administration | Diagnostics. You can also find more details in the nested articles of this section.
This tab provides a number of indicators helping you to detect and address issues with the TeamCity server performance.
CPU & Memory Usage
This section displays the data provided by the TeamCity Memory Monitor, which regularly checks available memory and submits a warning if the memory consumption grows too high. See also information on configuring memory settings for the TeamCity server.
Depending on your operating system and Java settings, the list of displayed properties below may vary.
TeamCity process CPU usage shows the CPU time used by the main TeamCity process averaged over a period of time. Other processes consuming CPU resources (databases, Maven server, VCS) are not included.
Garbage collection shows the time spent on cleaning the server memory averaged over a period of time. High numbers over long periods of time usually indicate insufficient server memory.
System load displays CPU load information based upon the CPU queue length averaged over a period of time, i.e. the sum of the number of runnable entities queued to the available processors and the number of entities running on the available processors averaged over a period of time (1 minute)
Overall CPU usage shows the recent CPU usage for the whole system with a value in the [0.0,1.0] interval. A value of 0.0 means that all CPUs were idle during the recent period of time, while a value of 1.0 means that all CPUs were actively running 100% of the time during the recent period
Total heap displays the total amount of memory used by TeamCity to store all data, including temporary data about to be collected. Represents all heap memory pools (young and old generations) in terms of java. Garbage collection runs quickly and frequently.
Data shows the amount of memory used by TeamCity to store persistent data. Represents old generations only in terms of java. Garbage collection runs slowly and infrequently.
This allows changing the internal TeamCity server logging settings.
Hangs and Thread Dumps
The server thread dump can be viewed in the browser or saved to a file.
If you experience memory problems, this section provides an option to dump a memory snapshot.
This section allows restarting the server from the UI.
This tab displays the information on the monitored VCS roots, including their checking for changes status and duration.
You can filter the available VCS roots by the checking for changes duration.
TeamCity provides server load metrics which can be used for monitoring the TeamCity server health.
The Metrics tab displays all supported metrics, their
tag parameters, and current values.
<TeamCity_server_URL>/app/metrics endpoint provides the metrics in a Prometheus format, ready for importing to monitoring solutions with a Prometheus support (for example, to Grafana). Note that server metrics can be obtained only by a user with the "View usage statistics" permission.
experimental tag for metrics is not reported starting with TeamCity 2023.05. The
?experimental=true URL parameter for metrics in the Prometheus format still works, and some of the metrics still have the experimental status. If you find any of the experimental metrics useful and would want them to be graduated to the supported metrics, let us know via our support channel.
This tab allows you to view and download the available TeamCity server logs, as well as saved thread dumps and memory dumps.
This tab displays the TeamCity server internal properties and allows modifying them.
TeamCity uses the
log4j library for logging internal server activities. In this section you can view and download the available presets, as well as upload new presets, which can then be enabled on the Diagnostics | Troubleshooting | Debug Logging.
It is also possible to change the logging configuration manually.
This tab shows you the caches of the TeamCity processes stored in
<TeamCity Data Directory>/system/caches. Resetting some caches is performed by the server during the clean-up automatically, but sometimes you might need to clear caches manually using the reset link.
vcsContentCache— TeamCity maintains vcsContentCache cache for the sources to optimize communications with the VCS server. The caches are reset during the clean-up time. To resolve problems with sources update, the caches may need to be reset manually.
search— resetting this cache is required when enabling search by build log.
git— contains the bare clone of the remote Git repository used by TeamCity.
buildsMetadata— resetting this cache is required to reindex the TeamCity NuGet feed.
Versioned Settings Caches
The following caches are utilized when you keep settings of a TeamCity project in a version control system. See this article for more information: Storing Project Settings in Version Control
dslDependenciesMavencontains downloaded Maven dependencies specified by users in the pom.xml file of a Kotlin DSL configuration.
generatedVersionedSettingsstores generated configs cache to prevent excessive DSL runs.
kotlinDslDatastores internal data related to configurations and results of Kotlin DSL runs. This cache is used by TeamCity to maintain Kotlin DSL configurations, for example support UI patches.
pluginsDslCachecontains Kotlin DSL extensions from plugins such as sources, compiled JARs, and documentation. Additionally, this cache stores Maven repository that provides Maven dependencies.
versionedSettingscontains downloaded versioned settings (the content of the
versionedSettingsIncrementalModesupports incremental compilation for Kotlin DSL.
Displays information on the TeamCity data index related to the search.
Browse Data Directory
This tab shows the files in the TeamCity Data Directory and allows you to upload new files.