@Override
  public void dispose() {
    SearchSessionPerformanceInfo info = myPerformanceTracker.getPerformanceInfo();
    SESSION_FINISHED.log(myProject, pairs -> {
      FinishedSearchPerformanceInfo firstSearch = info.getFirstSearch();
      if (firstSearch != null) {
        pairs.add(FIRST_TAB_ID.with(firstSearch.getTab()));
        pairs.add(TIME_TO_FIRST_RESULT.with(firstSearch.getTimeToFirstResult()));
      }

      FinishedSearchPerformanceInfo lastSearch = info.getLastSearch();
      if (lastSearch != null) {
        pairs.add(LAST_TAB_ID.with(lastSearch.getTab()));
        pairs.add(TIME_TO_FIRST_RESULT_LAST_QUERY.with(lastSearch.getTimeToFirstResult()));
      }

      pairs.add(TYPED_NAVIGATION_KEYS.with(myNavKeysTyped));
      pairs.add(TYPED_SYMBOL_KEYS.with(mySymbolKeysTyped));
      pairs.add(DURATION_MS.with(info.getDuration()));

      if (myMlService != null) {
        pairs.add(ML_EXPERIMENT_VERSION.with(myMlService.getExperimentVersion()));
        pairs.add(ML_EXPERIMENT_GROUP.with(myMlService.getExperimentGroup()));
      }
    });
  }
@Override
  public void dispose()