Exemplo n.º 1
0
  private void registerReporters(Metric2Registry metric2Registry, Configuration configuration) {
    RegexMetricFilter regexFilter = new RegexMetricFilter(getExcludedMetricsPatterns());
    MetricFilter allFilters = new OrMetricFilter(regexFilter, new MetricsWithCountFilter());
    MetricRegistry metricRegistry = metric2Registry.getMetricRegistry();

    reportToGraphite(
        metricRegistry,
        getGraphiteReportingInterval(),
        Stagemonitor.getMeasurementSession(),
        allFilters);
    reportToInfluxDb(
        metric2Registry,
        reportingIntervalInfluxDb.getValue(),
        Stagemonitor.getMeasurementSession());
    reportToElasticsearch(
        metric2Registry,
        reportingIntervalElasticsearch.getValue(),
        Stagemonitor.getMeasurementSession(),
        configuration.getConfig(CorePlugin.class));

    List<ScheduledReporter> onShutdownReporters = new LinkedList<ScheduledReporter>();
    onShutdownReporters.add(
        new SimpleElasticsearchReporter(
            getElasticsearchClient(), metricRegistry, "simple-es-reporter", allFilters));

    reportToConsole(metricRegistry, getConsoleReportingInterval(), allFilters, onShutdownReporters);
    registerAggregationReporter(
        metricRegistry, allFilters, onShutdownReporters, getAggregationReportingInterval());
    if (reportToJMX()) {
      reportToJMX(metricRegistry, allFilters);
    }
  }
Exemplo n.º 2
0
  @Override
  public void initializePlugin(Metric2Registry metricRegistry, Configuration configuration) {
    final Integer reloadInterval = getReloadConfigurationInterval();
    if (reloadInterval > 0) {
      configuration.scheduleReloadAtRate(reloadInterval, TimeUnit.SECONDS);
    }

    metricRegistry.register(
        MetricName.name("online").build(),
        new Gauge<Integer>() {
          @Override
          public Integer getValue() {
            return 1;
          }
        });

    ElasticsearchClient elasticsearchClient = getElasticsearchClient();
    if (isReportToGraphite()) {
      elasticsearchClient.sendGrafana1DashboardAsync("Grafana1GraphiteCustomMetrics.json");
    }
    elasticsearchClient.createIndex(
        "stagemonitor", IOUtils.getResourceAsStream("stagemonitor-elasticsearch-mapping.json"));
    if (isReportToElasticsearch()) {
      final GrafanaClient grafanaClient = getGrafanaClient();
      grafanaClient.createElasticsearchDatasource(getElasticsearchUrl());
    }
    registerReporters(metricRegistry, configuration);
  }
Exemplo n.º 3
0
 @Before
 public void before() {
   when(configuration.getConfig(CorePlugin.class)).thenReturn(corePlugin);
   StageMonitor.reset();
   StageMonitor.setConfiguration(configuration);
   StageMonitor.setLogger(logger);
   assertFalse(StageMonitor.isStarted());
   assertTrue(StageMonitor.getMeasurementSession().isNull());
 }
Exemplo n.º 4
0
 @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");
   }
 }
Exemplo n.º 5
0
 private boolean isPasswordInShowWidgetHeaderCorrect(
     HttpServletRequest request, Configuration configuration) {
   String password = request.getHeader(STAGEMONITOR_SHOW_WIDGET);
   if (configuration.isPasswordCorrect(password)) {
     return true;
   } else {
     if (StringUtils.isNotEmpty(password)) {
       logger.error(
           "The password transmitted via the header {} is not correct. "
               + "This might be a malicious attempt to guess the value of {}. "
               + "The request was initiated from the ip {}.",
           STAGEMONITOR_SHOW_WIDGET,
           Stagemonitor.STAGEMONITOR_PASSWORD,
           MonitoredHttpRequest.getClientIp(request));
     }
     return false;
   }
 }
Exemplo n.º 6
0
 @Override
 public void initializePlugin(MetricRegistry metricRegistry, Configuration config) {
   ElasticsearchClient elasticsearchClient =
       config.getConfig(CorePlugin.class).getElasticsearchClient();
   elasticsearchClient.sendGrafanaDashboardAsync("DB Queries.json");
 }
 public ElasticsearchAlerter(Configuration configuration, HttpClient httpClient) {
   this.corePlugin = configuration.getConfig(CorePlugin.class);
   this.httpClient = httpClient;
 }