Add FUS collector for Migration tool

This commit is contained in:
Anton Yalyshev
2020-04-12 16:02:08 +03:00
parent fd9bec81cf
commit c8fe842508
9 changed files with 42 additions and 1 deletions
@@ -23,7 +23,8 @@ enum class FUSEventGroups(groupIdSuffix: String, val events: Set<String> = setOf
Editor("ide.editor"),
Settings("ide.settings"),
GradlePerformance("gradle.performance"),
NewWizard("ide.new.wizard");
NewWizard("ide.new.wizard"),
MigrationTool("ide.migrationTool");
val GROUP_ID: String = "kotlin.$groupIdSuffix"
}
@@ -0,0 +1,21 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.statistics
object MigrationToolFUSCollector {
fun logNotification(oldVersions: Map<String, String>) {
KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Notification.toString(), oldVersions)
}
fun logRun() {
KotlinFUSLogger.log(FUSEventGroups.MigrationTool, Events.Run.toString())
}
enum class Events {
Notification, Run
}
}
+1
View File
@@ -101,6 +101,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
+1
View File
@@ -114,6 +114,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
+1
View File
@@ -114,6 +114,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
+1
View File
@@ -97,6 +97,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<statistics.counterUsagesCollector groupId="kotlin.ide.debugger" version="2"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.j2k" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.editor" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.migrationTool" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.ide.new.wizard" version="1"/>
<statistics.counterUsagesCollector groupId="kotlin.gradle.performance" version="1"/>
<statistics.projectUsagesCollector implementation="org.jetbrains.kotlin.idea.statistics.IDESettingsFUSCollector"/>
@@ -219,6 +219,12 @@ data class MigrationInfo(
val oldLanguageVersion: LanguageVersion,
val newLanguageVersion: LanguageVersion
) {
fun oldVersionsToMap(): Map<String, String> = mapOf(
"old_stdlib_version" to oldStdlibVersion,
"old_api_version" to oldApiVersion.versionString,
"old_language_version" to oldLanguageVersion.versionString
)
companion object {
fun create(
oldStdlibVersion: String,
@@ -204,6 +204,12 @@ data class MigrationInfo(
val oldLanguageVersion: LanguageVersion,
val newLanguageVersion: LanguageVersion
) {
fun oldVersionsToMap(): Map<String, String> = mapOf(
"old_stdlib_version" to oldStdlibVersion,
"old_api_version" to oldApiVersion.versionString,
"old_language_version" to oldLanguageVersion.versionString
)
companion object {
fun create(
oldStdlibVersion: String,
@@ -12,6 +12,7 @@ import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.configuration.MigrationInfo
import org.jetbrains.kotlin.idea.migration.CodeMigrationAction
import org.jetbrains.kotlin.idea.statistics.MigrationToolFUSCollector
internal fun showMigrationNotification(project: Project, migrationInfo: MigrationInfo) {
val detectedChangeMessage = buildString {
@@ -47,6 +48,7 @@ internal fun showMigrationNotification(project: Project, migrationInfo: Migratio
}
}
MigrationToolFUSCollector.logNotification(migrationInfo.oldVersionsToMap())
KOTLIN_MIGRATION_NOTIFICATION_GROUP
.createNotification(
KotlinBundle.message("configuration.migration.title.kotlin.migration"),
@@ -59,6 +61,7 @@ internal fun showMigrationNotification(project: Project, migrationInfo: Migratio
val projectContext = SimpleDataContext.getProjectContext(project)
val action = ActionManager.getInstance().getAction(CodeMigrationAction.ACTION_ID)
Notification.fire(notification, action, projectContext)
MigrationToolFUSCollector.logRun()
notification.expire()
})