private static MetricObserver rateTransform(MetricObserver observer) { final long heartbeat = 2 * Config.getPollInterval(); return new CounterToRateMetricTransform(observer, heartbeat, TimeUnit.SECONDS); }
public static void startPoller(){ scheduler.start(); final int heartbeatInterval = 1200; final File metricsDir; try { metricsDir = File.createTempFile("zuul-servo-metrics-", ""); metricsDir.delete(); metricsDir.mkdir(); } catch (IOException e) { throw new RuntimeException(e); } LOG.debug("created metrics dir " + metricsDir.getAbsolutePath()); MetricObserver transform = new CounterToRateMetricTransform( new FileMetricObserver("ZuulMetrics", metricsDir), heartbeatInterval, TimeUnit.SECONDS); PollRunnable task = new PollRunnable( new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, transform); final int samplingInterval = 10; scheduler.addPoller(task, samplingInterval, TimeUnit.SECONDS); }
public static void startPoller(){ scheduler.start(); final int heartbeatInterval = 1200; final File metricsDir; try { metricsDir = File.createTempFile("zuul-servo-metrics-", ""); metricsDir.delete(); metricsDir.mkdir(); } catch (IOException e) { throw new RuntimeException(e); } LOG.debug("created metrics dir " + metricsDir.getAbsolutePath()); MetricObserver transform = new CounterToRateMetricTransform( new FileMetricObserver("ZuulMetrics", metricsDir), heartbeatInterval, TimeUnit.SECONDS); PollRunnable task = new PollRunnable( new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, transform); final int samplingInterval = 10; scheduler.addPoller(task, samplingInterval, TimeUnit.SECONDS); }
@Test public void testResultingType() throws Exception { MemoryMetricObserver mmo = new MemoryMetricObserver("m", 1); MetricObserver transform = new CounterToRateMetricTransform(mmo, 120, TimeUnit.SECONDS); Map<String, String> metrics; // Make time look like the future to avoid expirations long baseTime = System.currentTimeMillis() + 100000L; // First sample transform.update(mkList(baseTime + 0, 0)); metrics = mkTypeMap(mmo.getObservations()); assertEquals(metrics.size(), 2); assertEquals(metrics.get("m3"), null); assertEquals(metrics.get("m2"), "GAUGE"); assertEquals(metrics.get("m1"), null); transform.update(mkList(baseTime + 5000, 5)); metrics = mkTypeMap(mmo.getObservations()); assertEquals(metrics.size(), 3); assertEquals(metrics.get("m3"), "RATE"); assertEquals(metrics.get("m2"), "GAUGE"); assertEquals(metrics.get("m1"), null); }
@Test public void testFirstSample() throws Exception { MemoryMetricObserver mmo = new MemoryMetricObserver("m", 1); MetricObserver transform = new CounterToRateMetricTransform(mmo, 120, 5, TimeUnit.SECONDS); Map<String, Double> metrics; // Make time look like the future to avoid expirations long baseTime = System.currentTimeMillis() + 100000L; // First sample transform.update(mkList(baseTime + 0, 10)); metrics = mkMap(mmo.getObservations()); assertEquals(metrics.size(), 3); assertEquals(metrics.get("m3"), 2.0, 0.00001); // Delta of 5 in 5 seconds transform.update(mkList(baseTime + 5000, 15)); metrics = mkMap(mmo.getObservations()); assertEquals(metrics.size(), 3); assertEquals(metrics.get("m3"), 1.0, 0.00001); } }
@Test public void testSimpleRate() throws Exception { MemoryMetricObserver mmo = new MemoryMetricObserver("m", 1); MetricObserver transform = new CounterToRateMetricTransform(mmo, 120, TimeUnit.SECONDS); Map<String, Double> metrics;
120, TimeUnit.SECONDS, manualClock); CounterToRateMetricTransform toRateMetricTransform = new CounterToRateMetricTransform(normalizationTransform, 60, 120, TimeUnit.SECONDS, manualClock);
120, TimeUnit.SECONDS, manualClock); CounterToRateMetricTransform toRateMetricTransform = new CounterToRateMetricTransform(normalizationTransform, 60, 120, TimeUnit.SECONDS, manualClock);
MetricObserver createCounterToRateMetricTransform( MetricObserver observer, long heartbeat, TimeUnit timeUnit) { return new CounterToRateMetricTransform(observer, heartbeat, timeUnit); }
protected MetricObserver createRateTransformObserver(final MetricObserver observer, final long pollInterval, final TimeUnit timeUnit) { return new CounterToRateMetricTransform(observer, getHeartBeatPeriodForInterval(pollInterval), timeUnit); }
public static void startPoller(){ scheduler.start(); final int heartbeatInterval = 1200; final File metricsDir; try { metricsDir = File.createTempFile("zuul-servo-metrics-", ""); metricsDir.delete(); metricsDir.mkdir(); } catch (IOException e) { throw new RuntimeException(e); } LOG.debug("created metrics dir " + metricsDir.getAbsolutePath()); MetricObserver transform = new CounterToRateMetricTransform( new FileMetricObserver("ZuulMetrics", metricsDir), heartbeatInterval, TimeUnit.SECONDS); PollRunnable task = new PollRunnable( new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, transform); final int samplingInterval = 10; scheduler.addPoller(task, samplingInterval, TimeUnit.SECONDS); }
public static void startPoller(){ scheduler.start(); final int heartbeatInterval = 1200; final File metricsDir; try { metricsDir = File.createTempFile("zuul-servo-metrics-", ""); metricsDir.delete(); metricsDir.mkdir(); } catch (IOException e) { throw new RuntimeException(e); } LOG.debug("created metrics dir " + metricsDir.getAbsolutePath()); MetricObserver transform = new CounterToRateMetricTransform( new FileMetricObserver("ZuulMetrics", metricsDir), heartbeatInterval, TimeUnit.SECONDS); PollRunnable task = new PollRunnable( new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, transform); final int samplingInterval = 10; scheduler.addPoller(task, samplingInterval, TimeUnit.SECONDS); }
@Override protected void initializePlatform() { if (initalized) return; try { PollScheduler scheduler = PollScheduler.getInstance(); scheduler.start(); MetricObserver fileObserver = new FileMetricObserver("stats", new File(".")); MetricObserver transform = new CounterToRateMetricTransform(fileObserver, 2, TimeUnit.MINUTES); PollRunnable task = new PollRunnable(new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, transform); scheduler.addPoller(task, 1, TimeUnit.MINUTES); } catch (Throwable e) { // dont do anything... just eat. logger.error("Epic Plugin was not intialized: ", e); } initalized = true; }
public void init() { PollScheduler scheduler = PollScheduler.getInstance(); if (!scheduler.isStarted()) { scheduler.start(); } if (isRollingFileEnabled()) { MetricObserver fileObserver = new FileOutputMetricObserver(fileOutput, convertor, formatter); MetricObserver fileTransform = new CounterToRateMetricTransform(fileObserver, metricPoll, TimeUnit.SECONDS); PollRunnable fileTask = new PollRunnable(new MonitorRegistryMetricPoller(), BasicMetricFilter.MATCH_ALL, fileTransform); scheduler.addPoller(fileTask, metricPoll, TimeUnit.SECONDS); } }