mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-01 11:09:14 +00:00
Add micrometer page view metrics (#9062)
This commit is contained in:
parent
34aacb20d6
commit
80043e329e
@ -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<OpenMetadataApplication
|
||||
return configuration.getHealthConfiguration();
|
||||
}
|
||||
});
|
||||
bootstrap.addBundle(new MicrometerBundle());
|
||||
bootstrap.addBundle(MicrometerBundleSingleton.getInstance());
|
||||
super.initialize(bootstrap);
|
||||
}
|
||||
|
||||
|
||||
@ -49,6 +49,7 @@ import org.openmetadata.service.jdbi3.WebAnalyticEventRepository;
|
||||
import org.openmetadata.service.resources.Collection;
|
||||
import org.openmetadata.service.resources.EntityResource;
|
||||
import org.openmetadata.service.security.Authorizer;
|
||||
import org.openmetadata.service.util.MicrometerBundleSingleton;
|
||||
import org.openmetadata.service.util.RestUtil;
|
||||
import org.openmetadata.service.util.ResultList;
|
||||
|
||||
@ -404,8 +405,15 @@ public class WebAnalyticEventResource extends EntityResource<WebAnalyticEvent, W
|
||||
@Context UriInfo uriInfo,
|
||||
@Context SecurityContext securityContext,
|
||||
@Valid WebAnalyticEventData webAnalyticEventData)
|
||||
throws IOException {
|
||||
return dao.addWebAnalyticEventData(webAnalyticEventData);
|
||||
throws Exception {
|
||||
return MicrometerBundleSingleton.webAnalyticEvents.recordCallable(
|
||||
() -> {
|
||||
try {
|
||||
return dao.addWebAnalyticEventData(webAnalyticEventData);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@GET
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user