Add micrometer page view metrics (#9062)

This commit is contained in:
Teddy 2022-11-29 19:37:29 +01:00 committed by GitHub
parent 34aacb20d6
commit 80043e329e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 4 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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;
}
}