@@ -0,0 +1,2284 @@
+package otcoteam.tahiti.performance.example;%0A%0Aimport otcoteam.tahiti.performance.PerformanceMonitor;%0Aimport otcoteam.tahiti.performance.recorder.QuantizedRecorder;%0Aimport otcoteam.tahiti.performance.reporter.LogReporter;%0Aimport otcoteam.tahiti.performance.reporter.RollingFileReporter;%0A%0Aimport java.util.EnumSet;%0Aimport java.util.Random;%0Aimport java.util.concurrent.ScheduledExecutorService;%0Aimport java.util.concurrent.ScheduledThreadPoolExecutor;%0Aimport java.util.concurrent.TimeUnit;%0A%0Apublic class PerformanceQuantizedExample %7B%0A    public static void main(String%5B%5D args) %7B%0A        LogReporter reporter = new RollingFileReporter(%22foo-%25d%7Byyyy-MM-dd_HH-mm%7D.log%22);%0A%0A        final PerformanceMonitor monitor = new PerformanceMonitor(reporter);%0A%0A        EnumSet%3CQuantizedRecorder.OutputField%3E requestQuantizedFields =%0A                EnumSet.of(%0A                        QuantizedRecorder.OutputField.SUM,%0A                        QuantizedRecorder.OutputField.MAX,%0A                        QuantizedRecorder.OutputField.MIN,%0A                        QuantizedRecorder.OutputField.AVERAGE%0A                        );%0A        EnumSet%3CQuantizedRecorder.OutputField%3E loginQuantizedFields =%0A                EnumSet.of(%0A                        QuantizedRecorder.OutputField.MAX,%0A                        QuantizedRecorder.OutputField.MIN%0A                );%0A%0A        monitor.addRecorder(%22request%22, new QuantizedRecorder(%22Request quantize%22,requestQuantizedFields));%0A        monitor.addRecorder(%22login%22, new QuantizedRecorder(%22Login quantize%22, loginQuantizedFields));%0A%0A        monitor.start(1, TimeUnit.MINUTES);%0A%0A        ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1);%0A        final Random r = new Random();%0A        executorService.scheduleAtFixedRate(%0A                new Runnable() %7B%0A                    public void run() %7B%0A                        monitor.record(%22request%22, r.nextDouble());%0A                    %7D%0A                %7D,%0A                5, 5, TimeUnit.SECONDS%0A        );%0A        executorService.scheduleAtFixedRate(%0A                new Runnable() %7B%0A                    public void run() %7B%0A                        monitor.record(%22login%22, r.nextDouble());%0A                    %7D%0A                %7D,%0A                10, 10, TimeUnit.SECONDS%0A        );%0A%0A    %7D%0A%7D%0A

add example