diff --git a/samples/sp_whoIsActive/package-lock.json b/samples/sp_whoIsActive/package-lock.json index 901f9b63eb..2d8c503887 100644 --- a/samples/sp_whoIsActive/package-lock.json +++ b/samples/sp_whoIsActive/package-lock.json @@ -1,6 +1,6 @@ { "name": "whoisactive", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/samples/sp_whoIsActive/package.json b/samples/sp_whoIsActive/package.json index 96b321e6e5..8037d97281 100644 --- a/samples/sp_whoIsActive/package.json +++ b/samples/sp_whoIsActive/package.json @@ -2,7 +2,7 @@ "name": "whoisactive", "displayName": "whoisactive", "description": "sp_whoisactive for SQL Operations Studio", - "version": "0.1.0", + "version": "0.1.1", "publisher": "Microsoft", "preview": true, "engines": { @@ -24,7 +24,7 @@ "commands": [ { "command": "sp_whoisactive.install", - "title": "Install sp_whoisactive", + "title": "Whoisactive: Install sp_whoisactive", "icon": { "light": "./out/src/media/download.svg", "dark": "./out/src/media/download_inverse.svg" @@ -32,7 +32,7 @@ }, { "command": "sp_whoisactive.findBlockLeaders", - "title": "Find leader of block", + "title": "Whoisactive: Find leader of block", "icon": { "light": "./out/src/media/blocker.svg", "dark": "./out/src/media/blocker_inverse.svg" @@ -40,11 +40,19 @@ }, { "command": "sp_whoisactive.getPlans", - "title": "Get plans", + "title": "Whoisactive: Get plans", "icon": { "light": "./out/src/media/monitor.svg", "dark": "./out/src/media/monitor_inverse.svg" } + }, + { + "command": "sp_whoisactive.documentation", + "title": "Whoisactive: Documentation", + "icon": { + "light": "./out/src/media/documentation.svg", + "dark": "./out/src/media/documentation_inverse.svg" + } } ], "views": {}, @@ -55,30 +63,7 @@ "title": "sp_whoisactive", "description": "Extension for checking who is active.", "container": { - "nav-section": [ - { - "id": "sp_whoisactive_insights", - "title": "Insights", - "icon": { - "light": "./out/src/media/insights.svg", - "dark": "./out/src/media/insights_inverse.svg" - }, - "container": { - "sp_whoisactive-insights": {} - } - }, - { - "id": "sp_whoisactive_documentation", - "title": "Documentation", - "icon": { - "light": "./out/src/media/documentation.svg", - "dark": "./out/src/media/documentation_inverse.svg" - }, - "container": { - "webview-container": null - } - } - ] + "sp_whoisactive-insights": {} } } ], @@ -92,7 +77,8 @@ "dataType": "number", "legendPosition": "none", "labelFirstColumn": false, - "columnsAsLabels": true + "columnsAsLabels": true, + "showTopNData": 5 } }, "queryFile": "./out/src/sql/cpuUsage.sql" @@ -107,7 +93,8 @@ "dataType": "number", "legendPosition": "none", "labelFirstColumn": false, - "columnsAsLabels": true + "columnsAsLabels": true, + "showTopNData": 5 } }, "queryFile": "./out/src/sql/cpuDelta.sql" @@ -122,7 +109,8 @@ "dataType": "number", "legendPosition": "none", "labelFirstColumn": false, - "columnsAsLabels": true + "columnsAsLabels": true, + "showTopNData": 5 } }, "queryFile": "./out/src/sql/memoryUsage.sql" @@ -137,11 +125,21 @@ "dataType": "number", "legendPosition": "none", "labelFirstColumn": false, - "columnsAsLabels": true + "columnsAsLabels": true, + "showTopNData": 5 } }, "queryFile": "./out/src/sql/memoryDelta.sql" } + }, + { + "id": "sp_whoisactive-blocking_sessions", + "contrib": { + "type": { + "table": null + }, + "queryFile": "./out/src/sql/blockingSessions.sql" + } } ], "dashboard.containers": [ @@ -155,12 +153,13 @@ "tasks-widget": [ "sp_whoisactive.getPlans", "sp_whoisactive.findBlockLeaders", + "sp_whoisactive.documentation", "sp_whoisactive.install" ] } }, { - "name": "CPU Usage", + "name": "Top 5 CPU Usage", "gridItemConfig": { "sizex": 2, "sizey": 1 @@ -170,7 +169,7 @@ } }, { - "name": "CPU Delta", + "name": "Top 5 CPU Delta", "gridItemConfig": { "sizex": 2, "sizey": 1 @@ -180,7 +179,7 @@ } }, { - "name": "Memory Usage", + "name": "Top 5 Memory Usage", "gridItemConfig": { "sizex": 2, "sizey": 1 @@ -190,7 +189,7 @@ } }, { - "name": "Memory Delta", + "name": "Top 5 Memory Delta", "gridItemConfig": { "sizex": 2, "sizey": 1 @@ -198,6 +197,16 @@ "widget": { "sp_whoisactive-memory-delta": {} } + }, + { + "name": "Blocking Sessions", + "gridItemConfig": { + "sizex": 2, + "sizey": 1 + }, + "widget": { + "sp_whoisactive-blocking_sessions": {} + } } ] } diff --git a/samples/sp_whoIsActive/src/controllers/mainController.ts b/samples/sp_whoIsActive/src/controllers/mainController.ts index 0dc17dfd94..0597e89cf5 100644 --- a/samples/sp_whoIsActive/src/controllers/mainController.ts +++ b/samples/sp_whoIsActive/src/controllers/mainController.ts @@ -29,23 +29,16 @@ export default class MainController extends ControllerBase { } public activate(): Promise { - sqlops.dashboard.registerWebviewProvider('sp_whoisactive_documentation', webview => { - let templateValues = {url: 'http://whoisactive.com/docs/'}; - Utils.renderTemplateHtml(path.join(__dirname, '..'), 'templateTab.html', templateValues) - .then(html => { - webview.html = html; - }); - }); - - sqlops.tasks.registerTask('sp_whoisactive.install', e => this.onInstall(e)); + sqlops.tasks.registerTask('sp_whoisactive.install', e => this.openurl('http://whoisactive.com/downloads/')); + sqlops.tasks.registerTask('sp_whoisactive.documentation', e => this.openurl('http://whoisactive.com/docs/')); sqlops.tasks.registerTask('sp_whoisactive.findBlockLeaders', e => this.onExecute(e, 'findBlockLeaders.sql')); sqlops.tasks.registerTask('sp_whoisactive.getPlans', e => this.onExecute(e, 'getPlans.sql')); return Promise.resolve(true); } - private onInstall(connection: sqlops.IConnectionProfile): void { - openurl.open('http://whoisactive.com/downloads/'); + private openurl(link: string): void { + openurl.open(link); } private onExecute(connection: sqlops.IConnectionProfile, fileName: string): void { diff --git a/samples/sp_whoIsActive/src/sql/blockingSessions.sql b/samples/sp_whoIsActive/src/sql/blockingSessions.sql new file mode 100644 index 0000000000..c5a1f2e96d --- /dev/null +++ b/samples/sp_whoIsActive/src/sql/blockingSessions.sql @@ -0,0 +1,4 @@ +SELECT blocking_session_id +FROM sys.dm_os_waiting_tasks +WHERE + blocking_session_id IS NOT NULL \ No newline at end of file