diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt index 3e9f69700c8..2411340227f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToBuildScan import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToElasticSearch import org.jetbrains.kotlin.gradle.report.configureReporting import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable +import java.util.* //Support Gradle 6 and less. Move to internal class KotlinGradleBuildServices private constructor( @@ -78,8 +79,8 @@ internal class KotlinGradleBuildServices private constructor( val listeners = project.rootProject.objects.listProperty(ReportStatistics::class.java) .value(listOf(ReportStatisticsToElasticSearch)) project.rootProject.extensions.findByName("buildScan") - ?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) } - KotlinBuildEsStatListener(project.rootProject.name, listeners.get()) + ?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension, UUID.randomUUID().toString(), "kotlin_version")) } + KotlinBuildEsStatListener(project.rootProject.name, listeners.get(), UUID.randomUUID().toString()) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt index 1dbc0cba489..cc181fc002c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults import org.jetbrains.kotlin.gradle.plugin.stat.CompileStatData import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics import org.jetbrains.kotlin.incremental.ChangedFiles +import java.net.InetAddress enum class TaskExecutionState { SKIPPED, @@ -27,9 +28,11 @@ enum class TaskExecutionState { ; } -class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List) : OperationCompletionListener, AutoCloseable, TaskExecutionListener { +class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List, val buildUuid: String) : + OperationCompletionListener, AutoCloseable, TaskExecutionListener { val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value } + val hostName by lazy { InetAddress.getLocalHost().hostName } override fun onFinish(event: FinishEvent?) { if (event is TaskFinishEvent) { @@ -68,7 +71,8 @@ class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: L duration = duration, taskResult = taskResult.name, label = label, statData = statData, projectName = projectName, taskName = taskPath, changes = changes, tags = taskExecutionResult?.taskInfo?.properties?.map { it.name } ?: emptyList(), - nonIncrementalAttributes = taskExecutionResult?.buildMetrics?.buildAttributes?.asMap()?: emptyMap() + nonIncrementalAttributes = taskExecutionResult?.buildMetrics?.buildAttributes?.asMap() ?: emptyMap(), + hostName = hostName, kotlinVersion = "1.6", buildUuid = buildUuid, timeInMillis = System.currentTimeMillis() ) reportStatistics.forEach { it.report(compileStatData) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatistics.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatistics.kt index 3b3379ac912..0bd2a67757c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatistics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatistics.kt @@ -17,6 +17,10 @@ data class CompileStatData( val duration: Long, val tags: List, val changes: List, + val buildUuid: String = "Unset", + val kotlinVersion: String = "0.0.0", + val hostName: String = "Unset", + val timeInMillis: Long, val nonIncrementalAttributes: Map, val statData: Map ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatisticsToBuildScan.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatisticsToBuildScan.kt index 8c0aa07555c..b3d6e13ad15 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatisticsToBuildScan.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/ReportStatisticsToBuildScan.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.gradle.plugin.stat.CompileStatData import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics import org.jetbrains.kotlin.konan.file.File -class ReportStatisticsToBuildScan(private val buildScan: BuildScanExtension) : ReportStatistics { +class ReportStatisticsToBuildScan(private val buildScan: BuildScanExtension, private val buildUuid: String, private val kotlinVersion: String) : ReportStatistics { override fun report(data: CompileStatData) { buildScan.value(data.taskName, readableString(data)) data.tags.forEach { buildScan.tag(it) }