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