@NotNull
  @Override
  public Set<MetricEvent> getMetrics(@NotNull Project project) {
    final Set<MetricEvent> metricEvents = new HashSet<>();
    RunDashboardManagerImpl runDashboardManager = (RunDashboardManagerImpl)RunDashboardManager.getInstance(project);
    final Set<String> dashboardTypes = new HashSet<>(runDashboardManager.getTypes());
    Set<String> removedDefaultType = new HashSet<>(runDashboardManager.getEnableByDefaultTypes());
    dashboardTypes.removeAll(removedDefaultType); // do not report enable by default types
    removedDefaultType.removeAll(runDashboardManager.getTypes());
    metricEvents.add(RUN_DASHBOARD.metric(!dashboardTypes.isEmpty()));

    if (!dashboardTypes.isEmpty()) {
      List<ConfigurationType> configurationTypes = ConfigurationType.CONFIGURATION_TYPE_EP.getExtensionList();
      for (String dashboardType : dashboardTypes) {
        ConfigurationType configurationType = ContainerUtil.find(configurationTypes, type -> type.getId().equals(dashboardType));
        if (configurationType == null) continue;

        List<EventPair<?>> data = RunConfigurationTypeUsagesCollector.createFeatureUsageData(configurationType, null);
        metricEvents.add(ADDED_RUN_CONFIGURATION.metric(data));
      }
    }
    if (!removedDefaultType.isEmpty()) {
      List<ConfigurationType> configurationTypes = ConfigurationType.CONFIGURATION_TYPE_EP.getExtensionList();
      for (String removedType : removedDefaultType) {
        ConfigurationType configurationType = ContainerUtil.find(configurationTypes, type -> type.getId().equals(removedType));
        if (configurationType == null) continue;

        List<EventPair<?>> data = RunConfigurationTypeUsagesCollector.createFeatureUsageData(configurationType, null);
        metricEvents.add(REMOVED_RUN_CONFIGURATION.metric(data));
      }
    }
    return metricEvents;
  }
@NotNull
  @Override
  public Set<MetricEvent> getMetrics(@NotNull Project project)