mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-27 01:25:36 -05:00
Adding telemetry to ads OE filter (#23089)
* Adding telemetry to ads oe filter * Fixing prop names * fixing prop name * Fixing localized strings * Update src/sql/azdata.proposed.d.ts Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Update src/sql/workbench/contrib/objectExplorer/browser/serverTreeView.ts Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> --------- Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
4
src/sql/azdata.proposed.d.ts
vendored
4
src/sql/azdata.proposed.d.ts
vendored
@@ -1797,6 +1797,10 @@ declare module 'azdata' {
|
||||
}
|
||||
|
||||
export interface NodeFilterProperty {
|
||||
/**
|
||||
* The non-localized name of the filter property
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* The name of the filter property displayed to the user
|
||||
*/
|
||||
|
||||
@@ -50,7 +50,8 @@ export const enum TelemetryView {
|
||||
ResultsPanel = 'ResultsPanel',
|
||||
Shell = 'Shell',
|
||||
SqlAssessment = 'SqlAssessment',
|
||||
TableDesigner = 'TableDesigner'
|
||||
TableDesigner = 'TableDesigner',
|
||||
ObjectExplorer = 'ObjectExplorer'
|
||||
}
|
||||
|
||||
export const enum TelemetryError {
|
||||
@@ -98,6 +99,8 @@ export const enum TelemetryAction {
|
||||
MoveServerGroup = 'MoveServerGroup',
|
||||
NewQuery = 'NewQuery',
|
||||
ObjectExplorerExpand = 'ObjectExplorerExpand',
|
||||
ObjectExplorerFilter = 'ObjectExplorerFilter',
|
||||
ObjectExplorerRemoveFilter = 'ObjectExplorerRemoveFilter',
|
||||
Open = 'Open',
|
||||
OpenQuery = 'OpenQuery',
|
||||
OpenExecutionPlanProperties = 'OpenExecutionPlanProperties',
|
||||
|
||||
@@ -48,6 +48,8 @@ import { IHostService } from 'vs/workbench/services/host/browser/host';
|
||||
import { USE_ASYNC_SERVER_TREE_CONFIG } from 'sql/workbench/contrib/objectExplorer/common/serverGroup.contribution';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { FilterDialog } from 'sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog';
|
||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
|
||||
export const CONTEXT_SERVER_TREE_VIEW = new RawContextKey<ServerTreeViewView>('serverTreeView.view', ServerTreeViewView.all);
|
||||
export const CONTEXT_SERVER_TREE_HAS_CONNECTIONS = new RawContextKey<boolean>('serverTreeView.hasConnections', false);
|
||||
@@ -79,7 +81,8 @@ export class ServerTreeView extends Disposable implements IServerTreeView {
|
||||
@IKeybindingService private _keybindingService: IKeybindingService,
|
||||
@IContextKeyService contextKeyService: IContextKeyService,
|
||||
@IHostService private _hostService: IHostService,
|
||||
@INotificationService private _notificationService: INotificationService
|
||||
@INotificationService private _notificationService: INotificationService,
|
||||
@IAdsTelemetryService private _telemetryService: IAdsTelemetryService
|
||||
) {
|
||||
super();
|
||||
this._hasConnectionsKey = CONTEXT_SERVER_TREE_HAS_CONNECTIONS.bindTo(contextKeyService);
|
||||
@@ -619,6 +622,13 @@ export class ServerTreeView extends Disposable implements IServerTreeView {
|
||||
if (errorListener) {
|
||||
errorListener.dispose();
|
||||
}
|
||||
|
||||
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.ObjectExplorer, TelemetryKeys.TelemetryAction.ObjectExplorerFilter)
|
||||
.withAdditionalProperties({
|
||||
filterPropertyNames: JSON.stringify(filters.map(f => node.filterProperties.find(p => f.displayName === p.displayName)?.name)),
|
||||
filterCount: filters.length,
|
||||
objectType: node.objectType
|
||||
}).send();
|
||||
}
|
||||
return;
|
||||
},
|
||||
|
||||
@@ -39,7 +39,7 @@ suite('ServerTreeView onAddConnectionProfile handler tests', () => {
|
||||
);
|
||||
mockConnectionManagementService.setup(x => x.getConnectionGroups()).returns(x => []);
|
||||
mockConnectionManagementService.setup(x => x.hasRegisteredServers()).returns(() => true);
|
||||
serverTreeView = new ServerTreeView(mockConnectionManagementService.object, instantiationService, undefined, new TestThemeService(), undefined, new TestConfigurationService(), capabilitiesService, undefined, undefined, new MockContextKeyService(), undefined, undefined);
|
||||
serverTreeView = new ServerTreeView(mockConnectionManagementService.object, instantiationService, undefined, new TestThemeService(), undefined, new TestConfigurationService(), capabilitiesService, undefined, undefined, new MockContextKeyService(), undefined, undefined, undefined);
|
||||
mockTree = TypeMoq.Mock.ofType<ITree>(TestTree);
|
||||
(serverTreeView as any)._tree = mockTree.object;
|
||||
mockRefreshTreeMethod = TypeMoq.Mock.ofType(Function);
|
||||
|
||||
@@ -21,6 +21,8 @@ import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { AsyncServerTree, ServerTreeElement } from 'sql/workbench/services/objectExplorer/browser/asyncServerTree';
|
||||
import { SqlIconId } from 'sql/base/common/codicons';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||
|
||||
export interface IServerView {
|
||||
showFilteredTree(filter: string): void;
|
||||
@@ -338,7 +340,8 @@ export class RemoveFilterAction extends Action {
|
||||
private _node: TreeNode,
|
||||
private _tree: AsyncServerTree | ITree,
|
||||
private _profile: ConnectionProfile | undefined,
|
||||
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService
|
||||
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService,
|
||||
@IAdsTelemetryService private _telemetryService: IAdsTelemetryService
|
||||
) {
|
||||
super(id, label);
|
||||
}
|
||||
@@ -362,5 +365,11 @@ export class RemoveFilterAction extends Action {
|
||||
await this._tree.refresh(nodeToRefresh);
|
||||
await this._tree.expand(nodeToRefresh);
|
||||
}
|
||||
this._telemetryService.createActionEvent(
|
||||
TelemetryKeys.TelemetryView.ObjectExplorer,
|
||||
TelemetryKeys.TelemetryAction.ObjectExplorerRemoveFilter
|
||||
).withAdditionalProperties({
|
||||
objectType: node.objectType
|
||||
}).send();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user