Skip to content

Commit

Permalink
Merge branch 'dev' into claims_bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
Robbie-Microsoft committed Apr 26, 2024
2 parents 474a6c3 + 31a7001 commit fe49721
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "minor",
"comment": "Make performanceClient.discardMeasurements() flush aux cache data in addition to measurements #7061",
"packageName": "@azure/msal-common",
"email": "[email protected]",
"dependentChangeType": "patch"
}
13 changes: 2 additions & 11 deletions lib/msal-common/src/telemetry/performance/PerformanceClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ export abstract class PerformanceClient implements IPerformanceClient {

if (isRoot) {
queueInfo = this.getQueueInfo(event.correlationId);
this.discardCache(rootEvent.correlationId);
this.discardMeasurements(rootEvent.correlationId);
} else {
rootEvent.incompleteSubMeasurements?.delete(event.eventId);
}
Expand Down Expand Up @@ -781,7 +781,7 @@ export abstract class PerformanceClient implements IPerformanceClient {
}

/**
* Removes measurements for a given correlation id.
* Removes measurements and aux data for a given correlation id.
*
* @param {string} correlationId
*/
Expand All @@ -791,15 +791,6 @@ export abstract class PerformanceClient implements IPerformanceClient {
correlationId
);
this.eventsByCorrelationId.delete(correlationId);
}

/**
* Removes cache for a given correlation id.
*
* @param {string} correlationId correlation identifier
*/
private discardCache(correlationId: string): void {
this.discardMeasurements(correlationId);

this.logger.trace(
"PerformanceClient: QueueMeasurements discarded",
Expand Down
76 changes: 75 additions & 1 deletion lib/msal-common/test/telemetry/PerformanceClient.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ export class MockPerformanceClient
eventName: PerformanceEvents,
correlationId?: string | undefined
): void {
return;
this.preQueueTimeByCorrelationId.set(correlationId || "", {
name: eventName,
time: 12345,
});
}

getDurationMs(startTimeMs: number): number {
Expand Down Expand Up @@ -1122,4 +1125,75 @@ describe("PerformanceClient.spec.ts", () => {
rootEvent.end({ success: true });
});
});

describe("discard", () => {
it("discards cache data", () => {
const mockPerfClient = new MockPerformanceClient();
const correlationId = "test-correlation-id";
const dummyCorrelationId = "dummy-correlation-id";

const rootEvent = mockPerfClient.startMeasurement(
PerformanceEvents.AcquireTokenSilent,
correlationId
);
const firstEvent = mockPerfClient.startMeasurement(
PerformanceEvents.AcquireTokenSilentAsync,
correlationId
);
mockPerfClient.setPreQueueTime(
PerformanceEvents.AcquireTokenSilentAsync,
correlationId
);
const secondEvent = mockPerfClient.startMeasurement(
PerformanceEvents.AcquireTokenFromCache,
correlationId
);
mockPerfClient.setPreQueueTime(
PerformanceEvents.AcquireTokenFromCache,
correlationId
);
secondEvent.end({ success: true });
firstEvent.end({ success: true });
rootEvent.discard();

mockPerfClient.startMeasurement(
PerformanceEvents.AcquireTokenSilent,
dummyCorrelationId
);
mockPerfClient.setPreQueueTime(
PerformanceEvents.AcquireTokenSilent,
dummyCorrelationId
);

expect(
// @ts-ignore
mockPerfClient.eventsByCorrelationId.has(correlationId)
).toBeFalsy();
expect(
// @ts-ignore
mockPerfClient.preQueueTimeByCorrelationId.has(correlationId)
).toBeFalsy();
expect(
// @ts-ignore
mockPerfClient.queueMeasurements.has(correlationId)
).toBeFalsy();
// @ts-ignore
expect(mockPerfClient.eventStack.has(correlationId)).toBeFalsy();

expect(
// @ts-ignore
mockPerfClient.eventsByCorrelationId.has(dummyCorrelationId)
).toBeTruthy();
expect(
// @ts-ignore
mockPerfClient.preQueueTimeByCorrelationId.has(
dummyCorrelationId
)
).toBeTruthy();
expect(
// @ts-ignore
mockPerfClient.eventStack.has(dummyCorrelationId)
).toBeTruthy();
});
});
});

0 comments on commit fe49721

Please sign in to comment.