diff --git a/src/frontend/src/customization/utils/analytics.ts b/src/frontend/src/customization/utils/analytics.ts index 03a7c9276..f40138e3e 100644 --- a/src/frontend/src/customization/utils/analytics.ts +++ b/src/frontend/src/customization/utils/analytics.ts @@ -5,3 +5,20 @@ export const track = async ( ): Promise => { return; }; + +export const trackFlowBuild = async ( + flowName: string, + isError?: boolean, + properties?: Record, +): Promise => { + return; +}; + +export const trackDataLoaded = async ( + flowId?: string, + flowName?: string, + component?: string, + componentId?: string, +): Promise => { + return; +}; diff --git a/src/frontend/src/stores/flowStore.ts b/src/frontend/src/stores/flowStore.ts index b869a348a..8564a5c3e 100644 --- a/src/frontend/src/stores/flowStore.ts +++ b/src/frontend/src/stores/flowStore.ts @@ -2,7 +2,12 @@ import { BROKEN_EDGES_WARNING, componentsToIgnoreUpdate, } from "@/constants/constants"; -import { track } from "@/customization/utils/analytics"; +import { ENABLE_DATASTAX_LANGFLOW } from "@/customization/feature-flags"; +import { + track, + trackDataLoaded, + trackFlowBuild, +} from "@/customization/utils/analytics"; import { brokenEdgeMessage } from "@/utils/utils"; import { EdgeChange, @@ -19,7 +24,7 @@ import { MISSED_ERROR_ALERT, } from "../constants/alerts_constants"; import { BuildStatus } from "../constants/enums"; -import { VertexBuildTypeAPI } from "../types/api"; +import { LogsLogType, VertexBuildTypeAPI } from "../types/api"; import { ChatInputType, ChatOutputType } from "../types/chat"; import { AllNodeType, @@ -699,6 +704,28 @@ const useFlowStore = create((set, get) => ({ ...get().verticesBuild!.verticesIds, ...next_vertices_ids, ]; + if ( + ENABLE_DATASTAX_LANGFLOW && + vertexBuildData?.id?.includes("AstraDB") + ) { + const search_results: LogsLogType[] = Object.values( + vertexBuildData?.data?.logs?.search_results, + ); + search_results.forEach((log) => { + if ( + log.message.includes("Adding") && + log.message.includes("documents") && + log.message.includes("Vector Store") + ) { + trackDataLoaded( + get().currentFlow?.id, + get().currentFlow?.name, + "AstraDB Vector Store", + vertexBuildData?.id, + ); + } + }); + } get().updateVerticesBuild({ verticesIds: newIds, verticesLayers: newLayers, @@ -747,6 +774,9 @@ const useFlowStore = create((set, get) => ({ false, ); get().setIsBuilding(false); + trackFlowBuild(get().currentFlow?.name ?? "Unknown", false, { + flowId: get().currentFlow?.id, + }); }, onBuildUpdate: handleBuildUpdate, onBuildError: (title: string, list: string[], elementList) => { @@ -767,6 +797,10 @@ const useFlowStore = create((set, get) => ({ setErrorData({ list, title }); get().setIsBuilding(false); get().buildController.abort(); + trackFlowBuild(get().currentFlow?.name ?? "Unknown", true, { + flowId: get().currentFlow?.id, + error: list, + }); }, onBuildStart: (elementList) => { const idList = elementList