Investigate memory leak (#19213)
In search for cache leak + Remove old instrumentation
This commit is contained in:
-32
@@ -1,5 +1,3 @@
|
||||
import { Logger } from '@nestjs/common';
|
||||
|
||||
import { type Request } from 'express';
|
||||
import { DocumentNode, parse } from 'graphql';
|
||||
import { type Plugin } from 'graphql-yoga';
|
||||
@@ -7,15 +5,12 @@ import { FeatureFlagKey } from 'twenty-shared/types';
|
||||
|
||||
import { isNull } from '@sniptt/guards';
|
||||
import { type DirectExecutionService } from 'src/engine/api/graphql/direct-execution/direct-execution.service';
|
||||
import { queryTimingContextStorage } from 'src/engine/core-modules/graphql/storage/query-timing-context.storage';
|
||||
import { computeSkipWorkspaceSchemaCreation } from 'src/engine/api/graphql/direct-execution/utils/compute-skip-workspace-schema-creation.util';
|
||||
import { findOperationDefinition } from 'src/engine/api/graphql/direct-execution/utils/find-operation-definition.util';
|
||||
import { hasOnlyGeneratedWorkspaceResolvers } from 'src/engine/api/graphql/direct-execution/utils/has-only-generated-workspace-resolvers.util';
|
||||
import { isSubscriptionOperation } from 'src/engine/api/graphql/direct-execution/utils/is-subscription-operation.util';
|
||||
import { type FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
||||
|
||||
const logger = new Logger('GraphQLQueryTiming');
|
||||
|
||||
export type DirectExecutionPluginConfig = {
|
||||
directExecutionService: DirectExecutionService;
|
||||
featureFlagService: FeatureFlagService;
|
||||
@@ -89,33 +84,6 @@ export function useDirectExecution(
|
||||
return;
|
||||
}
|
||||
|
||||
const isTimingEnabled = await config.featureFlagService.isFeatureEnabled(
|
||||
FeatureFlagKey.IS_GRAPHQL_QUERY_TIMING_ENABLED,
|
||||
req.workspace.id,
|
||||
);
|
||||
|
||||
const resolvedOperationName = operationName ?? 'Anonymous';
|
||||
|
||||
if (isTimingEnabled) {
|
||||
const startTime = performance.now();
|
||||
|
||||
const timedResult = await queryTimingContextStorage.run(true, () =>
|
||||
config.directExecutionService.execute(req, document),
|
||||
);
|
||||
|
||||
const durationMs = (performance.now() - startTime).toFixed(2);
|
||||
|
||||
logger.log(
|
||||
`[direct-execution] ${resolvedOperationName} — ${durationMs}ms (workspace: ${req.workspace.id})`,
|
||||
);
|
||||
|
||||
if (isNull(timedResult)) {
|
||||
return;
|
||||
}
|
||||
|
||||
return endResponse(Response.json(timedResult));
|
||||
}
|
||||
|
||||
const result = await config.directExecutionService.execute(req, document);
|
||||
|
||||
if (isNull(result)) {
|
||||
|
||||
Reference in New Issue
Block a user