Includes information about Kotlin processes in the Build Scans or in the build output. The plugin is compatible with configuration cache.
Apply the plugin in settings.gradle(.kts) so it observes the whole build, including all projects:
Using the plugins DSL:
plugins {
id("io.github.cdsap.kotlinprocess") version "0.3.0"
}Using the plugins DSL:
plugins {
id "io.github.cdsap.kotlinprocess" version "0.3.0"
}The legacy project-plugin application in build.gradle(.kts) remains supported for
published consumers, but settings-plugin application is preferred for multi-project builds.
plugins {
id("io.github.cdsap.kotlinprocess") version "0.3.0"
}Using legacy plugin application:
buildscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath("io.github.cdsap:infokotlinprocess:0.3.0")
}
}
apply(plugin = "io.github.cdsap.kotlinprocess")plugins {
id "io.github.cdsap.kotlinprocess" version "0.3.0"
}Using legacy plugin application:
buildscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath "io.github.cdsap:infokotlinprocess:0.3.0"
}
}
apply plugin: "io.github.cdsap.kotlinprocess"If you are using Develocity, the information about the Kotlin processes will be included as custom value in the Build Scan:
The field Usage represents the value obtained at the end of the build using jstat on the JVM process.
GBOS file sinks and the GBOS Develocity projection are independent opt-ins. File output
uses infoKotlinProcess.gbos.enabled:
infoKotlinProcess.gbos.enabled=trueor configure it in the settings script:
infoKotlinProcess {
gbos {
enabled.set(true)
}
}The Develocity projection has its own opt-in:
infoKotlinProcess.gbos.develocity.enabled=trueDevelocity is detected automatically. Without the Develocity opt-in, legacy
Kotlin-Process-* custom values remain unchanged. With it, the legacy values
are replaced by the gbos.* projection. The two flags can be enabled independently:
| Develocity | File GBOS | Develocity GBOS | Result |
|---|---|---|---|
| absent | off/on | off/on | no custom values; files follow the File GBOS flag |
| present | off | off | legacy Kotlin-Process-* values |
| present | on | off | legacy values plus GBOS files |
| present | off | on | only gbos.* values |
| present | on | on | only gbos.* values plus GBOS files |
Each Kotlin daemon is reported as a jvm.process entity observation.
The JSON and NDJSON files are written atomically to ${rootDir}/build/info-kotlin-process/gbos.json
and ${rootDir}/build/info-kotlin-process/gbos.ndjson. Each build replaces both files with
the observations generated by that build.
If you are not using Develocity, the information about the Kotlin processes will be included at the end of the build:
> Task :core:ui:compileProdDebugKotlin
┌─────────────────────────────────────────────────────────────────────────────┐
│ Kotlin processes │
├─────────┬──────────┬───────────┬────────────┬───────────────┬───────────────┤
│ PID │ Max │ Usage │ Capacity │ GC Time │ Uptime │
├─────────┼──────────┼───────────┼────────────┼───────────────┼───────────────┤
│ 10865 │ 1.0 Gb │ 0.66 Gb │ 1.0 Gb │ 0.0 minutes │ 0.0 minutes │
├─────────┼──────────┼───────────┼────────────┼───────────────┼───────────────┤
│ 9011 │ 0.5 Gb │ 0.2 Gb │ 0.5 Gb │ 0.0 minutes │ 0.0 minutes │
└─────────┴──────────┴───────────┴────────────┴───────────────┴───────────────┘
BUILD SUCCESSFUL in 35s
- Gradle 7.5
com.gradle:develocity-gradle-plugincom.jakewharton.picnic:picnic
