mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-03 12:08:31 +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.dropwizard.setup.Environment;
|
||||||
import io.federecio.dropwizard.swagger.SwaggerBundle;
|
import io.federecio.dropwizard.swagger.SwaggerBundle;
|
||||||
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
|
import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration;
|
||||||
import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerBundle;
|
|
||||||
import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerHttpFilter;
|
import io.github.maksymdolgykh.dropwizard.micrometer.MicrometerHttpFilter;
|
||||||
import io.socket.engineio.server.EngineIoServerOptions;
|
import io.socket.engineio.server.EngineIoServerOptions;
|
||||||
import io.socket.engineio.server.JettyWebSocketHandler;
|
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.SocketAddressFilter;
|
||||||
import org.openmetadata.service.socket.WebSocketManager;
|
import org.openmetadata.service.socket.WebSocketManager;
|
||||||
import org.openmetadata.service.util.EmailUtil;
|
import org.openmetadata.service.util.EmailUtil;
|
||||||
|
import org.openmetadata.service.util.MicrometerBundleSingleton;
|
||||||
|
|
||||||
/** Main catalog application */
|
/** Main catalog application */
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -218,7 +218,7 @@ public class OpenMetadataApplication extends Application<OpenMetadataApplication
|
|||||||
return configuration.getHealthConfiguration();
|
return configuration.getHealthConfiguration();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
bootstrap.addBundle(new MicrometerBundle());
|
bootstrap.addBundle(MicrometerBundleSingleton.getInstance());
|
||||||
super.initialize(bootstrap);
|
super.initialize(bootstrap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,7 @@ import org.openmetadata.service.jdbi3.WebAnalyticEventRepository;
|
|||||||
import org.openmetadata.service.resources.Collection;
|
import org.openmetadata.service.resources.Collection;
|
||||||
import org.openmetadata.service.resources.EntityResource;
|
import org.openmetadata.service.resources.EntityResource;
|
||||||
import org.openmetadata.service.security.Authorizer;
|
import org.openmetadata.service.security.Authorizer;
|
||||||
|
import org.openmetadata.service.util.MicrometerBundleSingleton;
|
||||||
import org.openmetadata.service.util.RestUtil;
|
import org.openmetadata.service.util.RestUtil;
|
||||||
import org.openmetadata.service.util.ResultList;
|
import org.openmetadata.service.util.ResultList;
|
||||||
|
|
||||||
@ -404,8 +405,15 @@ public class WebAnalyticEventResource extends EntityResource<WebAnalyticEvent, W
|
|||||||
@Context UriInfo uriInfo,
|
@Context UriInfo uriInfo,
|
||||||
@Context SecurityContext securityContext,
|
@Context SecurityContext securityContext,
|
||||||
@Valid WebAnalyticEventData webAnalyticEventData)
|
@Valid WebAnalyticEventData webAnalyticEventData)
|
||||||
throws IOException {
|
throws Exception {
|
||||||
return dao.addWebAnalyticEventData(webAnalyticEventData);
|
return MicrometerBundleSingleton.webAnalyticEvents.recordCallable(
|
||||||
|
() -> {
|
||||||
|
try {
|
||||||
|
return dao.addWebAnalyticEventData(webAnalyticEventData);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@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