diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/webAnalytics/processors/WebAnalyticsUserActivityProcessor.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/webAnalytics/processors/WebAnalyticsUserActivityProcessor.java index f91296fe166..eb8376b3c0b 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/webAnalytics/processors/WebAnalyticsUserActivityProcessor.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/webAnalytics/processors/WebAnalyticsUserActivityProcessor.java @@ -12,11 +12,13 @@ import java.util.UUID; import lombok.extern.slf4j.Slf4j; import org.glassfish.jersey.internal.util.ExceptionUtils; import org.openmetadata.schema.analytics.WebAnalyticEventData; +import org.openmetadata.schema.entity.teams.User; import org.openmetadata.schema.system.IndexingError; import org.openmetadata.schema.system.StepStats; import org.openmetadata.schema.type.Include; import org.openmetadata.service.Entity; import org.openmetadata.service.apps.bundles.insights.workflows.webAnalytics.WebAnalyticsWorkflow; +import org.openmetadata.service.exception.EntityNotFoundException; import org.openmetadata.service.exception.SearchIndexException; import org.openmetadata.service.util.EntityUtil; import org.openmetadata.service.util.JsonUtils; @@ -75,18 +77,29 @@ public class WebAnalyticsUserActivityProcessor if (!userActivityDataMap.containsKey(userId)) { // Fetch user Info - var userDetails = - Entity.getEntityRepository(Entity.USER) - .get(null, userId, new EntityUtil.Fields(Set.of("teams")), Include.ALL, false); + try { + User userDetails = + (User) + Entity.getEntityRepository(Entity.USER) + .get(null, userId, new EntityUtil.Fields(Set.of("teams")), Include.ALL, false); - Map> sessions = new HashMap<>(); - sessions.put(sessionId, List.of(timestamp)); + Map> sessions = new HashMap<>(); + sessions.put(sessionId, List.of(timestamp)); - WebAnalyticsWorkflow.UserActivityData userActivityData = - new WebAnalyticsWorkflow.UserActivityData( - userDetails.getName(), userId, null, sessions, 1, 1, timestamp); - // .withTeam(userDetails.) - userActivityDataMap.put(userId, userActivityData); + String team = null; + if (!userDetails.getTeams().isEmpty()) { + team = userDetails.getTeams().get(0).getName(); + } + + WebAnalyticsWorkflow.UserActivityData userActivityData = + new WebAnalyticsWorkflow.UserActivityData( + userDetails.getName(), userId, team, sessions, 1, 1, timestamp); + userActivityDataMap.put(userId, userActivityData); + } catch (EntityNotFoundException ex) { + LOG.debug( + String.format( + "Skipping user with id '%s' because it was not found in the database.", userId)); + } } else { WebAnalyticsWorkflow.UserActivityData userActivityData = userActivityDataMap.get(userId); Map> sessions = userActivityData.sessions();