Remove CIServerBuildInfo

It's not used anywhere and requires TC/CI integration

GitOrigin-RevId: 59f27fa3b2a6903d25460e1490b2fb8bf09819b0
This commit is contained in:
Maxim.Kolmakov
2024-09-30 09:35:39 +02:00
committed by intellij-monorepo-bot
parent 69b39c923a
commit 6f0c674d64
5 changed files with 7 additions and 104 deletions

View File

@@ -8,10 +8,7 @@ import com.intellij.cce.util.isUnderTeamCity
import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.util.BuildNumber import com.intellij.openapi.util.BuildNumber
import com.intellij.tools.ide.metrics.collector.publishing.ApplicationMetricDto import com.intellij.tools.ide.metrics.collector.publishing.ApplicationMetricDto
import com.intellij.tools.ide.metrics.collector.publishing.CIServerBuildInfo
import java.nio.file.Path import java.nio.file.Path
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import kotlin.io.path.absolutePathString import kotlin.io.path.absolutePathString
import kotlin.io.path.readText import kotlin.io.path.readText
import kotlin.io.path.writeText import kotlin.io.path.writeText
@@ -30,19 +27,16 @@ class IntellijPerfJsonReportGenerator(
val reportFile = dir.resolve(metricsInfoName) val reportFile = dir.resolve(metricsInfoName)
LOG.info("generateGlobalReport. save to ${reportFile.absolutePathString()}") LOG.info("generateGlobalReport. save to ${reportFile.absolutePathString()}")
try { try {
val buildInfo = helper.createBuildInfo()
val perfMetrics = globalMetrics.map { it.toPerfMetric() } val perfMetrics = globalMetrics.map { it.toPerfMetric() }
val metricsDto = AiPerformanceMetricsDto val metricsDto = AiPerformanceMetricsDto
.create(projectName = "#feature#_#lang#_#model#_#os#", //#**# will be used in TC builds, pls don't change it .create(projectName = "#feature#_#lang#_#model#_#os#", //#**# will be used in TC builds, pls don't change it
projectURL = "", projectURL = "",
projectDescription = "", projectDescription = "",
methodName = "", methodName = "",
buildNumber = BuildNumber.currentVersion(), buildNumber = BuildNumber.currentVersion(),
metrics = perfMetrics, metrics = perfMetrics
buildInfo = buildInfo) )
reportFile.writeText(gson.toJson(metricsDto)) reportFile.writeText(gson.toJson(metricsDto))
helper.afterReport(reportFile) helper.afterReport(reportFile)
@@ -74,24 +68,10 @@ private fun MetricInfo.toPerfMetric(namePrefix: String = ""): ApplicationMetricD
private interface ReportHelper { private interface ReportHelper {
fun createBuildInfo(): CIServerBuildInfo
fun afterReport(source: Path) fun afterReport(source: Path)
} }
private class ReportHelperLocalMock : ReportHelper { private class ReportHelperLocalMock : ReportHelper {
override fun createBuildInfo(): CIServerBuildInfo {
return CIServerBuildInfo(
buildId = "buildId",
typeId = "typeId",
configName = "configName",
buildNumber = "buildNumber",
branchName = "branchName",
url = "url",
isPersonal = false,
timestamp = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)
}
override fun afterReport(source: Path) { override fun afterReport(source: Path) {
} }
} }
@@ -101,19 +81,6 @@ private class TeamCityReportHelper : ReportHelper {
private val LOG = logger<TeamCityReportHelper>() private val LOG = logger<TeamCityReportHelper>()
} }
override fun createBuildInfo(): CIServerBuildInfo {
return CIServerBuildInfo(
buildId = "#teamcity.build.id#",
typeId = "#teamcity.buildType.id#",
configName = "#teamcity.buildConfName#",
buildNumber = "#teamcity.buildNumber#",
branchName = "#teamcity.build.branch#",
url = "#teamcity.buildUrl#",
isPersonal = false,
timestamp = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)
}
override fun afterReport(source: Path) { override fun afterReport(source: Path) {
LOG.info("publishTeamCityArtifacts. source=${source.absolutePathString()}") LOG.info("publishTeamCityArtifacts. source=${source.absolutePathString()}")
LOG.info("report content: ${source.readText()}") LOG.info("report content: ${source.readText()}")

View File

@@ -10,7 +10,6 @@ import com.intellij.teamcity.TeamCityClient
import com.intellij.testFramework.UsefulTestCase import com.intellij.testFramework.UsefulTestCase
import com.intellij.tools.ide.metrics.collector.MetricsCollector import com.intellij.tools.ide.metrics.collector.MetricsCollector
import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
import com.intellij.tools.ide.metrics.collector.publishing.CIServerBuildInfo
import com.intellij.tools.ide.metrics.collector.publishing.PerformanceMetricsDto import com.intellij.tools.ide.metrics.collector.publishing.PerformanceMetricsDto
import com.intellij.tools.ide.util.common.withRetry import com.intellij.tools.ide.util.common.withRetry
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -81,27 +80,13 @@ class IJPerfBenchmarksMetricsPublisher {
teamCityClient.publishTeamCityArtifacts(source = PathManager.getLogDir(), artifactPath = uniqueTestIdentifier) teamCityClient.publishTeamCityArtifacts(source = PathManager.getLogDir(), artifactPath = uniqueTestIdentifier)
teamCityClient.publishTeamCityArtifacts(source = getIdeTestLogFile(), artifactPath = uniqueTestIdentifier) teamCityClient.publishTeamCityArtifacts(source = getIdeTestLogFile(), artifactPath = uniqueTestIdentifier)
val buildInfo = CIServerBuildInfo(
buildId = teamCityClient.buildId,
typeId = teamCityClient.buildTypeId,
configName = teamCityClient.configurationName ?: "",
buildNumber = teamCityClient.buildNumber,
branchName = teamCityClient.branchName,
url = String.format("%s/viewLog.html?buildId=%s&buildTypeId=%s", teamCityClient.baseUri,
teamCityClient.buildId,
teamCityClient.buildTypeId),
isPersonal = teamCityClient.isPersonalBuild,
timestamp = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)
return PerformanceMetricsDto.create( return PerformanceMetricsDto.create(
projectName = uniqueTestIdentifier, projectName = uniqueTestIdentifier,
projectURL = "", projectURL = "",
projectDescription = "", projectDescription = "",
methodName = uniqueTestIdentifier, methodName = uniqueTestIdentifier,
buildNumber = BuildNumber.currentVersion(), buildNumber = BuildNumber.currentVersion(),
metrics = metrics, metrics = metrics
buildInfo = buildInfo
) )
} }

View File

@@ -5,7 +5,6 @@ import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.intellij.openapi.application.PathManager import com.intellij.openapi.application.PathManager
import com.intellij.openapi.util.BuildNumber import com.intellij.openapi.util.BuildNumber
import com.intellij.testFramework.BenchmarkTestInfo import com.intellij.testFramework.BenchmarkTestInfo
import com.intellij.tools.ide.metrics.collector.publishing.CIServerBuildInfo
import com.intellij.tools.ide.metrics.collector.publishing.PerformanceMetricsDto import com.intellij.tools.ide.metrics.collector.publishing.PerformanceMetricsDto
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
@@ -82,25 +81,13 @@ class SpanExtractionFromUnitPerfTest {
val reportFile = Files.createTempFile("temp", ".json") val reportFile = Files.createTempFile("temp", ".json")
val buildInfo = CIServerBuildInfo(
"8727723",
"someBuildType",
"configurationName",
"233.5353.98",
"branch_name",
String.format("%s/viewLog.html?buildId=%s&buildTypeId=%s", "base_uri", "8727723", "someBuildType"),
false,
ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)
val metricsDto = PerformanceMetricsDto.create( val metricsDto = PerformanceMetricsDto.create(
mainMetricName, mainMetricName,
"", "",
"", "",
testInfo.displayName, testInfo.displayName,
BuildNumber.fromString("233.SNAPSHOT")!!, BuildNumber.fromString("233.SNAPSHOT")!!,
extractedMetrics, extractedMetrics
buildInfo
) )
// just invoke serialization to validate that it completes without exceptions // just invoke serialization to validate that it completes without exceptions
@@ -135,25 +122,13 @@ class SpanExtractionFromUnitPerfTest {
val reportFile = Files.createTempFile("temp", ".json") val reportFile = Files.createTempFile("temp", ".json")
val buildInfo = CIServerBuildInfo(
"8727723",
"someBuildType",
"configurationName",
"233.5353.98",
"branch_name",
String.format("%s/viewLog.html?buildId=%s&buildTypeId=%s", "base_uri", "8727723", "someBuildType"),
false,
ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)
val metricsDto = PerformanceMetricsDto.create( val metricsDto = PerformanceMetricsDto.create(
mainMetricName, mainMetricName,
"", "",
"", "",
testInfo.displayName, testInfo.displayName,
BuildNumber.fromString("233.SNAPSHOT")!!, BuildNumber.fromString("233.SNAPSHOT")!!,
extractedMetrics, extractedMetrics
buildInfo
) )
// just invoke serialization to validate that it completes without exceptions // just invoke serialization to validate that it completes without exceptions

View File

@@ -1,19 +0,0 @@
package com.intellij.tools.ide.metrics.collector.publishing
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonInclude
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
data class CIServerBuildInfo(
val buildId: String,
val typeId: String,
val configName: String,
val buildNumber: String,
val branchName: String,
val url: String,
val isPersonal: Boolean,
val timestamp: String = ZonedDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)
)

View File

@@ -3,7 +3,6 @@ package com.intellij.tools.ide.metrics.collector.publishing
import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.intellij.openapi.util.BuildNumber import com.intellij.openapi.util.BuildNumber
import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.SystemInfo
import com.intellij.tools.ide.metrics.collector.metrics.MetricGroup
import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
import com.intellij.tools.ide.metrics.collector.metrics.toJson import com.intellij.tools.ide.metrics.collector.metrics.toJson
import com.intellij.util.system.OS import com.intellij.util.system.OS
@@ -32,7 +31,6 @@ data class IJPerfMetricsDto<T: Number>(
val productCode: String, val productCode: String,
val methodName: String, val methodName: String,
val metrics: List<ApplicationMetricDto<T>>, val metrics: List<ApplicationMetricDto<T>>,
val tcInfo: CIServerBuildInfo
) { ) {
companion object { companion object {
private const val VERSION = "1" private const val VERSION = "1"
@@ -45,9 +43,8 @@ data class IJPerfMetricsDto<T: Number>(
methodName: String, methodName: String,
buildNumber: BuildNumber, buildNumber: BuildNumber,
metrics: Collection<PerformanceMetrics.Metric>, metrics: Collection<PerformanceMetrics.Metric>,
buildInfo: CIServerBuildInfo, generated: String = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME),
generated: String = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) ) = create(projectName, projectURL, projectDescription, methodName, buildNumber, metrics.map { it.toJson() }, generated)
) = create(projectName, projectURL, projectDescription, methodName, buildNumber, metrics.map { it.toJson() }, buildInfo, generated)
@JvmStatic @JvmStatic
fun <T: Number> create( fun <T: Number> create(
@@ -57,7 +54,6 @@ data class IJPerfMetricsDto<T: Number>(
methodName: String, methodName: String,
buildNumber: BuildNumber, buildNumber: BuildNumber,
metrics: List<ApplicationMetricDto<T>>, metrics: List<ApplicationMetricDto<T>>,
buildInfo: CIServerBuildInfo,
generated: String = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) generated: String = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)
) = IJPerfMetricsDto( ) = IJPerfMetricsDto(
version = VERSION, version = VERSION,
@@ -74,7 +70,6 @@ data class IJPerfMetricsDto<T: Number>(
productCode = buildNumber.productCode, productCode = buildNumber.productCode,
metrics = metrics, metrics = metrics,
methodName = methodName, methodName = methodName,
tcInfo = buildInfo,
projectDescription = projectDescription projectDescription = projectDescription
) )
} }