Skip to content

Commit

Permalink
Remove vscode-common dependency and migrate to telemetry package
Browse files Browse the repository at this point in the history
This PR fixes redhat-developer#2166.

Signed-off-by: Denis Golovin dgolovin@redhat.com
  • Loading branch information
dgolovin committed Jun 16, 2021
1 parent ba3944b commit 14b9ce1
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 22 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ node('rhel8'){
def packageJson = readJSON file: 'package.json'

stage('Package') {
packageJson.extensionDependencies = ["ms-kubernetes-tools.vscode-kubernetes-tools", "redhat.vscode-commons"]
packageJson.extensionDependencies = ["ms-kubernetes-tools.vscode-kubernetes-tools"]
writeJSON file: 'package.json', json: packageJson, pretty: 4
sh 'node ./out/build/update-readme.js'
sh "vsce package -o openshift-connector-${packageJson.version}-${env.BUILD_NUMBER}.vsix"
Expand Down
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
},
"dependencies": {
"@kubernetes/client-node": "^0.13.0",
"@redhat-developer/vscode-redhat-telemetry": "0.0.13",
"@redhat-developer/vscode-redhat-telemetry": "0.1.1",
"base64-inline-loader": "^1.1.1",
"binary-search": "^1.3.6",
"byline": "^5.0.0",
Expand Down Expand Up @@ -1469,6 +1469,12 @@
"type": "object",
"title": "OpenShift Connector",
"properties": {
"redhat.telemetry.enabled": {
"type": "boolean",
"default": null,
"markdownDescription": "Enable usage data and errors to be sent to Red Hat servers. Read our [privacy statement](https://developers.redhat.com/article/tool-data-collection).",
"scope": "window"
},
"openshiftConnector.showWelcomePage": {
"title": "Show Welcome Page",
"type": "boolean",
Expand Down
4 changes: 2 additions & 2 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
env
} from 'vscode';
import path = require('path');
import sendTelemetry from './telemetry';
import { startTelemetry } from './telemetry';
import { OpenShiftExplorer } from './explorer';
import { Cluster } from './openshift/cluster';
import { Component } from './openshift/component';
Expand Down Expand Up @@ -143,7 +143,7 @@ export async function activate(extensionContext: ExtensionContext): Promise<any>

OdoImpl.Instance.loadWorkspaceComponents(null);

sendTelemetry('activation');
startTelemetry(extensionContext);

return {
verifyBundledBinaries,
Expand Down
23 changes: 12 additions & 11 deletions src/telemetry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@
* Licensed under the MIT License. See LICENSE file in the project root for license information.
*-----------------------------------------------------------------------------------------------*/

import { getTelemetryService, TelemetryEvent, TelemetryService } from '@redhat-developer/vscode-redhat-telemetry';
import { ExtenisonID } from './util/constants';
import { getRedHatService, TelemetryEvent, TelemetryService } from '@redhat-developer/vscode-redhat-telemetry';
import { ExtensionContext } from 'vscode';

const telemetryService: Promise<TelemetryService> = getTelemetryService(ExtenisonID);

export async function getTelemetryServiceInstance(): Promise<TelemetryService> {
return telemetryService;
}
let telemetryService: TelemetryService;

export function createTrackingEvent(name: string, properties: any = {}): TelemetryEvent {
return {
Expand All @@ -20,12 +16,17 @@ export function createTrackingEvent(name: string, properties: any = {}): Telemet
}
}

export async function startTelemetry(context: ExtensionContext): Promise<void> {
const redHatService = await getRedHatService(context);
telemetryService = await redHatService.getTelemetryService();
return telemetryService.sendStartupEvent();
}

export default async function sendTelemetry(actionName: string, properties?: any): Promise<void> {
const service = await getTelemetryServiceInstance();
if (actionName === 'activation') {
return service?.sendStartupEvent();
if (!telemetryService) {
throw Error('Telemetry service has not been started yet!');
}
return service?.send(createTrackingEvent(actionName, properties));
return telemetryService.send(createTrackingEvent(actionName, properties));
}

export interface CommonCommandProps {
Expand Down

0 comments on commit 14b9ce1

Please sign in to comment.