Send search events less often (#241406)

This commit is contained in:
Rob Lourens
2025-02-20 16:02:00 -08:00
committed by GitHub
parent 69f9bc0d19
commit e4dc4aed18
2 changed files with 11 additions and 0 deletions
+5
View File
@@ -158,3 +158,8 @@ export const randomInt = (max: number, min: number = 0): number => {
return Math.round(min + randomFloat);
};
export function randomChance(p: number): boolean {
assert(p >= 0 && p <= 1, 'p must be between 0 and 1');
return Math.random() < p;
}
@@ -10,6 +10,7 @@ import { CancellationError } from '../../../../base/common/errors.js';
import { Disposable, IDisposable, toDisposable } from '../../../../base/common/lifecycle.js';
import { ResourceMap, ResourceSet } from '../../../../base/common/map.js';
import { Schemas } from '../../../../base/common/network.js';
import { randomChance } from '../../../../base/common/numbers.js';
import { StopWatch } from '../../../../base/common/stopwatch.js';
import { isNumber } from '../../../../base/common/types.js';
import { URI, URI as uri } from '../../../../base/common/uri.js';
@@ -355,6 +356,11 @@ export class SearchService extends Disposable implements ISearchService {
}
private sendTelemetry(query: ISearchQuery, endToEndTime: number, complete?: ISearchComplete, err?: SearchError): void {
if (!randomChance(5 / 100)) {
// Noisy events, only send 5% of them
return;
}
const fileSchemeOnly = query.folderQueries.every(fq => fq.folder.scheme === Schemas.file);
const otherSchemeOnly = query.folderQueries.every(fq => fq.folder.scheme !== Schemas.file);
const scheme = fileSchemeOnly ? Schemas.file :