TeamCity

Supported OS Linux Windows Mac OS

Integration version3.1.0

Overview

This integration connects to your TeamCity server to submit metrics, service checks, and events, allowing you to monitor the health of your TeamCity projects’ build configurations, build runs, server resources, and more.

Setup

Installation

The TeamCity check is included in the Datadog Agent package, so you don’t need to install anything else on your TeamCity servers.

Configuration

Prepare TeamCity

  1. To prepare TeamCity, see Enabling Guest Login.

  2. Enable Per-project permissions to allow assigning project-based permissions to the Guest user. See Changing Authorization Mode. Enable Guest Login

  3. Use an existing or create a new Read-only role and add the View Usage Statistics permission to the role. See Managing Roles and Permissions. Create Read-only Role

  4. [Optional] To enable the check to automatically detect build configuration type during event collection, add the View Build Configuration Settings permission to the Read-only role. Assign View Build Config Settings Permission

  5. Assign the Read-only role to the Guest user. See Assigning Roles to Users. Guest user settings Assign Role

Host

To configure this check for an Agent running on a host:

Edit the teamcity.d/conf.yaml in the conf.d/ folder at the root of your Agent’s configuration directory. See the sample teamcity.d/conf.yaml for all available configuration options:

The TeamCity check offers two methods of data collection. To optimally monitor your TeamCity environment, configure two separate instances to collect metrics from each method.

  1. OpenMetricsV2 method (requires Python version 3):

    Enable use_openmetrics: true to collect metrics from the TeamCity /metrics Prometheus endpoint.

    init_config:
    
    instances:
        ## @param server - string - required
        ## Specify the server name of your TeamCity instance.
        ## Enable Guest Authentication on your instance or enable the
        ## optional `basic_http_authentication` config param to collect data.
        ## If using `basic_http_authentication`, specify:
        ##
        ## server: http://<USER>:<PASSWORD>@teamcity.<ACCOUNT_NAME>.com
        #
      - server: http://teamcity.<ACCOUNT_NAME>.com
        ## @param use_openmetrics - boolean - optional - default: false
        ## Use the latest OpenMetrics V2 implementation to collect metrics from
        ## the TeamCity server's Prometheus metrics endpoint.
        ## Requires Python version 3.
        ##
        ## Enable in a separate instance to collect Prometheus metrics.
        ## This option does not collect events, service checks, or metrics from the TeamCity REST API.
        #
        use_openmetrics: true
    

Note: To collect OpenMetrics-compliant histogram and summary metrics (available starting in TeamCity Server 2022.10+), add the internal property, teamcity.metrics.followOpenMetricsSpec=true. See, TeamCity Internal Properties.

  1. TeamCity Server REST API method:

    Configure a separate instance in the teamcity.d/conf.yaml file to collect additional build-specific metrics, service checks, and build status events from the TeamCity server’s REST API. Specify your projects and build configurations using the projects option (requires Python version 3):

    init_config:
    
    instances:
      - server: http://teamcity.<ACCOUNT_NAME>.com
    
        ## @param projects - mapping - optional
        ## Mapping of TeamCity projects and build configurations to
        ## collect events and metrics from the TeamCity REST API.
        #
        projects:
          <PROJECT_A>:
            include:    
            - <BUILD_CONFIG_A>
            - <BUILD_CONFIG_B>
            exclude:
            - <BUILD_CONFIG_C>
          <PROJECT_B>:
            include:
            - <BUILD_CONFIG_D>
          <PROJECT_C>: {}
    

    Customize each project’s build configuration monitoring using the optional include and exclude filters to specify build configuration IDs to include or exclude from monitoring, respectively. RegEx patterns are supported in the include and exclude keys to specify build configuration ID matching patterns. If both include and exclude filters are omitted, all build configurations are monitored for the specified project.

    For Python version 2, configure one build configuration ID per instance using the build_configuration option:

    init_config:
    
    instances:
      - server: http://teamcity.<ACCOUNT_NAME>.com
    
        ## @param projects - mapping - optional
        ## Mapping of TeamCity projects and build configurations to
        ## collect events and metrics from the TeamCity REST API.
        #
        build_configuration: <BUILD_CONFIGURATION_ID>
    

Restart the Agent to start collecting and sending TeamCity events to Datadog.

Log collection
  1. Configure TeamCity logging settings.

  2. By default, Datadog’s integration pipeline supports the following kind of log format:

    [2020-09-10 21:21:37,486]   INFO -  jetbrains.buildServer.STARTUP - Current stage: System is ready
    

    Clone and edit the integration pipeline if you defined different conversion patterns.

  3. Collecting logs is disabled by default in the Datadog Agent. Enable it in your datadog.yaml file:

    logs_enabled: true
    
  4. Uncomment the following configuration block in your teamcity.d/conf.yaml file. Change the path parameter value based on your environment. See the sample teamcity.d/conf.yaml for all available configuration options.

    logs:
      - type: file
        path: /opt/teamcity/logs/teamcity-server.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-activities.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-vcs.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-cleanup.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-notifications.log
        source: teamcity
      - type: file
        path: /opt/teamcity/logs/teamcity-ws.log
        source: teamcity
    
  5. Restart the Agent.

Containerized

For containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.

ParameterValue
<INTEGRATION_NAME>teamcity
<INIT_CONFIG>blank or {}
<INSTANCE_CONFIG>{"server": "%%host%%", "use_openmetrics": "true"}
Log collection

Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes log collection.

ParameterValue
<LOG_CONFIG>{"source": "teamcity"}

Validation

Run the Agent’s status subcommand and look for teamcity under the Checks section.

Data Collected

Metrics

teamcity.agents.connected.authorized
(gauge)
[OpenMetricsV2] Number of connected and authorized build agents
teamcity.agents.running.builds
(gauge)
[OpenMetricsV2] Number of build agents which are running builds
teamcity.build.configs
(gauge)
[OpenMetricsV2] Number of builds in the database
teamcity.builds.finished.count
(count)
[OpenMetricsV2] Number of finished builds
teamcity.builds.queued
(gauge)
[OpenMetricsV2] Build queue size
teamcity.builds.running
(gauge)
[OpenMetricsV2] Number of running builds
teamcity.builds.started.count
(count)
[OpenMetricsV2] Number of started builds
teamcity.cpu.count
(gauge)
[OpenMetricsV2] The number of processors available to the Java Virtual Machine
teamcity.cpu.usage.process
(gauge)
[OpenMetricsV2] The recent cpu usage for the Java Virtual Machine process
teamcity.cpu.usage.system
(gauge)
[OpenMetricsV2] The recent cpu usage for the whole system
teamcity.database.connections.active
(gauge)
[OpenMetricsV2] Number of active database connections
teamcity.httpSessions.active
(gauge)
[OpenMetricsV2] Number of active HTTP sessions
teamcity.jvm.buffer.total.capacity.bytes
(gauge)
[OpenMetricsV2] An estimate of the total capacity of the buffers in this pool
Shown as byte
teamcity.jvm.buffers_count
(gauge)
[OpenMetricsV2] Estimated number of buffers in the pool
teamcity.jvm.buffer.memory.used.bytes
(gauge)
[OpenMetricsV2] Estimated memory used by the Java Virtual Machine for this buffer pool
Shown as byte
teamcity.jvm.memory.committed.bytes
(gauge)
[OpenMetricsV2] The amount of memory in bytes that is committed for the Java virtual machine to use
teamcity.jvm.memory.max.bytes
(gauge)
[OpenMetricsV2] The maximum amount of memory in bytes that can be used for memory management
teamcity.jvm.memory.used.bytes
(gauge)
[OpenMetricsV2] The amount of used memory
teamcity.jvm.threads
(gauge)
[OpenMetricsV2] The current number of live threads including both daemon and non-daemon threads
teamcity.projects
(gauge)
[OpenMetricsV2] Number of projects
teamcity.projects.active
(gauge)
[OpenMetricsV2] Number of active projects
teamcity.server.uptime.milliseconds
(gauge)
[OpenMetricsV2] Time since the server process started initializing
Shown as millisecond
teamcity.system.load.average.1m
(gauge)
[OpenMetricsV2] The sum of the number of runnable entities queued to available processors and the number of runnable entities
teamcity.users.active
(gauge)
[OpenMetricsV2] Number of unique user sessions within the preceding hour
teamcity.vcsRoots
(gauge)
[OpenMetricsV2] Number of VCS roots
teamcity.build.configs.active
(gauge)
[OpenMetricsV2 - Experimental] Number of active build configurations
teamcity.build.configs.composite.active
(gauge)
[OpenMetricsV2 - Experimental] Number of active composite configurations
teamcity.build.messages.incoming.count
(count)
[OpenMetricsV2 - Experimental] Incoming build agent messages
teamcity.build.messages.processing.count
(count)
[OpenMetricsV2 - Experimental] Processed build agent messages
teamcity.build.queue.estimates.processing.count
(count)
[OpenMetricsV2 - Experimental] Build queue estimates processing
teamcity.build.queue.incoming.count
(count)
[OpenMetricsV2 - Experimental] Builds added to queue
teamcity.build.queue.processing.count
(count)
[OpenMetricsV2 - Experimental] Count of processing builds in build queue
teamcity.build.service.messages.count
(count)
[OpenMetricsV2 - Experimental] Processed service messages
teamcity.building_hosted_agents
(gauge)
[OpenMetricsV2 - Experimental] Number of hosted agents running builds
teamcity.builds
(gauge)
[OpenMetricsV2 - Experimental] Number of builds in the database
teamcity.cache.InvestigationTestRunsHolder.projectScopes
(gauge)
[OpenMetricsV2 - Experimental] Number of project scopes in the InvestigationTestRunsHolder scopes cache
teamcity.cache.InvestigationTestRunsHolder.testNames
(gauge)
[OpenMetricsV2 - Experimental] Number of tests in the InvestigationTestRunsHolder scopes cache
teamcity.cache.InvestigationTestRunsHolder.testRuns
(gauge)
[OpenMetricsV2 - Experimental] Number of test runs in the InvestigationTestRunsHolder cache
teamcity.cloud.active_nodes
(gauge)
[OpenMetricsV2 - Experimental] Current number of active cloud-managed nodes
teamcity.cloud.agent.active_duration_afterBuild
(gauge)
[OpenMetricsV2 - Experimental] Duration of time spent by managed agent between build finish and agent termination
Shown as millisecond
teamcity.cloud.agent.active_duration_beforeBuild
(gauge)
[OpenMetricsV2 - Experimental] Duration of time spent by managed agent before build start
Shown as millisecond
teamcity.cloud.agent.active_duration_betweenBuilds
(gauge)
[OpenMetricsV2 - Experimental] Duration of time spent by managed agent between builds before agent termination
Shown as millisecond
teamcity.cloud.agent.idle_duration
(gauge)
[OpenMetricsV2 - Experimental] Duration of time managed agent spent idle
teamcity.cloud.agent.starting_duration_beforeRegister
(gauge)
[OpenMetricsV2 - Experimental] Duration of time spent starting cloud agent
Shown as millisecond
teamcity.cloud.agent.total_build_duration
(gauge)
[OpenMetricsV2 - Experimental] Total build duration on managed agent
Shown as millisecond
teamcity.cloud.agent.total_build_duration_beforeFinish
(gauge)
[OpenMetricsV2 - Experimental] Total build duration on managed agent before build finish
Shown as millisecond
teamcity.cloud.build_stuck_canceled
(gauge)
[OpenMetricsV2 - Experimental] Number of builds stack in the canceling state
teamcity.cloud.images
(gauge)
[OpenMetricsV2 - Experimental] Number of cloud images
teamcity.cloud.plugins.failed_loading.count
(count)
[OpenMetricsV2 - Experimental] Number of plugins failed to load
teamcity.cloud.server.gc_usage_exceeded_errors
(gauge)
[OpenMetricsV2 - Experimental] Number of GC usage exceeded errors
teamcity.cloud.server.high_total_memory_errors
(gauge)
[OpenMetricsV2 - Experimental] Number of high memory errors
teamcity.cloud.tcc_plugin_loaded
(gauge)
[OpenMetricsV2 - Experimental] Flag indicating TeamCity Cloud Plugin is loaded and running
teamcity.current_full_agent_wait_instances
(gauge)
[OpenMetricsV2 - Experimental] Current full agent waiting instances
teamcity.current_full_agent_wait_time_max
(gauge)
[OpenMetricsV2 - Experimental] Current max full agent waiting time
teamcity.current_full_agent_wait_time_total
(gauge)
[OpenMetricsV2 - Experimental] Current total full agent waiting time
teamcity.db.table.writes.count
(count)
[OpenMetricsV2 - Experimental] Writes to build_data_storage DB table
teamcity.disk_usage.artifacts.bytes
(gauge)
[OpenMetricsV2 - Experimental] Artifacts disk usage
teamcity.disk_usage.logs.bytes
(gauge)
[OpenMetricsV2 - Experimental] Build logs disk usage
teamcity.executors.asyncXmlRpc.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for asyncXmlRpc
teamcity.executors.asyncXmlRpc.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for asyncXmlRpc
teamcity.executors.asyncXmlRpc.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for asyncXmlRpc
teamcity.executors.asyncXmlRpc.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for asyncXmlRpc
teamcity.executors.asyncXmlRpc.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for asyncXmlRpc
teamcity.executors.asyncXmlRpc.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to asyncXmlRpc
teamcity.executors.baseVcsExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for baseVcsExecutor
teamcity.executors.baseVcsExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for baseVcsExecutor
teamcity.executors.baseVcsExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for baseVcsExecutor
teamcity.executors.baseVcsExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for baseVcsExecutor
teamcity.executors.baseVcsExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for baseVcsExecutor
teamcity.executors.baseVcsExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to baseVcsExecutor
teamcity.executors.cleanupExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for cleanupExecutor
teamcity.executors.cleanupExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for cleanupExecutor
teamcity.executors.cleanupExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for cleanupExecutor
teamcity.executors.cleanupExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for cleanupExecutor
teamcity.executors.cleanupExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for cleanupExecutor
teamcity.executors.cleanupExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to cleanupExecutor
teamcity.executors.lowPriorityExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for lowPriorityExecutor
teamcity.executors.lowPriorityExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for lowPriorityExecutor
teamcity.executors.lowPriorityExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for lowPriorityExecutor
teamcity.executors.lowPriorityExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for lowPriorityExecutor
teamcity.executors.lowPriorityExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for lowPriorityExecutor
teamcity.executors.lowPriorityExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to lowPriorityExecutor
teamcity.executors.normalExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for normalExecutor
teamcity.executors.normalExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for normalExecutor
teamcity.executors.normalExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for normalExecutor
teamcity.executors.normalExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for normalExecutor
teamcity.executors.normalExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for normalExecutor
teamcity.executors.normalExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to normalExecutor
teamcity.executors.periodicalVcsExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for periodicalVcsExecutor
teamcity.executors.periodicalVcsExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for periodicalVcsExecutor
teamcity.executors.periodicalVcsExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for periodicalVcsExecutor
teamcity.executors.periodicalVcsExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for periodicalVcsExecutor
teamcity.executors.periodicalVcsExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for periodicalVcsExecutor
teamcity.executors.periodicalVcsExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to periodicalVcsExecutor
teamcity.executors.tomcatHttpThreadPool.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of Apache Tomcat HTTP thread pool active threads
teamcity.executors.tomcatHttpThreadPool.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Apache Tomcat HTTP thread pool size
teamcity.executors.triggersExecutor.activeTasks
(gauge)
[OpenMetricsV2 - Experimental] Running executor tasks for triggersExecutor
teamcity.executors.triggersExecutor.completedTasks
(gauge)
[OpenMetricsV2 - Experimental] Completed executor tasks for triggersExecutor
teamcity.executors.triggersExecutor.maxQueueCapacity
(gauge)
[OpenMetricsV2 - Experimental] Queue capacity for triggersExecutor
teamcity.executors.triggersExecutor.poolSize
(gauge)
[OpenMetricsV2 - Experimental] Pool size for triggersExecutor
teamcity.executors.triggersExecutor.queuedTasks
(gauge)
[OpenMetricsV2 - Experimental] Number of queued tasks for triggersExecutor
teamcity.executors.triggersExecutor.rejectsCount
(gauge)
[OpenMetricsV2 - Experimental] Rejection count for adding tasks to triggersExecutor
teamcity.full_agent_wait_time.quantile
(gauge)
[OpenMetricsV2 - Experimental] Full agent waiting time quantiles
teamcity.io.build.log.reads.bytes.count
(count)
[OpenMetricsV2 - Experimental] Build log read bytes count
Shown as byte
teamcity.io.build.log.writes.bytes.count
(count)
[OpenMetricsV2 - Experimental] Build log written bytes count
Shown as byte
teamcity.io.build.patch.writes.bytes.count
(count)
[OpenMetricsV2 - Experimental] An estimate of the memory that the Java Virtual Machine is using for this buffer pool
Shown as byte
teamcity.jvm.gc.count
(gauge)
[OpenMetricsV2 - Experimental] Number of GC calls
teamcity.jvm.gc.duration.total.milliseconds
(gauge)
[OpenMetricsV2 - Experimental] Total GC duration since JVM start
Shown as millisecond
teamcity.jvm.gc.live.data.size.bytes
(gauge)
[OpenMetricsV2 - Experimental] Size of old generation memory pool after a full GC
teamcity.jvm.gc.max.data.size.bytes
(gauge)
[OpenMetricsV2 - Experimental] Max size of old generation memory pool
teamcity.jvm.gc.memory.allocated.bytes.count
(count)
[OpenMetricsV2 - Experimental] Count incremented for an increase in the size of the young generation memory pool between GC calls
teamcity.jvm.gc.memory.promoted.bytes.count
(count)
[OpenMetricsV2 - Experimental] Count of positive increases in the size of the old generation memory pool between GC calls
teamcity.jvm.threads.daemon
(gauge)
[OpenMetricsV2 - Experimental] The current number of live daemon threads
teamcity.node.events.processing.count
(count)
[OpenMetricsV2 - Experimental] Number of multi-node events processing
teamcity.node.events.publishing.count
(count)
[OpenMetricsV2 - Experimental] Number of multi-node events publishing
teamcity.node.events.unprocessed
(gauge)
[OpenMetricsV2 - Experimental] Current number of unprocessed multi-node events
teamcity.node.tasks.accepted.count
(count)
[OpenMetricsV2 - Experimental] Multi-node tasks accepted
teamcity.node.tasks.finished.count
(count)
[OpenMetricsV2 - Experimental] Multi-node tasks finished
teamcity.node.tasks.pending
(gauge)
[OpenMetricsV2 - Experimental] Current number of pending multi-node tasks
teamcity.runningBuilds.UnprocessedMessages
(gauge)
[OpenMetricsV2 - Experimental] The number of build log messages received from the build agents but not yet processed
teamcity.vcs.get.current.state.calls.count
(count)
[OpenMetricsV2 - Experimental] VCS state requests
teamcity.vcsRootInstances.active
(gauge)
[OpenMetricsV2 - Experimental] Number of active VCS root instances
teamcity.http.requests.duration.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of http requests to the server (bucket)
Shown as millisecond
teamcity.http.requests.duration.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of http requests to the server (count)
Shown as millisecond
teamcity.http.requests.duration.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of http requests to the server (sum)
Shown as millisecond
teamcity.process.queue.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of time to process build queue and start builds
Shown as millisecond
teamcity.process.queue.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of time to process build queue and start builds
Shown as millisecond
teamcity.process.queue.parts.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of time spent on builds optimization while processing the build queue
Shown as millisecond
teamcity.process.queue.parts.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of time spent on builds optimization while processing the build queue
Shown as millisecond
teamcity.process.websocket.send.pending.messages.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of time to send all pending WebSocket messages to UI
Shown as millisecond
teamcity.process.websocket.send.pending.messages.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of time to send all pending WebSocket messages to UI
Shown as millisecond
teamcity.pullRequests.batch.time.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of pull request retrieval, batch, duration
Shown as millisecond
teamcity.pullRequests.batch.time.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of pull request retrieval, batch, duration
Shown as millisecond
teamcity.pullRequests.single.time.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of pull request retrieval, individual, duration
Shown as millisecond
teamcity.pullRequests.single.time.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of pull request retrieval, individual, duration
Shown as millisecond
teamcity.vcsChangesCollection.delay.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Count of delay of the checking for changes operations invoked by: Starting build or build chain
Shown as millisecond
teamcity.vcsChangesCollection.delay.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Sum of delay of the checking for changes operations invoked by: Starting build or build chain
Shown as millisecond
teamcity.build.queue.optimization.time.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Build queue optimization time (bucket)
Shown as millisecond
teamcity.build.queue.optimization.time.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Build queue optimization time (count)
Shown as millisecond
teamcity.build.queue.optimization.time.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Build queue optimization time (sum)
Shown as millisecond
teamcity.build.triggers.execution.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Total time spent processing build triggers (bucket)
Shown as millisecond
teamcity.build.triggers.execution.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Total time spent processing build triggers (count)
Shown as millisecond
teamcity.build.triggers.execution.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Total time spent processing build triggers (sum)
Shown as millisecond
teamcity.build.triggers.per.type.execution.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent processing build triggers of given type (bucket)
Shown as millisecond
teamcity.build.triggers.per.type.execution.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent processing build triggers of given type (count)
Shown as millisecond
teamcity.build.triggers.per.type.execution.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent processing build triggers of given type (sum)
Shown as millisecond
teamcity.finishingBuild.buildFinishDelay.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent since the server received buildFinish from the agent and a moment when the build has been finished by the server (bucket)
Shown as millisecond
teamcity.finishingBuild.buildFinishDelay.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent since the server received buildFinish from the agent and a moment when the build has been finished by the server (count)
Shown as millisecond
teamcity.finishingBuild.buildFinishDelay.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent since the server received buildFinish from the agent and a moment when the build has been finished by the server (sum)
Shown as millisecond
teamcity.full.agent.waiting.time.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Full agent waiting time (bucket)
Shown as millisecond
teamcity.full.agent.waiting.time.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Full agent waiting time (count)
Shown as millisecond
teamcity.full.agent.waiting.time.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Full agent waiting time (sum)
Shown as millisecond
teamcity.queuedBuild.waitingTime.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent by a build waiting in the queue due to a particular reason (bucket)
Shown as millisecond
teamcity.queuedBuild.waitingTime.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent by a build waiting in the queue due to a particular reason (count)
Shown as millisecond
teamcity.queuedBuild.waitingTime.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent by a build waiting in the queue due to a particular reason (sum)
Shown as millisecond
teamcity.startingBuild.buildStartDelay.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time passed after the build was removed from the queue but before the start of the checking for changes operation (bucket)
Shown as millisecond
teamcity.startingBuild.buildStartDelay.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time passed after the build was removed from the queue but before the start of the checking for changes operation (count)
Shown as millisecond
teamcity.startingBuild.buildStartDelay.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time passed after the build was removed from the queue but before the start of the checking for changes operation (sum)
Shown as millisecond
teamcity.startingBuild.runBuildDelay.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent while preparing the starting build data and passing it to an agent (bucket)
Shown as millisecond
teamcity.startingBuild.runBuildDelay.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent while preparing the starting build data and passing it to an agent (count)
Shown as millisecond
teamcity.startingBuild.runBuildDelay.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Time spent while preparing the starting build data and passing it to an agent (sum)
Shown as millisecond
teamcity.vcs.changes.checking.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of checking for changes operation (bucket)
Shown as millisecond
teamcity.vcs.changes.checking.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of checking for changes operation (count)
Shown as millisecond
teamcity.vcs.changes.checking.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Duration of checking for changes operation (sum)
Shown as millisecond
teamcity.vcs.git.fetch.duration.milliseconds.bucket
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Git fetch operations duration (bucket)
Shown as millisecond
teamcity.vcs.git.fetch.duration.milliseconds.count
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Git fetch operations duration (count)
Shown as millisecond
teamcity.vcs.git.fetch.duration.milliseconds.sum
(count)
[OpenMetricsV2 - TeamCity v2022.10+] Git fetch operations duration (sum)
Shown as millisecond
teamcity.artifacts_size
(gauge)
The sum of all artifact file sizes in the artifact directory
Shown as byte
teamcity.build_duration
(gauge)
The build duration (all build stages)
Shown as millisecond
teamcity.build_duration.net_time
(gauge)
The build steps' duration (excluding the checkout, artifact publishing time, and so on)
Shown as millisecond
teamcity.build_stage_duration
(gauge)
The duration of tagged build step. See https://www.jetbrains.com/help/teamcity/custom-chart.html#Default+Statistics+Values+Provided+by+TeamCity
Shown as millisecond
teamcity.build_test_status
(gauge)
Build test status. 1 - OK; 2 - UNKNOWN; 3 - FAILED
teamcity.code_coverage.blocks.covered
(gauge)
Number of covered blocks
teamcity.code_coverage.blocks.pct
(gauge)
Block-level code coverage percentage
Shown as percent
teamcity.code_coverage.blocks.total
(gauge)
Total number of blocks
teamcity.code_coverage.branches.covered
(gauge)
Number of covered branches
teamcity.code_coverage.branches.pct
(gauge)
Branch coverage percentage
Shown as percent
teamcity.code_coverage.branches.total
(gauge)
Total number of branches
teamcity.code_coverage.classes.covered
(gauge)
Number of covered classes
teamcity.code_coverage.classes.pct
(gauge)
Class-level code coverage percentage
Shown as percent
teamcity.code_coverage.classes.total
(gauge)
Total number of classes
teamcity.code_coverage.lines.covered
(gauge)
Number of covered lines
teamcity.code_coverage.lines.pct
(gauge)
Line-level code coverage percentage
Shown as percent
teamcity.code_coverage.lines.total
(gauge)
Total number of lines
teamcity.code_coverage.methods.covered
(gauge)
Number of covered methods
teamcity.code_coverage.methods.pct
(gauge)
Method-level code coverage percentage
Shown as percent
teamcity.code_coverage.methods.total
(gauge)
Total number of methods
teamcity.code_coverage.statements.covered
(gauge)
Number of covered statements
teamcity.code_coverage.statements.pct
(gauge)
Statement coverage percentage
Shown as percent
teamcity.code_coverage.statements.total
(gauge)
Total number of statements
teamcity.duplicator_stats
(gauge)
Number of code duplicates found
teamcity.failed_test_count
(gauge)
The number of failed tests in the build
teamcity.passed_test_count
(gauge)
The number of successfully passed tests in the build
teamcity.ignored_test_count
(gauge)
Number of ignored tests in the build
teamcity.inspection_stats_e
(gauge)
The number of inspection errors in the build
teamcity.inspection_stats_w
(gauge)
The number of inspection warnings in the build
teamcity.queue_wait_reason
(gauge)
Queue wait time tagged by wait reason
Shown as millisecond
teamcity.server_side_build_finishing
(gauge)
The duration of server side build finishing
teamcity.success_rate
(gauge)
An indicator of the build's success. 0 - failed, 1 - successful
teamcity.time_spent_in_queue
(gauge)
Duration of time the build was staying in the queue
Shown as millisecond
teamcity.total_test_count
(gauge)
The total number of tests in the build

Events

TeamCity events representing successful and failed builds are forwarded to Datadog.

Service Checks

teamcity.openmetrics.health
Returns CRITICAL if the Agent is unable to connect to the OpenMetrics endpoint, otherwise returns OK.
Statuses: ok, critical

teamcity.build.status
Returns CRITICAL if the finished build has a status of FAILURE. Returns OK otherwise. Only emitted by the TeamCity REST instance.
Statuses: ok, critical

teamcity.build.problems
Returns WARNING if the finished build has encountered a problem. Returns OK otherwise. Only emitted by the TeamCity REST instance.
Statuses: ok, warning

teamcity.test.results
Returns CRITICAL if the finished build test has encountered a problem, WARNING if it has encountered a warning, or UNKNOWN if it has encountered an unknown problem. Returns OK otherwise. Only emitted by the TeamCity REST instance.
Statuses: ok, warning, critical, unknown

Troubleshooting

Need help? Contact Datadog support.

Further Reading