@@ -0,0 +1,1619 @@
+package otcoteam.tahiti.performance.example;%0A%0Aimport otcoteam.tahiti.performance.PerformanceMonitor;%0Aimport otcoteam.tahiti.performance.recorder.CountingRecorder;%0Aimport otcoteam.tahiti.performance.reporter.LogReporter;%0Aimport otcoteam.tahiti.performance.reporter.RollingFileReporter;%0A%0Aimport java.util.concurrent.ScheduledExecutorService;%0Aimport java.util.concurrent.ScheduledThreadPoolExecutor;%0Aimport java.util.concurrent.TimeUnit;%0A%0Apublic class PerMiniuteCountingExample %7B%0A%0A    public static void main(String args%5B%5D) %7B%0A        // %D2%AA%D2%BB, %CB%B4%C7%BD RollingFileReporter, %0A        // %C9%B1%E6%B5%BD%D2%BB%C4%BC. %CA%B1%CA%BD yyyy-MM-dd_HH-mm, %0A        // %CB%BD%C3%BF%D2%BB%C4%BC.%0A        LogReporter reporter = new RollingFileReporter(%22bar-%25d%7Byyyy-MM-dd_HH-mm%7D.log%22);%0A%0A        // %DC%BC%CA%B5%0A        final PerformanceMonitor monitor = new PerformanceMonitor(reporter);%0A%0A        // %D2%AA%CD%B3%C6%B5%D6%B8, %D2%AA%D0%B3%CA%BC. %CB%B4%CA%B9 CountingRecorder, %0A        // %D6%B8. %DA%BC%D6%B8, %CA%B1%DB%BC%CA%B1%DA%B5%C4%BC%C2%BC.%0A        monitor.addRecorder(%22request%22, new CountingRecorder(%22Request times%22));%0A        monitor.addRecorder(%22login%22, new CountingRecorder(%22User login times%22));%0A%0A        // %CA%BC%CA%B1, %CB%B4%C3%BF 1 %CD%B3%D2%BB.%0A        monitor.start(1, TimeUnit.MINUTES);%0A%0A        // %C4%A3%C3%BF 5 %D2%BB request%0A        ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1);%0A        executorService.scheduleAtFixedRate(new Runnable() %7B%0A            public void run() %7B%0A                monitor.record(%22request%22);%0A            %7D%0A        %7D, 5, 5, TimeUnit.SECONDS);%0A%0A        // %C4%A3%C3%BF 10 %D2%BB login%0A        executorService.scheduleAtFixedRate(new Runnable() %7B%0A            public void run() %7B%0A                monitor.record(%22login%22);%0A            %7D%0A        %7D, 10, 10, TimeUnit.SECONDS);%0A    %7D%0A%0A%7D%0A

add example