From 665d27085ab1fcb5bbae3e2a2d1efef8389240a4 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Thu, 15 Jun 2023 14:46:47 +0300 Subject: [PATCH] RED-6072 - As Operation I want to see why files are in an ERROR state - added the timestamp to fileErrorInfo when informing of error --- .../search-service-server-v1/pom.xml | 2 +- .../server/queue/IndexingMessageReceiver.java | 17 +++++++++++++---- .../v1/server/queue/MessagingConfiguration.java | 1 + 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/search-service-v1/search-service-server-v1/pom.xml b/search-service-v1/search-service-server-v1/pom.xml index 0894b1e..3fa5fad 100644 --- a/search-service-v1/search-service-server-v1/pom.xml +++ b/search-service-v1/search-service-server-v1/pom.xml @@ -12,7 +12,7 @@ search-service-server-v1 - 2.59.0 + 2.70.0 diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java index 6256678..f5a43a4 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java @@ -5,8 +5,11 @@ import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguratio import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_DQL; import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.INDEXING_QUEUE; import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_HEADER; +import static com.iqser.red.service.search.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_TIMESTAMP_HEADER; import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; import java.util.List; import org.springframework.amqp.AmqpRejectAndDontRequeueException; @@ -78,6 +81,7 @@ public class IndexingMessageReceiver { } catch (Exception e) { log.warn("An exception occurred in processing the indexing request stage: ", e); message.getMessageProperties().getHeaders().put(X_ERROR_INFO_HEADER, e.getMessage()); + message.getMessageProperties().getHeaders().put(X_ERROR_INFO_TIMESTAMP_HEADER, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); throw e; } } @@ -129,7 +133,9 @@ public class IndexingMessageReceiver { String errorLog = "Failed to process indexing request:"; log.info(errorLog + ": {}", indexRequest); String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service")); + OffsetDateTime timestamp = in.getMessageProperties().getHeader(X_ERROR_INFO_TIMESTAMP_HEADER); + timestamp = timestamp != null ? timestamp : OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service", timestamp)); } @@ -144,8 +150,10 @@ public class IndexingMessageReceiver { documentDeleteService.deleteDocument(indexRequest.getFileId()); log.info("Successfully deleted document with dossierId {} and fileId {}", indexRequest.getDossierId(), indexRequest.getFileId()); } catch (Exception e) { - log.warn("An exception occurred in processing delete document stage: ", e.getMessage()); + log.warn("An exception occurred in processing delete document stage: {}", e.getMessage()); in.getMessageProperties().getHeaders().put(X_ERROR_INFO_HEADER, e.getMessage()); + in.getMessageProperties().getHeaders().put(X_ERROR_INFO_TIMESTAMP_HEADER, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + throw e; } @@ -160,8 +168,9 @@ public class IndexingMessageReceiver { String errorLog = "Failed to process delete from index request "; log.info(errorLog + ": {}", indexRequest); String errorMessage = errorLog + in.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); - - fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service")); + OffsetDateTime timestamp = in.getMessageProperties().getHeader(X_ERROR_INFO_TIMESTAMP_HEADER); + timestamp = timestamp != null ? timestamp : OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); + fileStatusProcessingUpdateClient.indexingFailed(indexRequest.getDossierId(), indexRequest.getFileId(), new FileErrorInfo(errorMessage, INDEXING_DQL, "search-service", timestamp)); } diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java index 0d9d8d7..983445c 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/MessagingConfiguration.java @@ -18,6 +18,7 @@ public class MessagingConfiguration { public static final String DELETE_FROM_INDEX_DLQ = "deleteFromIndexDLQ"; public static final String X_ERROR_INFO_HEADER = "x-error-message"; + public static final String X_ERROR_INFO_TIMESTAMP_HEADER = "x-error-message-timestamp"; @Bean