From c828b0860c0047e3e075b1d53a454b8c343fb67c Mon Sep 17 00:00:00 2001 From: Gcolon021 <34667267+Gcolon021@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:09:26 -0500 Subject: [PATCH] [ALS-7751] Java Opts can now be passed to docker container (#52) * Add MemoryCheck service for monitoring max heap memory * Replace System.out with SLF4J logger in MemoryCheck Updated the MemoryCheck class to use SLF4J logger instead of System.out for logging max heap memory. This enhances logging consistency and allows better integration with logging frameworks. --- Dockerfile | 2 +- .../dictionary/memory/MemoryCheck.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/main/java/edu/harvard/dbmi/avillach/dictionary/memory/MemoryCheck.java diff --git a/Dockerfile b/Dockerfile index 457f53e..d0dc7bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,4 +26,4 @@ ENV DATASOURCE_USERNAME=${DATASOURCE_USERNAME} ENV SPRING_PROFILE=${SPRING_PROFILE} # Default to no profile -ENTRYPOINT java $DEBUG_VARS $PROXY_VARS -Xmx8192m -jar /dictionary.jar --spring.profiles.active=${SPRING_PROFILE:-} \ No newline at end of file +ENTRYPOINT java $DEBUG_VARS $PROXY_VARS -Xmx8192m ${JAVA_OPTS} -jar /dictionary.jar --spring.profiles.active=${SPRING_PROFILE:-} \ No newline at end of file diff --git a/src/main/java/edu/harvard/dbmi/avillach/dictionary/memory/MemoryCheck.java b/src/main/java/edu/harvard/dbmi/avillach/dictionary/memory/MemoryCheck.java new file mode 100644 index 0000000..dd40e7f --- /dev/null +++ b/src/main/java/edu/harvard/dbmi/avillach/dictionary/memory/MemoryCheck.java @@ -0,0 +1,19 @@ +package edu.harvard.dbmi.avillach.dictionary.memory; + +import jakarta.annotation.PostConstruct; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MemoryCheck { + + private static final Logger LOG = LoggerFactory.getLogger(MemoryCheck.class); + + @PostConstruct + public void checkMemory() { + long maxMemory = Runtime.getRuntime().maxMemory() / (1024 * 1024); + LOG.info("Max Heap Memory (Xmx): {} MB", maxMemory); + } + +}