Get statistics with Inespections
Super8film87 opened this issue · 21 comments
Hey,
I've trouble to find a solution to get statics of InspectionStatsE & InspectionStatsW.
If I check following url
http://<teamcity>/app/rest/builds/id:<id>/statistics
I see the correct payload:
<properties count="16">
<script/>
<property name="ArtifactsSize" value="2242155"/>
<property name="BuildDuration" value="34495"/>
<property name="BuildDurationNetTime" value="33403"/>
<property name="buildStageDuration:artifactsPublishing" value="319"/>
<property name="buildStageDuration:buildFinishing" value="500"/>
<property name="buildStageDuration:buildStepRUNNER_33274" value="30902"/>
<property name="buildStageDuration:buildStepRUNNER_33275" value="2501"/>
<property name="buildStageDuration:firstStepPreparation" value="189"/>
<property name="buildStageDuration:toolsUpdating" value="1"/>
<property name="BuildTestStatus" value="1"/>
<property name="InspectionStatsE" value="11"/>
<property name="InspectionStatsW" value="6490"/>
<property name="queueWaitReason:Waiting_for_the_build_queue_distribution_process" value="78"/>
<property name="serverSideBuildFinishing" value="701"/>
<property name="SuccessRate" value="1"/>
<property name="TimeSpentInQueue" value="85"/>
</properties>
if I try to collect the data via velocity
#set ($statsValues = $build.statisticValues)
{
#foreach ($mapEntry in $statsValues.entrySet())
#if ( $mapEntry.key == 'InspectionStatsE' || $mapEntry.key == 'InspectionStatsW')
"$mapEntry.key": $mapEntry.value.intValue(),
#end
#end
"statsValues" : "$statsValues",
## or like this
"getStatisticValues": "${build.getStatisticValues()}"
}
but this only responding:
"statsValues": "{buildStageDuration:buildStepRUNNER_29664=346475, buildStageDuration:artifactsPublishing=551, buildStageDuration:buildStepRUNNER_26288=10884, buildStageDuration:buildStepRUNNER_31602=536, serverSideBuildFinishing=48, buildStageDuration:buildStepRUNNER_31601=297, buildStageDuration:buildStepRUNNER_24038=539, buildStageDuration:sourcesUpdate=681, queueWaitReason:Waiting_for_the_build_queue_distribution_process=68, buildStageDuration:buildFinishing=710, buildStageDuration:toolsUpdating=1, buildStageDuration:firstStepPreparation=2, BuildDurationNetTime=358731}",
"getStatisticValues": "{buildStageDuration:buildStepRUNNER_29664=346475, buildStageDuration:artifactsPublishing=551, buildStageDuration:buildStepRUNNER_26288=10884, buildStageDuration:buildStepRUNNER_31602=536, serverSideBuildFinishing=48, buildStageDuration:buildStepRUNNER_31601=297, buildStageDuration:buildStepRUNNER_24038=539, buildStageDuration:sourcesUpdate=681, queueWaitReason:Waiting_for_the_build_queue_distribution_process=68, buildStageDuration:buildFinishing=710, buildStageDuration:toolsUpdating=1, buildStageDuration:firstStepPreparation=2, BuildDurationNetTime=358731}"
Additional test:
#set ($InspectionStatsE_value = $build.getStatisticValue("InspectionStatsE"))
#set ($InspectionStatsW_value = $build.getStatisticValue("InspectionStatsW"))
{
"inpsectionError" : "$InspectionStatsE_value",
"inpsectionWarnings" : "$InspectionStatsW_value"
}
If I check on Preview Template Payload
I see correct payload
{
"inpsectionError": "11",
"inpsectionWarnings": "6490"
}
on endpoint-viewer:
{
"inpsectionError": "$InspectionStatsE_value",
"inpsectionWarnings": "$InspectionStatsW_value"
}
Can you provide some guidance - #https://javadoc.jetbrains.net/teamcity/openapi/current/jetbrains/buildServer/serverSide/SBuild.html#getFullStatistics()
Do I check the wrong commands?
TeamCity Server: TeamCity Enterprise 2023.05.4 (build 129421)
Plugin: 1.2.5
No worries at all. Thx for the support
Any idea?
Are you still running 2023.05.4 and tcWebhooks 1.2.5?
Yes we do - not sure when we will move the next version.
We have on Dev (2024.03) now
Is this the result of an actual build sending to the /webhooks/endpoint.html
? Or was it from a "test" from the template preview?
on endpoint-viewer:
{
"inpsectionError": "$InspectionStatsE_value",
"inpsectionWarnings": "$InspectionStatsW_value"
}
no to /webhooks/endpoint.html
I am wondering if inspections are assembled after the build completes, and perhaps are not available at the time that the webhook runs. None of my test builds appear to have inspections on them in the REST API or in webhook payload. I am not using a jetbrains inspections tool. Mine are just standard maven builds.
Hm could be a possible. For unit tests it is working - I'll check with a small example.
Created an issue here
Thanks