Skip to content

Commit

Permalink
Updated start event trigger point and added workspaceChange event re-…
Browse files Browse the repository at this point in the history
…trigger

ensure workspaceChangeEvent interval is triggered only once
  • Loading branch information
Achal1607 committed Jan 13, 2025
1 parent 61e389e commit 1414fbc
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 7 deletions.
4 changes: 1 addition & 3 deletions vscode/src/lsp/initializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,7 @@ export const clientInit = () => {
const client = NbLanguageClient.build(connection, LOGGER);

LOGGER.log('Language Client: Starting');
client.start().then(() => {
Telemetry.enqueueStartEvent();

client.start().then(() => {
registerListenersAfterClientInit();
registerNotificationListeners(client);
registerRequestListeners(client);
Expand Down
1 change: 1 addition & 0 deletions vscode/src/telemetry/events/start.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export class ExtensionStartEvent extends BaseEvent<StartEventData> {
}

onSuccessPostEventCallback = async (): Promise<void> => {
LOGGER.debug(`Start event sent successfully`);
this.addEventToCache();
}

Expand Down
13 changes: 13 additions & 0 deletions vscode/src/telemetry/events/workspaceChange.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { LOGGER } from "../../logger";
import { Telemetry } from "../telemetry";
import { BaseEvent } from "./baseEvent";

interface ProjectInfo {
Expand All @@ -30,11 +32,22 @@ export interface WorkspaceChangeData {
projInitTimeTaken: number;
}

let workspaceChangeEventTimeout: NodeJS.Timeout | null = null;

export class WorkspaceChangeEvent extends BaseEvent<WorkspaceChangeData> {
public static readonly NAME = "workspaceChange";
public static readonly ENDPOINT = "/workspaceChange";

constructor(payload: WorkspaceChangeData) {
super(WorkspaceChangeEvent.NAME, WorkspaceChangeEvent.ENDPOINT, payload);
}

public onSuccessPostEventCallback = async (): Promise<void> => {
LOGGER.debug(`WorkspaceChange event sent successfully`);
if (workspaceChangeEventTimeout != null) {
clearTimeout(workspaceChangeEventTimeout);
workspaceChangeEventTimeout = null;
}
workspaceChangeEventTimeout = setTimeout(() => Telemetry.sendTelemetry(this), 60 * 60 * 24 * 1000);
};
}
4 changes: 0 additions & 4 deletions vscode/src/telemetry/telemetry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,6 @@ export namespace Telemetry {
enqueueEvent((reporter) => reporter.addEventToQueue(event));
}

export const enqueueStartEvent = (): void => {
enqueueEvent((reporter) => reporter.startEvent());
}

export const enqueueCloseEvent = (): void => {
enqueueEvent((reporter) => reporter.closeEvent());
}
Expand Down
1 change: 1 addition & 0 deletions vscode/src/telemetry/telemetryManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ export class TelemetryManager {
}
if (this.settings.isExtTelemetryEnabled) {
this.telemetryRetryManager.startTimer();
this.reporter?.startEvent();
}
}
};

0 comments on commit 1414fbc

Please sign in to comment.