public void uploadKibanaDashboard()

in source/src/main/java/com/amazonaws/comprehend/esproxy/lambda/utils/kibana/KibanaUploader.java [94:128]


    public void uploadKibanaDashboard(@NonNull Map<String, ComprehendConfiguration> configMap, @NonNull LambdaLogger logger) {
        Set<String> indexNameSet = new HashSet<>();
        List<Future> futureList = new ArrayList<>();

        try {
            // Upload markdown visualizations
            futureList.add(submitMarkdownRequest(logger));

            for (ComprehendConfiguration configuration : configMap.values()) {
                String indexName = configuration.getIndexName();
                String fieldName = configuration.getFieldName();
                Set<ComprehendOperationEnum> operations = configuration.getComprehendOperations();

                // Upload index pattern to Kibana
                if (!indexNameSet.contains(indexName)) {
                    futureList.add(submitIndexPatternRequest(indexName, logger));
                    indexNameSet.add(indexName);
                }
                // Upload visualization
                futureList.add(submitVisualRequest(indexName, fieldName, operations, logger));

                // Upload Comprehend Dashboard
                futureList.add(submitDashboardRequest(indexName, fieldName, logger));
            }

            // Check whether all tasks have completed execution, or until timeout occurs
            for (Future future : futureList) {
                future.get(Constants.KIBANA_UPLOAD_TIMEOUT_SECONDS, TimeUnit.SECONDS);
            }
        } catch (TimeoutException e) {
            logger.log("Upload Dashboard timed out, some dashboard/visualization may not be uploaded. " + e);
        } catch (Exception e) {
            logger.log("Upload Dashboard failed with Exception: " + e);
        }
    }