mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Add event for connection error (#14564)
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
// Telemetry Event Names
|
// Telemetry Event Names
|
||||||
|
|
||||||
export const DatabaseConnected = 'DatabaseConnected';
|
export const DatabaseConnected = 'DatabaseConnected';
|
||||||
|
export const DatabaseConnectionError = 'DatabaseConnectionError';
|
||||||
export const DatabaseDisconnected = 'DatabaseDisconnected';
|
export const DatabaseDisconnected = 'DatabaseDisconnected';
|
||||||
export const DeleteConnection = 'DeleteConnection';
|
export const DeleteConnection = 'DeleteConnection';
|
||||||
export const AddServerGroup = 'AddServerGroup';
|
export const AddServerGroup = 'AddServerGroup';
|
||||||
|
|||||||
@@ -943,29 +943,6 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private addTelemetryForConnection(connection: ConnectionManagementInfo): void {
|
|
||||||
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.Shell, TelemetryKeys.DatabaseConnected)
|
|
||||||
.withAdditionalProperties({
|
|
||||||
connectionType: connection.serverInfo ? (connection.serverInfo.isCloud ? 'Azure' : 'Standalone') : '',
|
|
||||||
provider: connection.connectionProfile.providerName,
|
|
||||||
serverVersion: connection.serverInfo ? connection.serverInfo.serverVersion : '',
|
|
||||||
serverEdition: connection.serverInfo ? connection.serverInfo.serverEdition : '',
|
|
||||||
serverEngineEdition: connection.serverInfo ? connection.serverInfo.engineEditionId : '',
|
|
||||||
isBigDataCluster: connection.serverInfo?.options?.isBigDataCluster ?? false,
|
|
||||||
extensionConnectionTime: connection.extensionTimer.elapsed() - connection.serviceTimer.elapsed(),
|
|
||||||
serviceConnectionTime: connection.serviceTimer.elapsed()
|
|
||||||
})
|
|
||||||
.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
private addTelemetryForConnectionDisconnected(connection: interfaces.IConnectionProfile): void {
|
|
||||||
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.Shell, TelemetryKeys.DatabaseDisconnected)
|
|
||||||
.withAdditionalProperties({
|
|
||||||
provider: connection.providerName
|
|
||||||
})
|
|
||||||
.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
public onConnectionComplete(handle: number, info: azdata.ConnectionInfoSummary): void {
|
public onConnectionComplete(handle: number, info: azdata.ConnectionInfoSummary): void {
|
||||||
let connection = this._connectionStatusManager.onConnectionComplete(info);
|
let connection = this._connectionStatusManager.onConnectionComplete(info);
|
||||||
|
|
||||||
@@ -977,13 +954,34 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
connection.extensionTimer.stop();
|
connection.extensionTimer.stop();
|
||||||
|
|
||||||
connection.connectHandler(true);
|
connection.connectHandler(true);
|
||||||
this.addTelemetryForConnection(connection);
|
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.Shell, TelemetryKeys.DatabaseConnected)
|
||||||
|
.withAdditionalProperties({
|
||||||
|
connectionType: connection.serverInfo ? (connection.serverInfo.isCloud ? 'Azure' : 'Standalone') : '',
|
||||||
|
provider: connection.connectionProfile.providerName,
|
||||||
|
serverVersion: connection.serverInfo ? connection.serverInfo.serverVersion : '',
|
||||||
|
serverEdition: connection.serverInfo ? connection.serverInfo.serverEdition : '',
|
||||||
|
serverEngineEdition: connection.serverInfo ? connection.serverInfo.engineEditionId : '',
|
||||||
|
isBigDataCluster: connection.serverInfo?.options?.isBigDataCluster ?? false,
|
||||||
|
}).withAdditionalMeasurements({
|
||||||
|
extensionConnectionTimeMs: connection.extensionTimer.elapsed() - connection.serviceTimer.elapsed(),
|
||||||
|
serviceConnectionTimeMs: connection.serviceTimer.elapsed()
|
||||||
|
})
|
||||||
|
.send();
|
||||||
|
|
||||||
if (this._connectionStatusManager.isDefaultTypeUri(info.ownerUri)) {
|
if (this._connectionStatusManager.isDefaultTypeUri(info.ownerUri)) {
|
||||||
this._connectionGlobalStatus.setStatusToConnected(info.connectionSummary);
|
this._connectionGlobalStatus.setStatusToConnected(info.connectionSummary);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
connection.connectHandler(false, info.errorMessage, info.errorNumber, info.messages);
|
connection.connectHandler(false, info.errorMessage, info.errorNumber, info.messages);
|
||||||
|
this._telemetryService.createErrorEvent(TelemetryKeys.TelemetryView.Shell, TelemetryKeys.DatabaseConnectionError, info.errorNumber.toString())
|
||||||
|
.withAdditionalProperties({
|
||||||
|
provider: connection.connectionProfile.providerName,
|
||||||
|
})
|
||||||
|
.withAdditionalMeasurements({
|
||||||
|
extensionConnectionTimeMs: connection.extensionTimer.elapsed() - connection.serviceTimer.elapsed(),
|
||||||
|
serviceConnectionTimeMs: connection.serviceTimer.elapsed()
|
||||||
|
})
|
||||||
|
.send();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1156,7 +1154,11 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
}
|
}
|
||||||
return this.doDisconnect(uri, profile).then(result => {
|
return this.doDisconnect(uri, profile).then(result => {
|
||||||
if (result) {
|
if (result) {
|
||||||
this.addTelemetryForConnectionDisconnected(profile);
|
this._telemetryService.createActionEvent(TelemetryKeys.TelemetryView.Shell, TelemetryKeys.DatabaseDisconnected)
|
||||||
|
.withAdditionalProperties({
|
||||||
|
provider: profile.providerName
|
||||||
|
})
|
||||||
|
.send();
|
||||||
this._connectionStatusManager.removeConnection(uri);
|
this._connectionStatusManager.removeConnection(uri);
|
||||||
} else {
|
} else {
|
||||||
throw result;
|
throw result;
|
||||||
|
|||||||
Reference in New Issue
Block a user