提交 51e7a0b5 编写于 作者: R Rob Lourens

Add 'reason' to search telemetry

上级 b681f6a8
......@@ -73,6 +73,9 @@ export interface IFolderQuery<U extends UriComponents=uri> {
}
export interface ICommonQueryProps<U extends UriComponents> {
/** For telemetry - indicates what is triggering the source */
_reason?: string;
folderQueries?: IFolderQuery<U>[];
includePattern?: glob.IExpression;
excludePattern?: glob.IExpression;
......
......@@ -150,7 +150,8 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape {
type: QueryType.File,
maxResults,
disregardExcludeSettings: excludePatternOrDisregardExcludes === false,
useRipgrep
useRipgrep,
_reason: 'startFileSearch'
};
if (typeof includePattern === 'string') {
query.includePattern = { [includePattern]: true };
......@@ -178,6 +179,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape {
const queryBuilder = this._instantiationService.createInstance(QueryBuilder);
const query = queryBuilder.text(pattern, folders, options);
query._reason = 'startTextSearch';
const onProgress = (p: ISearchProgressItem) => {
if (p.matches) {
......@@ -204,6 +206,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape {
const queryBuilder = this._instantiationService.createInstance(QueryBuilder);
const folders = this._contextService.getWorkspace().folders.map(folder => folder.uri);
const query = queryBuilder.file(folders, {
_reason: 'checkExists',
includePattern: includes.join(', '),
exists: true
});
......
......@@ -202,6 +202,7 @@ export class OpenFileHandler extends QuickOpenHandler {
private doResolveQueryOptions(query: IPreparedQuery, cacheKey?: string, maxSortedResults?: number): IFileQueryBuilderOptions {
const queryOptions: IFileQueryBuilderOptions = {
_reason: 'openFileHandler',
extraFileResources: getOutOfWorkspaceEditorResources(this.editorService, this.contextService),
filePattern: query.value,
cacheKey
......@@ -226,6 +227,7 @@ export class OpenFileHandler extends QuickOpenHandler {
private cacheQuery(cacheKey: string): IFileQuery {
const options: IFileQueryBuilderOptions = {
_reason: 'openFileHandler',
extraFileResources: getOutOfWorkspaceEditorResources(this.editorService, this.contextService),
filePattern: '',
cacheKey: cacheKey,
......
......@@ -1053,6 +1053,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
250;
const options: ITextQueryBuilderOptions = {
_reason: 'searchView',
extraFileResources: getOutOfWorkspaceEditorResources(this.editorService, this.contextService),
maxResults: SearchView.MAX_TEXT_RESULTS,
disregardIgnoreFiles: !useExcludesAndIgnoreFiles,
......
......@@ -30,6 +30,7 @@ export interface ISearchPathsResult {
}
export interface ICommonQueryBuilderOptions {
_reason?: string;
excludePattern?: string;
includePattern?: string;
extraFileResources?: uri[];
......@@ -115,6 +116,7 @@ export class QueryBuilder {
});
const queryProps: ICommonQueryProps<uri> = {
_reason: options._reason,
folderQueries: folderQueries || [],
usingSearchPaths: !!(searchPaths && searchPaths.length),
extraFileResources: options.extraFileResources,
......
......@@ -121,7 +121,7 @@ export class SearchService extends Disposable implements ISearchService {
return this.doSearch(query, token);
}
private doSearch(query: ITextQuery | IFileQuery, token?: CancellationToken, onProgress?: (item: ISearchProgressItem) => void): TPromise<ISearchComplete> {
private doSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (item: ISearchProgressItem) => void): TPromise<ISearchComplete> {
const schemesInQuery = this.getSchemesInQuery(query);
const providerActivations: TPromise<any>[] = [TPromise.wrap(null)];
......@@ -266,6 +266,7 @@ export class SearchService extends Disposable implements ISearchService {
/* __GDPR__
"cachedSearchComplete" : {
"reason" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
"resultCount" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"workspaceFolderCount" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"type" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
......@@ -279,6 +280,7 @@ export class SearchService extends Disposable implements ISearchService {
}
*/
this.telemetryService.publicLog('cachedSearchComplete', {
reason: query._reason,
resultCount: fileSearchStats.resultCount,
workspaceFolderCount: query.folderQueries.length,
type: fileSearchStats.type,
......@@ -295,6 +297,7 @@ export class SearchService extends Disposable implements ISearchService {
/* __GDPR__
"searchComplete" : {
"reason" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
"resultCount" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"workspaceFolderCount" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"type" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" },
......@@ -310,6 +313,7 @@ export class SearchService extends Disposable implements ISearchService {
}
*/
this.telemetryService.publicLog('searchComplete', {
reason: query._reason,
resultCount: fileSearchStats.resultCount,
workspaceFolderCount: query.folderQueries.length,
type: fileSearchStats.type,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册