获取 TeamCity 中特定构建步骤所花费的时间

Get time taken for specific build step in TeamCity

我们是 运行 TeamCity8,想知道是否有任何方法可以访问特定构建步骤所花费的时间?

欢迎提出任何建议。

邓肯

它可以通过 REST 调用获得: http://[server_name]/app/rest/builds/id:[build_id]/statistics

这是一个示例响应:

<properties count="36">
<property name="ArtifactsSize" value="1274836"/>
<property name="BuildArtifactsPublishingTime" value="97"/>
<property name="BuildCheckoutTime" value="1480093"/>
<property name="BuildDuration" value="7324057"/>
<property name="BuildDurationNetTime" value="5843867"/>
<property name="buildStageDuration:artifactsPublishing" value="107"/>
<property name="buildStageDuration:buildFinishing" value="3"/>
<property name="buildStageDuration:buildStepRUNNER_107" value="20868"/>
<property name="buildStageDuration:buildStepRUNNER_11" value="107"/>
<property name="buildStageDuration:buildStepRUNNER_13" value="334"/>
<property name="buildStageDuration:buildStepRUNNER_14" value="3671"/>
<property name="buildStageDuration:firstStepPreparation" value="113"/>
<property name="buildStageDuration:sourcesUpdate" value="1480310"/>
<property name="BuildTestStatus" value="1"/>
<property name="InspectionStatsE" value="0.000000"/>
<property name="InspectionStatsW" value="0.000000"/>
<property name="PassedTestCount" value="24"/>
<property name="SampleStatistics" value="1"/>
<property name="SuccessRate" value="1"/>
<property name="TimeSpentInQueue" value="154"/>
<property name="TotalTestCount" value="24"/>
<property name="VisibleArtifactsSize" value="1266844"/>
</properties>

如果您可能想将此作为指标发送给 Graphite,请尝试基本上也使用此数据的精彩 TeamCity Graphite plugin(尽管它直接从 TeamCity OpenAPI 获取数据,而不是使用 REST 调用).

(以上两者的)唯一缺点是您需要解码神秘的步骤名称(例如 "buildStepRUNNER_107")。