@Override protected void onElasticsearchFirstAvailable(ElasticsearchClient elasticsearchClient) { if (corePlugin.isInitializeElasticsearch()) { if (elasticsearchClient.isElasticsearch6Compatible()) { logger.debug("creating KibanaIndexAndMapping for ES 6..."); elasticsearchClient.createIndexAndSendMapping(".kibana", "doc", IOUtils.getResourceAsStream(elasticsearchClient.getElasticsearchResourcePath() + "kibana-index-doc.json")); logger.debug("created KibanaIndexAndMapping for ES 6"); } else { logger.debug("creating KibanaIndexAndMapping for ES 5..."); createKibana5IndexAndMappings(elasticsearchClient); sendConfigurationMapping(elasticsearchClient); logger.debug("created KibanaIndexAndMapping for ES 5"); } manageMetricsIndex(elasticsearchClient, corePlugin); } elasticsearchClient.scheduleIndexManagement(ElasticsearchReporter.STAGEMONITOR_METRICS_INDEX_PREFIX, corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getDeleteElasticsearchMetricsAfterDays()); reportToElasticsearch(corePlugin.getMetricRegistry(), corePlugin.getElasticsearchReportingInterval(), corePlugin.getMeasurementSession()); }
private void createSpansIndex(ElasticsearchClient elasticsearchClient) { final String spanMappingJson = ElasticsearchClient.modifyIndexTemplate( elasticsearchTracingPlugin.getSpanIndexTemplate(), corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getNumberOfReplicas(), corePlugin.getNumberOfShards()); elasticsearchClient.sendMappingTemplate(spanMappingJson, "stagemonitor-spans"); elasticsearchClient.createEmptyIndex(ElasticsearchSpanReporter.getTodaysIndexName()); } }
@Override protected void onElasticsearchFirstAvailable(ElasticsearchClient elasticsearchClient) { if (corePlugin.isInitializeElasticsearch()) { createSpansIndex(elasticsearchClient); final String resourcePath = elasticsearchClient.getElasticsearchResourcePath(); elasticsearchClient.updateKibanaIndexPattern("stagemonitor-spans-*",resourcePath + "stagemonitor-spans-kibana-index-pattern.json"); elasticsearchClient.sendSpanDashboardBulkAsync(resourcePath + "Request-Analysis.bulk", true); elasticsearchClient.sendSpanDashboardBulkAsync(resourcePath + "Web-Analytics.bulk", true); } elasticsearchClient.scheduleIndexManagement("stagemonitor-spans-", corePlugin.getMoveToColdNodesAfterDays(), elasticsearchTracingPlugin.getDeleteSpansAfterDays()); }
private static void manageMetricsIndex(ElasticsearchClient elasticsearchClient, CorePlugin corePlugin) { if (corePlugin.isReportToElasticsearch()) { elasticsearchClient.updateKibanaIndexPattern("stagemonitor-metrics-*", elasticsearchClient.getElasticsearchResourcePath() + "stagemonitor-metrics-kibana-index-pattern.json"); final String mappingJson = ElasticsearchClient.modifyIndexTemplate( corePlugin.getMetricsIndexTemplate(), corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getNumberOfReplicas(), corePlugin.getNumberOfShards()); elasticsearchClient.sendMappingTemplate(mappingJson, "stagemonitor-metrics"); elasticsearchClient.createEmptyIndex(ElasticsearchReporter.getTodaysIndexName()); } }
private void createSpansIndex(ElasticsearchClient elasticsearchClient) { final String spanMappingJson = ElasticsearchClient.modifyIndexTemplate( elasticsearchTracingPlugin.getSpanIndexTemplate(), corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getNumberOfReplicas(), corePlugin.getNumberOfShards()); elasticsearchClient.sendMappingTemplate(spanMappingJson, "stagemonitor-spans"); elasticsearchClient.createEmptyIndex(ElasticsearchSpanReporter.getTodaysIndexName()); } }
@Override protected void onElasticsearchFirstAvailable(ElasticsearchClient elasticsearchClient) { if (corePlugin.isInitializeElasticsearch()) { createSpansIndex(elasticsearchClient); final String resourcePath = elasticsearchClient.getElasticsearchResourcePath(); elasticsearchClient.updateKibanaIndexPattern("stagemonitor-spans-*",resourcePath + "stagemonitor-spans-kibana-index-pattern.json"); elasticsearchClient.sendSpanDashboardBulkAsync(resourcePath + "Request-Analysis.bulk", true); elasticsearchClient.sendSpanDashboardBulkAsync(resourcePath + "Web-Analytics.bulk", true); } elasticsearchClient.scheduleIndexManagement("stagemonitor-spans-", corePlugin.getMoveToColdNodesAfterDays(), elasticsearchTracingPlugin.getDeleteSpansAfterDays()); }
@Override public void initializePlugin(StagemonitorPlugin.InitArguments initArguments) { final CorePlugin corePlugin = initArguments.getPlugin(CorePlugin.class); final ElasticsearchClient elasticsearchClient = corePlugin.getElasticsearchClient(); final GrafanaClient grafanaClient = corePlugin.getGrafanaClient(); final String requestsMappingJson = ElasticsearchClient.modifyIndexTemplate( requestIndexTemplate.getValue(), corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getNumberOfReplicas(), corePlugin.getNumberOfShards()); elasticsearchClient.sendMappingTemplateAsync(requestsMappingJson, "stagemonitor-requests"); final String mappingJson = ElasticsearchClient.modifyIndexTemplate( externalRequestsIndexTemplate.getValue(), corePlugin.getMoveToColdNodesAfterDays(), corePlugin.getNumberOfReplicas(), corePlugin.getNumberOfShards()); elasticsearchClient.sendMappingTemplateAsync(mappingJson, "stagemonitor-external-requests"); if (corePlugin.isReportToGraphite()) { elasticsearchClient.sendGrafana1DashboardAsync("grafana/Grafana1GraphiteRequestDashboard.json"); } if (corePlugin.isReportToElasticsearch()) { elasticsearchClient.sendClassPathRessourceBulkAsync("kibana/RequestDashboard.bulk"); grafanaClient.sendGrafanaDashboardAsync("grafana/ElasticsearchRequestDashboard.json"); grafanaClient.sendGrafanaDashboardAsync("grafana/ElasticsearchExternalRequestsDashboard.json"); } if (!corePlugin.getElasticsearchUrls().isEmpty()) { elasticsearchClient.sendClassPathRessourceBulkAsync("kibana/StagemonitorRequestsIndexPattern.bulk"); elasticsearchClient.sendClassPathRessourceBulkAsync("kibana/RequestAnalysis.bulk"); elasticsearchClient.sendClassPathRessourceBulkAsync("kibana/WebAnalytics.bulk"); elasticsearchClient.sendClassPathRessourceBulkAsync("kibana/ExternalRequests.bulk"); elasticsearchClient.scheduleIndexManagement("stagemonitor-requests-", corePlugin.getMoveToColdNodesAfterDays(), deleteRequestTracesAfterDays.getValue()); elasticsearchClient.scheduleIndexManagement("stagemonitor-external-requests-", corePlugin.getMoveToColdNodesAfterDays(), deleteRequestTracesAfterDays.getValue()); } }