@Override
    public ConfigurationRequest getRequestedConfiguration() {
      final ConfigurationRequest r = super.getRequestedConfiguration();

      r.addField(
          new TextField(
              CK_SOURCE,
              "Source",
              "metrics",
              "Define a name of the source. For example 'metrics'.",
              ConfigurationField.Optional.NOT_OPTIONAL));

      r.addField(
          new NumberField(
              CK_REPORT_INTERVAL,
              "Report interval",
              10,
              "Time between each report. Select a time unit in the corresponding dropdown.",
              ConfigurationField.Optional.NOT_OPTIONAL,
              NumberField.Attribute.ONLY_POSITIVE));

      r.addField(
          new DropdownField(
              CK_REPORT_UNIT,
              "Report interval unit",
              TimeUnit.SECONDS.toString(),
              DropdownField.ValueTemplates.timeUnits(),
              ConfigurationField.Optional.NOT_OPTIONAL));

      r.addField(
          new DropdownField(
              CK_DURATION_UNIT,
              "Time unit of measured durations",
              TimeUnit.MILLISECONDS.toString(),
              DropdownField.ValueTemplates.timeUnits(),
              "The time unit that will be used in for example timer values. Think of: took 15ms",
              ConfigurationField.Optional.NOT_OPTIONAL));

      r.addField(
          new DropdownField(
              CK_RATE_UNIT,
              "Time unit of measured rates",
              TimeUnit.SECONDS.toString(),
              DropdownField.ValueTemplates.timeUnits(),
              "The time unit that will be used in for example meter values. Think of: 7 per second",
              ConfigurationField.Optional.NOT_OPTIONAL));

      return r;
    }