diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java
index 1959d21c4801f76ba63532e2c1bf50e7f2817113..ec51a5ee03c5db9f39a0f6900d83eea2b54b7d6c 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenImportingSettings.java
@@ -37,6 +37,8 @@ public class MavenImportingSettings implements Cloneable {
     "generate-test-resources",
     "process-test-resources"};
   public static final String UPDATE_FOLDERS_DEFAULT_PHASE = PROCESS_RESOURCES_PHASE;
+  public static final String DEFAULT_DEPENDENCY_TYPES =
+    "jar, test-jar, maven-plugin, ejb, ejb-client, jboss-har, jboss-sar, war, ear, bundle";
 
   @NotNull private String dedicatedModuleDir = "";
   private boolean lookForNested = false;
@@ -56,7 +58,7 @@ public class MavenImportingSettings implements Cloneable {
 
   private GeneratedSourcesFolder generatedSourcesFolder = GeneratedSourcesFolder.AUTODETECT;
 
-  private String dependencyTypes = "jar, test-jar, maven-plugin, ejb, ejb-client, jboss-har, jboss-sar, war, ear, bundle";
+  private String dependencyTypes = DEFAULT_DEPENDENCY_TYPES;
   private Set<String> myDependencyTypesAsSet;
 
   @NotNull private String vmOptionsForImporter = "";
diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt
index bc11bfdc92c03cf1deb8727b0d4c91692892ad69..3bfebac2b4d431831b197a69973aa296230bd560 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/statistics/MavenSettingsCollector.kt
@@ -5,9 +5,12 @@ import com.intellij.internal.statistic.beans.UsageDescriptor
 import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector
 import com.intellij.internal.statistic.utils.getBooleanUsage
 import com.intellij.internal.statistic.utils.getEnumUsage
+import com.intellij.openapi.project.ExternalStorageConfigurationManager
 import com.intellij.openapi.project.Project
 import org.jetbrains.idea.maven.execution.MavenExternalParameters.resolveMavenHome
 import org.jetbrains.idea.maven.execution.MavenRunner
+import org.jetbrains.idea.maven.execution.MavenRunnerSettings
+import org.jetbrains.idea.maven.project.MavenImportingSettings
 import org.jetbrains.idea.maven.project.MavenProjectsManager
 import org.jetbrains.idea.maven.utils.MavenUtil
 
@@ -19,6 +22,11 @@ class MavenSettingsCollector : ProjectUsagesCollector() {
     if (!manager.isMavenizedProject) return emptySet()
 
     val usages = mutableSetOf<UsageDescriptor>()
+
+    // to have a total users base line to calculate pertentages of settings
+    usages.add(getBooleanUsage("hasMavenProject", true))
+
+    // Main page
     val generalSettings = manager.generalSettings
     usages.add(getEnumUsage("checksumPolicy", generalSettings.checksumPolicy))
     usages.add(getEnumUsage("failureBehavior", generalSettings.failureBehavior))
@@ -37,25 +45,59 @@ class MavenSettingsCollector : ProjectUsagesCollector() {
     catch (ignore: Exception) {
       // ignore invalid maven home configuration
     }
+    usages.add(getBooleanUsage("localRepository", generalSettings.localRepository.isNotBlank()))
+    usages.add(getBooleanUsage("userSettingsFile", generalSettings.userSettingsFile.isNotBlank()))
 
+    // Importing page
     val importingSettings = manager.importingSettings
-    usages.add(getEnumUsage("generatedSourcesFolder", importingSettings.generatedSourcesFolder))
-    usages.add(getBooleanUsage("createModuleGroups", importingSettings.isCreateModuleGroups))
-    usages.add(getBooleanUsage("createModulesForAggregators", importingSettings.isCreateModulesForAggregators))
-    usages.add(getBooleanUsage("downloadDocsAutomatically", importingSettings.isDownloadDocsAutomatically))
-    usages.add(getBooleanUsage("downloadSourcesAutomatically", importingSettings.isDownloadSourcesAutomatically))
-    usages.add(getBooleanUsage("excludeTargetFolder", importingSettings.isExcludeTargetFolder))
+    usages.add(getBooleanUsage("lookForNested", importingSettings.isLookForNested))
+
+    usages.add(getBooleanUsage("dedicatedModuleDir", importingSettings.dedicatedModuleDir.isNotBlank()))
+    usages.add(getBooleanUsage("storeProjectFilesExternally", ExternalStorageConfigurationManager.getInstance(project).isEnabled))
     usages.add(getBooleanUsage("importAutomatically", importingSettings.isImportAutomatically))
+    usages.add(getBooleanUsage("autoDetectCompiler", importingSettings.isAutoDetectCompiler))
+    usages.add(getBooleanUsage("createModulesForAggregators", importingSettings.isCreateModulesForAggregators))
+    usages.add(getBooleanUsage("createModuleGroups", importingSettings.isCreateModuleGroups))
     usages.add(getBooleanUsage("keepSourceFolders", importingSettings.isKeepSourceFolders))
-    usages.add(getBooleanUsage("lookForNested", importingSettings.isLookForNested))
+    usages.add(getBooleanUsage("excludeTargetFolder", importingSettings.isExcludeTargetFolder))
     usages.add(getBooleanUsage("useMavenOutput", importingSettings.isUseMavenOutput))
+
+    usages.add(getEnumUsage("generatedSourcesFolder", importingSettings.generatedSourcesFolder))
     usages.add(UsageDescriptor("updateFoldersOnImportPhase." + importingSettings.updateFoldersOnImportPhase))
 
+    usages.add(getBooleanUsage("downloadDocsAutomatically", importingSettings.isDownloadDocsAutomatically))
+    usages.add(getBooleanUsage("downloadSourcesAutomatically", importingSettings.isDownloadSourcesAutomatically))
+    usages.add(getBooleanUsage("customDependencyTypes",
+                               MavenImportingSettings.DEFAULT_DEPENDENCY_TYPES != importingSettings.dependencyTypes))
+
+    usages.add(getJREUsage("jdkForImporter", importingSettings.jdkForImporter))
+    usages.add(getBooleanUsage("hasVmOptionsForImporter", importingSettings.vmOptionsForImporter.isNotBlank()))
+
+    // Ignored Files page
+    usages.add(getBooleanUsage("hasIgnoredFiles", manager.ignoredFilesPaths.isNotEmpty()))
+    usages.add(getBooleanUsage("hasIgnoredPatterns", manager.ignoredFilesPatterns.isNotEmpty()))
+
+    // Runner page
     val runnerSettings = MavenRunner.getInstance(project).settings
     usages.add(getBooleanUsage("delegateBuildRun", runnerSettings.isDelegateBuildToMaven));
-    usages.add(getBooleanUsage("passParentEnv", runnerSettings.isPassParentEnv));
     usages.add(getBooleanUsage("runMavenInBackground", runnerSettings.isRunMavenInBackground));
+    usages.add(getJREUsage("runnerJreName", runnerSettings.jreName));
+    usages.add(getBooleanUsage("hasRunnerVmOptions", runnerSettings.vmOptions.isNotBlank()));
+    usages.add(getBooleanUsage("hasRunnerEnvVariables", !runnerSettings.environmentProperties.isNullOrEmpty()));
+    usages.add(getBooleanUsage("passParentEnv", runnerSettings.isPassParentEnv));
     usages.add(getBooleanUsage("skipTests", runnerSettings.isSkipTests));
+    usages.add(getBooleanUsage("hasRunnerMavenProperties", !runnerSettings.mavenProperties.isNullOrEmpty()));
     return usages
   }
+
+  private fun getJREUsage(key: String, jreName: String?): UsageDescriptor {
+    val anonymizedName = when {
+      jreName.isNullOrBlank() -> "empty"
+      jreName in listOf(MavenRunnerSettings.USE_INTERNAL_JAVA,
+                        MavenRunnerSettings.USE_PROJECT_JDK,
+                        MavenRunnerSettings.USE_JAVA_HOME) -> jreName
+      else -> "custom"
+    }
+    return UsageDescriptor("$key.$anonymizedName", 1)
+  }
 }