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); } }
@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); }
@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()); }
@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"); } }
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; } }
@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; }