@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); }
@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 void reportToElasticsearch( Metric2Registry metricRegistry, int reportingInterval, final MeasurementSession measurementSession, CorePlugin corePlugin) { if (isReportToElasticsearch()) { elasticsearchClient.sendBulkAsync("KibanaConfig.bulk"); logger.info( "Sending metrics to Elasticsearch ({}) every {}s", getElasticsearchUrl(), reportingInterval); final String mappingJson = ElasticsearchClient.requireBoxTypeHotIfHotColdAritectureActive( "stagemonitor-elasticsearch-metrics-index-template.json", corePlugin.moveToColdNodesAfterDays.getValue()); elasticsearchClient.sendMappingTemplateAsync(mappingJson, "stagemonitor-metrics"); final ElasticsearchReporter reporter = new ElasticsearchReporter( metricRegistry, Metric2Filter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, measurementSession.asMap(), new HttpClient(), this); reporter.start(reportingInterval, TimeUnit.SECONDS); reporters.add(reporter); elasticsearchClient.scheduleIndexManagement( ElasticsearchReporter.STAGEMONITOR_METRICS_INDEX_PREFIX, moveToColdNodesAfterDays.getValue(), deleteElasticsearchMetricsAfterDays.getValue()); } else { logger.info( "Not sending metrics to Elasticsearch (url={}, interval={}s)", getElasticsearchUrl(), reportingInterval); } }
@Override public void initializePlugin(MetricRegistry metricRegistry, Configuration config) { ElasticsearchClient elasticsearchClient = config.getConfig(CorePlugin.class).getElasticsearchClient(); elasticsearchClient.sendGrafanaDashboardAsync("DB Queries.json"); }