public void report(final SortedMap<String, Gauge> gauges, final SortedMap<String, Counter> counters,
                       final SortedMap<String, Histogram> histograms, final SortedMap<String, Meter> meters,
                       final SortedMap<String, Timer> timers) {
        final String dateTime = this.dateFormat.format(new Date(this.clock.getTime()));
        printWithBanner(dateTime, '=');
        this.output.println();

        if (!gauges.isEmpty()) {
            printWithBanner("-- Gauges", '-');
            for (final Map.Entry<String, Gauge> entry : gauges.entrySet()) {
                this.output.println(entry.getKey());
                printGauge(entry.getValue());
            }
            this.output.println();
        }

        if (!counters.isEmpty()) {
            printWithBanner("-- Counters", '-');
            for (final Map.Entry<String, Counter> entry : counters.entrySet()) {
                this.output.println(entry.getKey());
                printCounter(entry);
            }
            this.output.println();
        }

        if (!histograms.isEmpty()) {
            printWithBanner("-- Histograms", '-');
            for (final Map.Entry<String, Histogram> entry : histograms.entrySet()) {
                this.output.println(entry.getKey());
                printHistogram(entry.getValue());
            }
            this.output.println();
        }

        if (!meters.isEmpty()) {
            printWithBanner("-- Meters", '-');
            for (final Map.Entry<String, Meter> entry : meters.entrySet()) {
                this.output.println(entry.getKey());
                printMeter(entry.getValue());
            }
            this.output.println();
        }

        if (!timers.isEmpty()) {
            printWithBanner("-- Timers", '-');
            for (Map.Entry<String, Timer> entry : timers.entrySet()) {
                this.output.println(entry.getKey());
                printTimer(entry.getValue());
            }
            this.output.println();
        }

        this.output.println();
        this.output.flush();
    }
Builds a {@link MetricReporter} with the given properties.

@return a {@link MetricReporter}
jraft-core/src/main/java/com/alipay/sofa/jraft/util/MetricReporter.java