@Override
  public MetricsConfiguration.Builder toDomainObject() {
    MetricsConfiguration.Builder builder = MetricsConfiguration.builder();
    builder
        .timersEnabled(unstableOptions.timersEnabled)
        .idleTimeout(unstableOptions.idleTimeout)
        .enabled(getMetricsEnabled())
        .host(getMetricsHost())
        .port(getMetricsPort())
        .protocol(getMetricsProtocol())
        .metricCategories(getMetricCategories())
        .pushEnabled(getMetricsPushEnabled())
        .pushHost(getMetricsPushHost())
        .pushPort(getMetricsPushPort())
        .pushInterval(getMetricsPushInterval())
        .prometheusJob(getMetricsPrometheusJob());
    return builder;
  }
Returns a MetricsConfiguration.Builder because fields are often overridden from other domains,
like using P2P settings as defaults.

@return a newly created {@link MetricsOptions} with default values
app/src/main/java/org/hyperledger/besu/cli/options/MetricsOptions.java