Add build uuid, time and hostname fields to ES stat
This commit is contained in:
+3
-2
@@ -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<ReportStatistics>(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())
|
||||
}
|
||||
|
||||
|
||||
|
||||
+6
-2
@@ -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<ReportStatistics>) : OperationCompletionListener, AutoCloseable, TaskExecutionListener {
|
||||
class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List<ReportStatistics>, 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) }
|
||||
}
|
||||
|
||||
+4
@@ -17,6 +17,10 @@ data class CompileStatData(
|
||||
val duration: Long,
|
||||
val tags: List<String>,
|
||||
val changes: List<String>,
|
||||
val buildUuid: String = "Unset",
|
||||
val kotlinVersion: String = "0.0.0",
|
||||
val hostName: String = "Unset",
|
||||
val timeInMillis: Long,
|
||||
val nonIncrementalAttributes: Map<BuildAttribute, Int>,
|
||||
val statData: Map<BuildTime, Long>
|
||||
)
|
||||
|
||||
+1
-1
@@ -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) }
|
||||
|
||||
Reference in New Issue
Block a user