diff --git a/Dockerfile b/Dockerfile index 36ed06e0..44f7b11a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,6 @@ -FROM ghcr.io/navikt/baseimages/temurin:21 -COPY ./target/familie-ef-mottak.jar "app.jar" +FROM gcr.io/distroless/java21-debian12:nonroot +WORKDIR /app +ENV TZ="Europe/Oslo" +COPY target/familie-ef-mottak.jar app.jar ENV JAVA_OPTS="-XX:MaxRAMPercentage=75" +CMD ["app.jar"] \ No newline at end of file diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/repository/TaskMetricRepository.kt b/src/main/kotlin/no/nav/familie/ef/mottak/repository/TaskMetricRepository.kt deleted file mode 100644 index 5d92e94d..00000000 --- a/src/main/kotlin/no/nav/familie/ef/mottak/repository/TaskMetricRepository.kt +++ /dev/null @@ -1,17 +0,0 @@ -package no.nav.familie.ef.mottak.repository - -import no.nav.familie.ef.mottak.repository.domain.FeiletTaskMetric -import no.nav.familie.prosessering.domene.Task -import org.springframework.data.jdbc.repository.query.Query -import org.springframework.stereotype.Repository - -@Repository -interface TaskMetricRepository : org.springframework.data.repository.Repository { - - @Query( - """SELECT t.type, count(t.id) as count FROM Task t - WHERE t.status = 'FEILET' - GROUP by t.type""", - ) - fun finnFeiledeTasks(): List -} diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/TaskMetricService.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/TaskMetricService.kt deleted file mode 100644 index 38dc1323..00000000 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/TaskMetricService.kt +++ /dev/null @@ -1,34 +0,0 @@ -package no.nav.familie.ef.mottak.service - -import io.micrometer.core.instrument.Metrics -import no.nav.familie.ef.mottak.repository.SøknadRepository -import no.nav.familie.ef.mottak.repository.TaskMetricRepository -import no.nav.familie.leader.LeaderClient -import org.slf4j.LoggerFactory -import org.springframework.scheduling.annotation.Scheduled -import org.springframework.stereotype.Service - -@Service -class TaskMetricService( - private val taskMetricRepository: TaskMetricRepository, - private val søknadRepository: SøknadRepository, -) { - - private val logger = LoggerFactory.getLogger(this::class.java) - - @Scheduled(initialDelay = 5_000, fixedDelay = 5 * 60_000) - fun oppdaterMetrikker() { - when (LeaderClient.isLeader()) { - true -> oppdaterMetrikkerForOpprettingAvTask() - false -> logger.info("Er ikke leder - oppdaterer ikke metrikker") - null -> logger.error("Klarer ikke finne leder? Metrikker oppdateres ikke.") - } - } - - private fun oppdaterMetrikkerForOpprettingAvTask() { - taskMetricRepository.finnFeiledeTasks().forEach { - Metrics.gauge("tasks_${it.type}_feilet", it.count) - } - Metrics.gauge("soknad_task_ikke_opprettet", søknadRepository.countByTaskOpprettetFalseAndOpprettetTidBefore()) - } -} diff --git a/src/test/kotlin/no/nav/familie/ef/mottak/service/TaskMetricServiceTest.kt b/src/test/kotlin/no/nav/familie/ef/mottak/service/TaskMetricServiceTest.kt deleted file mode 100644 index 42e3d025..00000000 --- a/src/test/kotlin/no/nav/familie/ef/mottak/service/TaskMetricServiceTest.kt +++ /dev/null @@ -1,44 +0,0 @@ -package no.nav.familie.ef.mottak.service - -import no.nav.familie.ef.mottak.IntegrasjonSpringRunnerTest -import no.nav.familie.ef.mottak.no.nav.familie.ef.mottak.util.søknad -import no.nav.familie.ef.mottak.repository.SøknadRepository -import no.nav.familie.ef.mottak.repository.TaskMetricRepository -import no.nav.familie.prosessering.domene.Status -import no.nav.familie.prosessering.domene.Task -import no.nav.familie.prosessering.internal.TaskService -import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Test -import org.springframework.beans.factory.annotation.Autowired -import java.time.LocalDateTime -import java.util.UUID - -internal class TaskMetricServiceTest : IntegrasjonSpringRunnerTest() { - - @Autowired lateinit var taskService: TaskService - - @Autowired lateinit var taskMetricRepository: TaskMetricRepository - - @Autowired lateinit var søknadRepository: SøknadRepository - - @Autowired lateinit var taskMetricService: TaskMetricService - - @Test - internal fun `henting av metrics går fint`() { - taskService.deleteAll(taskService.findAll()) - søknadRepository.insert(søknad()) - // oppretter 2 søknader som har opprettet tid nå som ikke skal vises - søknadRepository.insert(søknad(LocalDateTime.now())) - søknadRepository.insert(søknad(LocalDateTime.now())) - // oppretter 2 søknader som har taskOpprettet = true som ikke skal vises - søknadRepository.insert(søknad(taskOpprettet = true)) - søknadRepository.insert(søknad(taskOpprettet = true)) - - taskService.save(Task("test2", UUID.randomUUID().toString()).copy(status = Status.FEILET)) - - assertThat(søknadRepository.countByTaskOpprettetFalseAndOpprettetTidBefore()).isEqualTo(1) - assertThat(taskMetricRepository.finnFeiledeTasks()).hasSize(1) - - taskMetricService.oppdaterMetrikker() - } -}