/** * Create a new instance for the given {@link SignalFxReporter} reporting with the given frequency. The default * metric dimension configurator will be used to set up the endpoint timer dimensions: * {@link #DEFAULT_REQUEST_LATENCY_TIMER_DIMENSION_CONFIGURATOR}. * * <p>IMPORTANT NOTE: The given {@code reportingFrequency} must match whatever you used when starting the given * {@link SignalFxReporter} (see {@link SignalFxReporter#start(long, TimeUnit)}), or else the data reported to * SignalFx may not make sense. * * @param signalFxReporter The {@link SignalFxReporter} to use for metric metadata. Cannot be null. * @param reportingFrequency The frequency that the given {@code signalFxReporter} reports its data to SignalFx. * Cannot be null, and the individual values inside the pair cannot be null. * @param metricRegistry The {@link MetricRegistry} being used for the application that the endpoint timers should * be registered under. Cannot be null. */ public SignalFxEndpointMetricsHandler(SignalFxReporter signalFxReporter, Pair<Long, TimeUnit> reportingFrequency, MetricRegistry metricRegistry) { this(extractMetricMetadataFromSignalFxReporter(signalFxReporter), metricRegistry, generateDefaultTimerMetricBuilder(reportingFrequency), null); }