Change FUS data format for New Project Wizards collector
This commit is contained in:
@@ -17,7 +17,7 @@ enum class FUSEventGroups(groupIdSuffix: String, val events: Set<String> = setOf
|
||||
GradleTarget("gradle.target", gradleTargetEvents),
|
||||
Refactoring("ide.action.refactoring", refactoringEvents),
|
||||
NewFileTemplate("ide.newFileTempl", newFileTemplateEvents),
|
||||
NPWizards("ide.npwizards", NPWizardsEvents),
|
||||
NPWizards("ide.npwizards"),
|
||||
Debug("ide.debugger"),
|
||||
J2K("ide.j2k"),
|
||||
Editor("ide.editor"),
|
||||
@@ -94,28 +94,4 @@ val newFileTemplateEvents = setOf(
|
||||
"Kotlin Enum",
|
||||
"Kotlin Scratch",
|
||||
"Kotlin Script"
|
||||
)
|
||||
val NPWizardsEvents = setOf(
|
||||
"KotlinModuleBuilder: JVM (JVM_1_6)",
|
||||
"KotlinModuleBuilder: JVM (JVM_1_8)",
|
||||
"KotlinModuleBuilder: JVM (JVM_9)",
|
||||
"KotlinModuleBuilder: JVM (JVM_10)",
|
||||
"KotlinModuleBuilder: JVM (JVM_11)",
|
||||
"KotlinModuleBuilder: JVM (JVM_12)",
|
||||
"KotlinModuleBuilder: JS",
|
||||
"KotlinGradleNativeMultiplatformModuleBuilder",
|
||||
"KotlinGradleSharedMultiplatformModuleBuilder",
|
||||
"KotlinGradleWebMultiplatformModuleBuilder",
|
||||
"KotlinGradleMobileMultiplatformModuleBuilder",
|
||||
"KotlinGradleMobileSharedMultiplatformModuleBuilder",
|
||||
"KotlinJavaFrameworkSupportProvider",
|
||||
"GradleKotlinJavaFrameworkSupportProvider",
|
||||
"GradleKotlinJSFrameworkSupportProvider",
|
||||
"GradleKotlinJSBrowserFrameworkSupportProvider",
|
||||
"GradleKotlinJSNodeFrameworkSupportProvider",
|
||||
"GradleKotlinMPPFrameworkSupportProvider",
|
||||
"KotlinDslGradleKotlinJavaFrameworkSupportProvider",
|
||||
"KotlinDslGradleKotlinJSFrameworkSupportProvider",
|
||||
"KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider",
|
||||
"KotlinDslGradleKotlinJSNodeFrameworkSupportProvider"
|
||||
)
|
||||
@@ -17,12 +17,7 @@ open class KotlinFUSLogger {
|
||||
private val logger = FUCounterUsageLogger.getInstance()
|
||||
|
||||
fun log(group: FUSEventGroups, event: String) {
|
||||
if (group.events.contains(event) || group.events.isEmpty()) {
|
||||
logger.logEvent(group.GROUP_ID, event, context)
|
||||
} else {
|
||||
logger.logEvent(group.GROUP_ID, "unknown", context)
|
||||
}
|
||||
|
||||
logger.logEvent(group.GROUP_ID, event, context)
|
||||
}
|
||||
|
||||
fun log(group: FUSEventGroups, event: String, eventData: Map<String, String>) {
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 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 NewProjectWizardsFUSCollector {
|
||||
data class WizardDescription(val name: String, val group: String, val isKotlinDsl: Boolean?)
|
||||
|
||||
private val classToNameMap = mapOf(
|
||||
"KotlinModuleBuilder__JVM_(JVM_1_6)" to "JVM | IDEA",
|
||||
"KotlinModuleBuilder__JS" to "JS | IDEA",
|
||||
"KotlinGradleNativeMultiplatformModuleBuilder" to "Native | Gradle",
|
||||
"KotlinGradleSharedMultiplatformModuleBuilder" to "Multiplatform Library | Gradle",
|
||||
"KotlinGradleWebMultiplatformModuleBuilder" to "JS Client and JVM Server | Gradle",
|
||||
"KotlinGradleMobileMultiplatformModuleBuilder" to "Mobile Android/iOS | Gradle",
|
||||
"KotlinGradleMobileSharedMultiplatformModuleBuilder" to "Mobile Shared Library | Gradle",
|
||||
"KotlinJavaFrameworkSupportProvider" to "Kotlin/JVM",
|
||||
"GradleKotlinJavaFrameworkSupportProvider" to "Kotlin/JVM",
|
||||
"GradleKotlinJSFrameworkSupportProvider" to "Kotlin/JS",
|
||||
"GradleKotlinJSBrowserFrameworkSupportProvider" to "Kotlin/JS for browser",
|
||||
"GradleKotlinJSNodeFrameworkSupportProvider" to "Kotlin/JS for Node.js",
|
||||
"GradleKotlinMPPFrameworkSupportProvider" to "Kotlin/Multiplatform_aggregated",
|
||||
"GradleKotlinMPPSourceSetsFrameworkSupportProvider" to "Kotlin/Multiplatform",
|
||||
"KotlinDslGradleKotlinJavaFrameworkSupportProvider" to "Kotlin/JVM",
|
||||
"KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider" to "Kotlin/JS for browser",
|
||||
"KotlinDslGradleKotlinJSNodeFrameworkSupportProvider" to "Kotlin/JS for Node.js",
|
||||
"KotlinDslGradleKotlinMPPFrameworkSupportProvider" to "Kotlin/Multiplatform"
|
||||
)
|
||||
|
||||
private fun parseWizardClass(className: String): WizardDescription {
|
||||
val wizardName = classToNameMap[className] ?: "unknown"
|
||||
|
||||
val wizardGroup = if (wizardName == "unknown") "unknown"
|
||||
else if (className.startsWith("KotlinJava")) "Java"
|
||||
else if (className.startsWith("Gradle") || className.startsWith("KotlinDslGradle")) "Gradle"
|
||||
else "Kotlin"
|
||||
|
||||
val isBasedOnKotlinDSL = if (wizardName != "unknown") className.startsWith("KotlinDsl")
|
||||
else null
|
||||
|
||||
return WizardDescription(wizardName, wizardGroup, isBasedOnKotlinDSL)
|
||||
}
|
||||
|
||||
fun log(wizardClassName: String) {
|
||||
val wizardDescription = parseWizardClass(wizardClassName)
|
||||
|
||||
val contextData = mapOf(
|
||||
"name" to wizardDescription.name,
|
||||
"group" to wizardDescription.group,
|
||||
"isKotlinDsl" to wizardDescription.isKotlinDsl.toString()
|
||||
)
|
||||
|
||||
KotlinFUSLogger.log(FUSEventGroups.NPWizards, "Finished", contextData)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user