@NotNull
  @Override
  public Set<MetricEvent> getMetrics() {
    Set<MetricEvent> set = new HashSet<>();

    DebuggerSettings settings = DebuggerSettings.getInstance();
    DebuggerSettings sDefault = new DebuggerSettings();

    addBoolIfDiffers(set, settings, sDefault, s -> s.DISABLE_JIT, DISABLE_JIT);
    addBoolIfDiffers(set, settings, sDefault, s -> s.SHOW_ALTERNATIVE_SOURCE, SHOW_ALTERNATIVE_SOURCE);
    addBoolIfDiffers(set, settings, sDefault, s -> s.ENABLE_MEMORY_AGENT, ENABLE_MEMORY_AGENT);
    addBoolIfDiffers(set, settings, sDefault, s -> s.ALWAYS_SMART_STEP_INTO, ALWAYS_SMART_STEP_INTO);
    addBoolIfDiffers(set, settings, sDefault, s -> s.SKIP_CONSTRUCTORS, SKIP_CONSTRUCTORS);
    addBoolIfDiffers(set, settings, sDefault, s -> s.SKIP_GETTERS, SKIP_GETTERS);
    addBoolIfDiffers(set, settings, sDefault, s -> s.SKIP_CLASSLOADERS, SKIP_CLASSLOADERS);
    addBoolIfDiffers(set, settings, sDefault, s -> s.COMPILE_BEFORE_HOTSWAP, COMPILE_BEFORE_HOTSWAP);
    addBoolIfDiffers(set, settings, sDefault, s -> s.HOTSWAP_HANG_WARNING_ENABLED, HOTSWAP_HANG_WARNING_ENABLED);
    addBoolIfDiffers(set, settings, sDefault, s -> s.WATCH_RETURN_VALUES, WATCH_RETURN_VALUES);
    addBoolIfDiffers(set, settings, sDefault, s -> s.AUTO_VARIABLES_MODE, AUTO_VARIABLES_MODE);
    addBoolIfDiffers(set, settings, sDefault, s -> s.KILL_PROCESS_IMMEDIATELY, KILL_PROCESS_IMMEDIATELY);
    addBoolIfDiffers(set, settings, sDefault, s -> s.RESUME_ONLY_CURRENT_THREAD, RESUME_ONLY_CURRENT_THREAD);
    addBoolIfDiffers(set, settings, sDefault, s -> s.HIDE_STACK_FRAMES_USING_STEPPING_FILTER, HIDE_STACK_FRAMES_USING_STEPPING_FILTER);
    addBoolIfDiffers(set, settings, sDefault, s -> s.INSTRUMENTING_AGENT, INSTRUMENTING_AGENT);

    return set;
  }
@NotNull
  @Override
  public Set<MetricEvent> getMetrics()