private void trackOverhead(long overhead1, long overhead2) { if (corePlugin.isInternalMonitoringActive()) { overhead2 = System.nanoTime() - overhead2; metricRegistry.timer(internalOverheadMetricName).update(overhead2 + overhead1, NANOSECONDS); } }
public ElasticsearchClient(final CorePlugin corePlugin, final HttpClient httpClient, int esAvailabilityCheckIntervalSec, List<ElasticsearchAvailabilityObserver> elasticsearchAvailabilityObservers) { this.corePlugin = corePlugin; asyncESPool = ExecutorUtils .createSingleThreadDeamonPool("async-elasticsearch", corePlugin.getThreadPoolQueueCapacityLimit(), corePlugin); timer = new Timer("elasticsearch-tasks", true); if (corePlugin.isInternalMonitoringActive()) { JavaThreadPoolMetricsCollectorImpl pooledResource = new JavaThreadPoolMetricsCollectorImpl(asyncESPool, "internal.asyncESPool"); PooledResourceMetricsRegisterer.registerPooledResource(pooledResource, Stagemonitor.getMetric2Registry()); } this.httpClient = httpClient; checkEsAvailability = new CheckEsAvailability(httpClient, corePlugin, elasticsearchAvailabilityObservers); if (esAvailabilityCheckIntervalSec > 0) { final long period = TimeUnit.SECONDS.toMillis(esAvailabilityCheckIntervalSec); timer.scheduleAtFixedRate(checkEsAvailability, 0, period); } }
@Test public void testUpdateConfiguration() throws IOException { assertFalse(corePlugin.isInternalMonitoringActive()); configuration.save("stagemonitor.internal.monitoring", "true", SimpleSource.NAME); assertTrue(corePlugin.isInternalMonitoringActive()); }
private void internalMonitoringTestHelper(boolean active) throws Exception { doReturn(active).when(corePlugin).isInternalMonitoringActive(); requestMonitor.monitor(createMonitoredRequest()); verify(registry, times(active ? 1 : 0)).timer(name("internal_overhead_request_monitor").build()); }
@Test public void testUpdateConfigurationWrongConfigurationSource() throws IOException { assertFalse(corePlugin.isInternalMonitoringActive()); try { configuration.save("stagemonitor.internal.monitoring", "true", "foo"); fail(); } catch (IllegalArgumentException e) { assertEquals("Configuration source 'foo' does not exist.", e.getMessage()); } assertFalse(corePlugin.isInternalMonitoringActive()); }
@Test public void testInternalMetricsActive() throws Exception { doReturn(true).when(corePlugin).isInternalMonitoringActive(); requestMonitor.monitor(createMonitoredRequest()); verify(registry).timer(name("internal_overhead_request_monitor").build()); }
@Test public void testUpdateConfigurationNotSaveableConfigurationSource() throws IOException { configuration.addConfigurationSource(new SystemPropertyConfigurationSource()); assertFalse(corePlugin.isInternalMonitoringActive()); try { configuration.save("stagemonitor.internal.monitoring", "true", "Java System Properties"); fail(); } catch (UnsupportedOperationException e) { assertEquals("Saving to Java System Properties is not possible.", e.getMessage()); } assertFalse(corePlugin.isInternalMonitoringActive()); }
protected AsyncReporter.Builder getZipkinReporterBuilder(StagemonitorPlugin.InitArguments initArguments) { final ZipkinPlugin zipkinPlugin = initArguments.getPlugin(ZipkinPlugin.class); final AsyncReporter.Builder reporterBuilder = AsyncReporter .builder(getSender(zipkinPlugin)) .messageTimeout(zipkinPlugin.getZipkinFlushInterval(), TimeUnit.MILLISECONDS); final Integer zipkinMaxQueuedBytes = zipkinPlugin.getZipkinMaxQueuedBytes(); if (zipkinMaxQueuedBytes != null) { reporterBuilder.queuedMaxBytes(zipkinMaxQueuedBytes); } if (initArguments.getPlugin(CorePlugin.class).isInternalMonitoringActive()) { reporterBuilder.metrics(new StagemonitorReporterMetrics(initArguments.getMetricRegistry())); } return reporterBuilder; }
@Test public void testUpdateConfigurationWrongDatatype() throws IOException { configuration.addConfigurationSource(SimpleSource.forTest("stagemonitor.internal.monitoring", "1")); configuration.reloadAllConfigurationOptions(); assertFalse(corePlugin.isInternalMonitoringActive()); assertEquals("Error in Test Configuration Source: Can't convert '1' to Boolean.", configuration.getConfigurationOptionByKey("stagemonitor.internal.monitoring").getErrorMessage()); configuration.save("stagemonitor.internal.monitoring", "true", "Test Configuration Source"); assertTrue(corePlugin.isInternalMonitoringActive()); assertNull(configuration.getConfigurationOptionByKey("stagemonitor.internal.monitoring").getErrorMessage()); }
private void trackOverhead(long overhead1, long overhead2) { if (corePlugin.isInternalMonitoringActive()) { overhead2 = System.nanoTime() - overhead2; metricRegistry.timer(internalOverheadMetricName).update(overhead2 + overhead1, NANOSECONDS); } }