diff --git a/packages/workflow/src/interfaces.ts b/packages/workflow/src/interfaces.ts index 514afdcf04..6510a7dac9 100644 --- a/packages/workflow/src/interfaces.ts +++ b/packages/workflow/src/interfaces.ts @@ -2633,6 +2633,7 @@ export interface INodeGraphItem { runs?: number; items_total?: number; metric_names?: string[]; + language?: string; // only for Code node: 'javascript' or 'python' } export interface INodeNameIndex { diff --git a/packages/workflow/src/telemetry-helpers.ts b/packages/workflow/src/telemetry-helpers.ts index dd4322a8b8..30cc0567cd 100644 --- a/packages/workflow/src/telemetry-helpers.ts +++ b/packages/workflow/src/telemetry-helpers.ts @@ -5,6 +5,7 @@ import { CHAIN_LLM_LANGCHAIN_NODE_TYPE, CHAIN_SUMMARIZATION_LANGCHAIN_NODE_TYPE, CHAT_TRIGGER_NODE_TYPE, + CODE_NODE_TYPE, EVALUATION_NODE_TYPE, EVALUATION_TRIGGER_NODE_TYPE, EXECUTE_WORKFLOW_NODE_TYPE, @@ -418,6 +419,10 @@ export function generateNodesGraph( nodeItem.metric_names = (metrics.assignments as Array<{ name: string }> | undefined)?.map( (metric: { name: string }) => metric.name, ); + } else if (node.type === CODE_NODE_TYPE) { + const { language } = node.parameters; + nodeItem.language = + language === undefined ? 'javascript' : language === 'python' ? 'python' : 'unknown'; } else { try { const nodeType = nodeTypes.getByNameAndVersion(node.type, node.typeVersion);