fix(editor): Add telemetry to workflow history (#7811)

This commit is contained in:
Csaba Tuncsik
2023-11-29 09:09:21 +01:00
committed by GitHub
parent c0633987bf
commit d4970410e1
3 changed files with 83 additions and 15 deletions

View File

@@ -17,6 +17,7 @@ import WorkflowHistoryContent from '@/components/WorkflowHistory/WorkflowHistory
import { useWorkflowHistoryStore } from '@/stores/workflowHistory.store';
import { useUIStore } from '@/stores/ui.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { telemetry } from '@/plugins/telemetry';
type WorkflowHistoryActionRecord = {
[K in Uppercase<WorkflowHistoryActionTypes[number]>]: Lowercase<K>;
@@ -73,6 +74,12 @@ const isFirstItemShown = computed(
);
const evaluatedPruneTime = computed(() => Math.floor(workflowHistoryStore.evaluatedPruneTime / 24));
const sendTelemetry = (event: string) => {
telemetry.track(event, {
workflow_id: route.params.workflowId,
});
};
const loadMore = async (queryParams: WorkflowHistoryRequestParams) => {
const history = await workflowHistoryStore.getWorkflowHistory(
route.params.workflowId,
@@ -83,6 +90,7 @@ const loadMore = async (queryParams: WorkflowHistoryRequestParams) => {
};
onBeforeMount(async () => {
sendTelemetry('User opened workflow history');
try {
const [workflow] = await Promise.all([
workflowsStore.fetchWorkflow(route.params.workflowId),
@@ -233,15 +241,19 @@ const onAction = async ({
switch (action) {
case WORKFLOW_HISTORY_ACTIONS.OPEN:
openInNewTab(id);
sendTelemetry('User opened version in new tab');
break;
case WORKFLOW_HISTORY_ACTIONS.DOWNLOAD:
await workflowHistoryStore.downloadVersion(route.params.workflowId, id, data);
sendTelemetry('User downloaded version');
break;
case WORKFLOW_HISTORY_ACTIONS.CLONE:
await cloneWorkflowVersion(id, data);
sendTelemetry('User cloned version');
break;
case WORKFLOW_HISTORY_ACTIONS.RESTORE:
await restoreWorkflowVersion(id, data);
sendTelemetry('User restored version');
break;
}
} catch (error) {
@@ -259,6 +271,7 @@ const onAction = async ({
const onPreview = async ({ event, id }: { event: MouseEvent; id: WorkflowVersionId }) => {
if (event.metaKey || event.ctrlKey) {
openInNewTab(id);
sendTelemetry('User opened version in new tab');
} else {
await router.push({
name: VIEWS.WORKFLOW_HISTORY,
@@ -283,6 +296,7 @@ watchEffect(async () => {
route.params.workflowId,
route.params.versionId,
);
sendTelemetry('User selected version');
} catch (error) {
toast.showError(
new Error(`${error.message} "${route.params.versionId}"&nbsp;`),