diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java b/openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java index bdd1389a1ab..46483f32416 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java @@ -30,7 +30,6 @@ import io.dropwizard.setup.Bootstrap; import io.dropwizard.setup.Environment; import io.federecio.dropwizard.swagger.SwaggerBundle; import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration; -import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerBundle; import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerHttpFilter; import io.socket.engineio.server.EngineIoServerOptions; import io.socket.engineio.server.JettyWebSocketHandler; @@ -92,6 +91,7 @@ import org.openmetadata.service.socket.FeedServlet; import org.openmetadata.service.socket.SocketAddressFilter; import org.openmetadata.service.socket.WebSocketManager; import org.openmetadata.service.util.EmailUtil; +import org.openmetadata.service.util.MicrometerBundleSingleton; /** Main catalog application */ @Slf4j @@ -218,7 +218,7 @@ public class OpenMetadataApplication extends Application { + try { + return dao.addWebAnalyticEventData(webAnalyticEventData); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); } @GET diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java new file mode 100644 index 00000000000..6fd5374a2ad --- /dev/null +++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/MicrometerBundleSingleton.java @@ -0,0 +1,20 @@ +package org.openmetadata.service.util; + +import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerBundle; +import io.micrometer.core.instrument.Timer; + +public class MicrometerBundleSingleton { + private static MicrometerBundle INSTANCE; + public static Timer webAnalyticEvents; + + private MicrometerBundleSingleton() {} + + public static MicrometerBundle getInstance() { + if (INSTANCE == null) { + INSTANCE = new MicrometerBundle(); + webAnalyticEvents = MicrometerBundle.prometheusRegistry.timer("web.analytics.events"); + } + + return INSTANCE; + } +}