in source/src/main/java/com/amazonaws/comprehend/esproxy/lambda/utils/kibana/KibanaUploader.java [157:185]
private Future submitVisualRequest(@NonNull String indexName,
@NonNull String fieldName,
@NonNull Set<ComprehendOperationEnum> operations,
@NonNull LambdaLogger logger) throws IOException {
logger.log("Upload visualizations to Kibana");
JSONObject visualizationJson = getResourceFileJson(VISUALIZATION_KEY_NAME);
List<String> visualizationNameList = new ArrayList<>();
// Load visualization name for each operation and add to the visualizationNameList
operations.forEach(
operation -> visualizationNameList.addAll(
Arrays.asList(operation.getComprehendOperation().getVisualizationNameList()))
);
return executorService.submit(() -> {
// For each visualization name, submit a upload request
for (String visualizationName : visualizationNameList) {
String visualName = String.format("%s_%s-%s", indexName, fieldName, visualizationName);
String endpoint = String.format("%s/%s-%s", VISUAL_PATH, visualName, VISUAL_OVERRIDE);
String payload = buildAttributes(visualName, visualizationJson.get(visualizationName).toString())
.replaceAll(INDEX_NAME_KEY, indexName)
.replaceAll(FIELD_NAME_KEY, fieldName)
.replaceAll(INDEX_ID_KEY, String.format("%s-%s", indexName, INDEX_ID_NAME));
performUploadRequest(endpoint, payload, logger);
}
});
}