public void createElasticsearchDatasource(final URL elasticsearchUrl) { Map<String, Object> dataSource = new HashMap<String, Object>(); dataSource.put("name", ES_STAGEMONITOR_DS_NAME); dataSource.put("url", elasticsearchUrl.toString()); dataSource.put("access", "proxy"); dataSource.put("database", "[stagemonitor-metrics-]YYYY.MM.DD"); dataSource.put("isDefault", false); dataSource.put("type", "elasticsearch"); dataSource.put("basicAuth", false); Map<String, Object> jsonData = new HashMap<String, Object>(); jsonData.put("timeField", "@timestamp"); jsonData.put("interval", "Daily"); jsonData.put("timeInterval", ">" + corePlugin.getElasticsearchReportingInterval() + "s"); jsonData.put("esVersion", 5); dataSource.put("jsonData", jsonData); asyncGrafanaRequest("POST", "/api/datasources", dataSource); }
ObjectNode getGrafanaDashboard(String classPathLocation) throws IOException { final ObjectNode dashboard = (ObjectNode) JsonUtils.getMapper().readTree(IOUtils.getResourceAsStream(classPathLocation)); dashboard.put("editable", false); addMinIntervalToPanels(dashboard, corePlugin.getElasticsearchReportingInterval() + "s"); return dashboard; }
@Before public void setUp() throws Exception { CorePlugin corePlugin = mock(CorePlugin.class); when(corePlugin.getThreadPoolQueueCapacityLimit()).thenReturn(1000); when(corePlugin.getGrafanaUrl()).thenReturn("foo"); when(corePlugin.getGrafanaApiKey()).thenReturn("bar"); when(corePlugin.getElasticsearchReportingInterval()).thenReturn(60); grafanaClient = new GrafanaClient(corePlugin, mock(HttpClient.class)); }
@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()); }