diff --git a/core/src/test/java/io/kestra/core/Helpers.java b/core/src/test/java/io/kestra/core/Helpers.java index b35aa8f9760..2db92928b97 100644 --- a/core/src/test/java/io/kestra/core/Helpers.java +++ b/core/src/test/java/io/kestra/core/Helpers.java @@ -98,10 +98,10 @@ public static void runApplicationContext(BiConsumer consumer) throws URISyntaxException { + public static void runApplicationContext(String[] env, Map properties, BiConsumer consumer) throws URISyntaxException { try (ApplicationContext applicationContext = applicationContext( pluginsPath(), - null, + properties, env ).start()) { EmbeddedServer embeddedServer = applicationContext.getBean(EmbeddedServer.class); @@ -110,4 +110,8 @@ public static void runApplicationContext(String[] env, BiConsumer consumer) throws URISyntaxException { + runApplicationContext(env, null, consumer); + } } diff --git a/webserver/src/main/java/io/kestra/webserver/controllers/MiscController.java b/webserver/src/main/java/io/kestra/webserver/controllers/MiscController.java index f06a833e4d1..5d1c789cfd5 100644 --- a/webserver/src/main/java/io/kestra/webserver/controllers/MiscController.java +++ b/webserver/src/main/java/io/kestra/webserver/controllers/MiscController.java @@ -1,7 +1,7 @@ package io.kestra.webserver.controllers; import com.fasterxml.jackson.annotation.JsonInclude; -import io.kestra.core.models.collectors.ExecutionUsage; +import io.kestra.core.models.collectors.Usage; import io.kestra.core.repositories.ExecutionRepositoryInterface; import io.kestra.core.services.CollectorService; import io.kestra.core.services.InstanceService; @@ -18,8 +18,6 @@ import lombok.Value; import lombok.extern.slf4j.Slf4j; -import javax.validation.Valid; - @Slf4j @Controller public class MiscController { @@ -57,11 +55,11 @@ public Configuration configuration() { .build(); } - @Get("/api/v1/execution-usage") + @Get("/api/v1/usages") @ExecuteOn(TaskExecutors.IO) @Operation(tags = {"Misc"}, summary = "Get execution usage information") - public ExecutionUsage executionUsage() { - return ExecutionUsage.of(executionRepository); + public Usage usages() { + return collectorService.metrics(); } @Value diff --git a/webserver/src/test/java/io/kestra/webserver/controllers/MiscControllerTest.java b/webserver/src/test/java/io/kestra/webserver/controllers/MiscControllerTest.java index fdd410e00cd..d9767c091cc 100644 --- a/webserver/src/test/java/io/kestra/webserver/controllers/MiscControllerTest.java +++ b/webserver/src/test/java/io/kestra/webserver/controllers/MiscControllerTest.java @@ -1,6 +1,5 @@ package io.kestra.webserver.controllers; -import io.kestra.core.models.collectors.ExecutionUsage; import io.kestra.webserver.controllers.h2.JdbcH2ControllerTest; import io.micronaut.http.client.annotation.Client; import io.micronaut.rxjava2.http.client.RxHttpClient; @@ -32,12 +31,4 @@ void configuration() { assertThat(response.getIsTaskRunEnabled(), is(false)); assertThat(response.getIsAnonymousUsageEnabled(), is(true)); } - - @Test - void executionUsage() { - var response = client.toBlocking().retrieve("/api/v1/execution-usage", ExecutionUsage.class); - - assertThat(response, notNullValue()); - // the memory executor didn't support daily statistics so we cannot have real execution usage - } } \ No newline at end of file diff --git a/webserver/src/test/java/io/kestra/webserver/controllers/MiscUsageControllerTest.java b/webserver/src/test/java/io/kestra/webserver/controllers/MiscUsageControllerTest.java new file mode 100644 index 00000000000..b26ab7fc8f1 --- /dev/null +++ b/webserver/src/test/java/io/kestra/webserver/controllers/MiscUsageControllerTest.java @@ -0,0 +1,37 @@ +package io.kestra.webserver.controllers; + +import io.kestra.core.Helpers; +import io.kestra.core.models.collectors.Usage; +import io.micronaut.http.HttpRequest; +import io.micronaut.rxjava2.http.client.RxHttpClient; +import org.junit.jupiter.api.Test; + +import java.net.URISyntaxException; +import java.util.Map; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.*; + +class MiscUsageControllerTest { + @Test + void usages() throws URISyntaxException { + Helpers.runApplicationContext(new String[]{"test"}, Map.of("kestra.server-type", "STANDALONE"), (applicationContext, embeddedServer) -> { + try (RxHttpClient client = RxHttpClient.create(embeddedServer.getURL())) { + + var response = client.toBlocking().retrieve(HttpRequest.GET("/api/v1/usages"), Usage.class); + + assertThat(response.getUuid(), notNullValue()); + assertThat(response.getVersion(), notNullValue()); + assertThat(response.getStartTime(), notNullValue()); + assertThat(response.getEnvironments(), contains("test")); + assertThat(response.getStartTime(), notNullValue()); + assertThat(response.getHost().getUuid(), notNullValue()); + assertThat(response.getHost().getHardware().getLogicalProcessorCount(), notNullValue()); + assertThat(response.getHost().getJvm().getName(), notNullValue()); + assertThat(response.getHost().getOs().getFamily(), notNullValue()); + assertThat(response.getConfigurations().getRepositoryType(), is("h2")); + assertThat(response.getConfigurations().getQueueType(), is("h2")); + } + }); + } +} \ No newline at end of file