@ConfigClass
    public static class Config extends ThrottleableTransport.Config {
        @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(),