コード例 #1
0
  @Override
  public void requestInitialized(ServletRequestEvent sre) {
    if (corePlugin.isStagemonitorActive()) {
      final MeasurementSession measurementSession = corePlugin.getMeasurementSession();
      if (measurementSession.getApplicationName() != null) {
        MDC.put("application", measurementSession.getApplicationName());
      }
      if (measurementSession.getHostName() != null) {
        MDC.put("host", measurementSession.getHostName());
      }
      String instanceName = measurementSession.getInstanceName();
      if (instanceName == null) {
        instanceName = sre.getServletRequest().getServerName();
      }
      MDC.put("instance", instanceName);

      final String requestId = UUID.randomUUID().toString();
      sre.getServletRequest().setAttribute(STAGEMONITOR_REQUEST_ID_ATTR, requestId);

      if (Stagemonitor.isStarted()) {
        // don't store the requestId in MDC if stagemonitor is not active
        // so that thread pools that get created on startup don't inherit the requestId
        MDC.put("requestId", requestId);
      }
    }
  }
コード例 #2
0
  @Test
  public void testDisabledPlugin() {
    when(corePlugin.isStagemonitorActive()).thenReturn(true);
    when(corePlugin.getDisabledPlugins()).thenReturn(Arrays.asList("TestExceptionPlugin"));

    StageMonitor.startMonitoring(new MeasurementSession("testApp", "testHost", "testInstance"));

    verify(logger).info("Initializing plugin {}", "TestPlugin");
    verify(logger).info("Not initializing disabled plugin {}", "TestExceptionPlugin");
    verify(logger, times(0)).info("Initializing plugin {}", "TestExceptionPlugin");
  }
コード例 #3
0
ファイル: WebPlugin.java プロジェクト: pkallos/stagemonitor
 @Override
 public void initializePlugin(Metric2Registry registry, Configuration config) {
   registerPooledResources(registry, tomcatThreadPools());
   final CorePlugin corePlugin = config.getConfig(CorePlugin.class);
   ElasticsearchClient elasticsearchClient = corePlugin.getElasticsearchClient();
   if (corePlugin.isReportToGraphite()) {
     elasticsearchClient.sendGrafana1DashboardAsync("grafana/Grafana1GraphiteServer.json");
     elasticsearchClient.sendGrafana1DashboardAsync("grafana/Grafana1GraphiteKPIsOverTime.json");
   }
   if (corePlugin.isReportToElasticsearch()) {
     final GrafanaClient grafanaClient = corePlugin.getGrafanaClient();
     elasticsearchClient.sendBulkAsync("kibana/ApplicationServer.bulk");
     grafanaClient.sendGrafanaDashboardAsync("grafana/ElasticsearchApplicationServer.json");
   }
 }
コード例 #4
0
 @Override
 public void alert(Incident incident, Subscription subscription) {
   String target = subscription.getTarget();
   if (StringUtils.isEmpty(target)) {
     target = "/stagemonitor/alerts";
   }
   httpClient.sendAsJson("POST", corePlugin.getElasticsearchUrl() + target, incident);
 }
コード例 #5
0
  @Test
  public void testNotInitialized() {
    when(corePlugin.isStagemonitorActive()).thenReturn(true);

    final MeasurementSession measurementSession =
        new MeasurementSession(null, "testHost", "testInstance");
    StageMonitor.startMonitoring(measurementSession);

    verify(logger).warn("Measurement Session is not initialized: {}", measurementSession);
  }
コード例 #6
0
  @Test
  public void testStartMonitoringNotActive() throws Exception {
    when(corePlugin.isStagemonitorActive()).thenReturn(false);
    StageMonitor.setConfiguration(configuration);

    final MeasurementSession measurementSession =
        new MeasurementSession("testApp", "testHost", "testInstance");
    StageMonitor.startMonitoring(measurementSession);

    assertTrue(StageMonitor.isStarted());
    assertFalse(StageMonitor.getMeasurementSession().isInitialized());
    verify(logger, times(0)).info("Initializing plugin {}", "TestPlugin");
    verify(logger, times(0)).info("Initializing plugin {}", "TestExceptionPlugin");
  }
コード例 #7
0
  @Test
  public void testStartMonitoring() throws Exception {
    when(corePlugin.isStagemonitorActive()).thenReturn(true);

    final MeasurementSession measurementSession =
        new MeasurementSession("testApp", "testHost", "testInstance");
    StageMonitor.startMonitoring(measurementSession);
    StageMonitor.startMonitoring(new MeasurementSession("testApp2", "testHost2", "testInstance2"));

    assertTrue(StageMonitor.isStarted());
    assertTrue(StageMonitor.getMeasurementSession().isInitialized());
    assertSame(measurementSession, StageMonitor.getMeasurementSession());
    verify(logger).info("Initializing plugin {}", "TestPlugin");
    verify(logger).info("Initializing plugin {}", "TestExceptionPlugin");
  }
コード例 #8
0
 @Override
 public boolean isAvailable() {
   return StringUtils.isNotEmpty(corePlugin.getElasticsearchUrl());
 }