From daa6461d9b3943650fcda202ff2d2f20f21a20ee Mon Sep 17 00:00:00 2001 From: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com> Date: Mon, 23 Jun 2025 13:25:25 +0200 Subject: [PATCH] chore: bulk metrics - remove a flag (#10190) --- src/lib/db/client-instance-store.ts | 29 ------------------- .../metrics/instance/instance-service.ts | 21 ++++---------- src/lib/types/experimental.ts | 5 ---- src/lib/types/stores/client-instance-store.ts | 5 ---- .../fixtures/fake-client-instance-store.ts | 4 --- 5 files changed, 6 insertions(+), 58 deletions(-) diff --git a/src/lib/db/client-instance-store.ts b/src/lib/db/client-instance-store.ts index bf61a076cb..516259153e 100644 --- a/src/lib/db/client-instance-store.ts +++ b/src/lib/db/client-instance-store.ts @@ -71,35 +71,6 @@ export default class ClientInstanceStore implements IClientInstanceStore { } } - /** - * @deprecated - * `bulkUpsert` is beeing used instead. remove with `lastSeenBulkQuery` flag - */ - async setLastSeen({ - appName, - instanceId, - environment, - clientIp, - }: INewClientInstance): Promise { - const stopTimer = this.metricTimer('setLastSeen'); - - await this.db(TABLE) - .insert({ - app_name: appName, - instance_id: instanceId, - environment, - last_seen: new Date(), - client_ip: clientIp, - }) - .onConflict(['app_name', 'instance_id', 'environment']) - .merge({ - last_seen: new Date(), - client_ip: clientIp, - }); - - stopTimer(); - } - async bulkUpsert(instances: INewClientInstance[]): Promise { const stopTimer = this.metricTimer('bulkUpsert'); diff --git a/src/lib/features/metrics/instance/instance-service.ts b/src/lib/features/metrics/instance/instance-service.ts index 82a8aea1a4..acc4ef4c53 100644 --- a/src/lib/features/metrics/instance/instance-service.ts +++ b/src/lib/features/metrics/instance/instance-service.ts @@ -101,21 +101,12 @@ export default class ClientInstanceService { ): Promise { const value = await clientMetricsSchema.validateAsync(data); - if (this.flagResolver.isEnabled('lastSeenBulkQuery')) { - this.seenClients[this.clientKey(value)] = { - appName: value.appName, - instanceId: value.instanceId, - environment: value.environment, - clientIp: clientIp, - }; - } else { - await this.clientInstanceStore.setLastSeen({ - appName: value.appName, - instanceId: value.instanceId, - environment: value.environment, - clientIp: clientIp, - }); - } + this.seenClients[this.clientKey(value)] = { + appName: value.appName, + instanceId: value.instanceId, + environment: value.environment, + clientIp: clientIp, + }; } public registerFrontendClient(data: IFrontendClientApp): void { diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 5d2f714e73..7bb2478619 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -56,7 +56,6 @@ export type IFlagKey = | 'edgeObservability' | 'registerFrontendClient' | 'reportUnknownFlags' - | 'lastSeenBulkQuery' | 'lifecycleMetrics' | 'customMetrics' | 'impactMetrics' @@ -267,10 +266,6 @@ const flags: IFlags = { process.env.UNLEASH_EXPERIMENTAL_REPORT_UNKNOWN_FLAGS, false, ), - lastSeenBulkQuery: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_LAST_SEEN_BULK_QUERY, - false, - ), lifecycleMetrics: parseEnvVarBoolean( process.env.UNLEASH_EXPERIMENTAL_LIFECYCLE_METRICS, false, diff --git a/src/lib/types/stores/client-instance-store.ts b/src/lib/types/stores/client-instance-store.ts index e835664cce..36695cd474 100644 --- a/src/lib/types/stores/client-instance-store.ts +++ b/src/lib/types/stores/client-instance-store.ts @@ -18,11 +18,6 @@ export interface IClientInstanceStore Pick > { bulkUpsert(instances: INewClientInstance[]): Promise; - /** - * @deprecated - * `bulkUpsert` is beeing used instead. remove with `lastSeenBulkQuery` flag - */ - setLastSeen(INewClientInstance): Promise; insert(details: INewClientInstance): Promise; getByAppName(appName: string): Promise; getRecentByAppNameAndEnvironment( diff --git a/src/test/fixtures/fake-client-instance-store.ts b/src/test/fixtures/fake-client-instance-store.ts index ffcce9dea4..4be697f1a2 100644 --- a/src/test/fixtures/fake-client-instance-store.ts +++ b/src/test/fixtures/fake-client-instance-store.ts @@ -28,10 +28,6 @@ export default class FakeClientInstanceStore implements IClientInstanceStore { ); } - setLastSeen(): Promise { - return Promise.resolve(); - } - async getBySdkName(sdkName: string): Promise { return this.instances.filter((instance) => instance.sdkVersion?.startsWith(sdkName),