web/storagenode: telemetry removed
Change-Id: I26e9d96178539d76a0aecaf5e62d76a56b6559a3
This commit is contained in:
parent
2ef9f7f644
commit
68a2726e2a
12
web/storagenode/package-lock.json
generated
12
web/storagenode/package-lock.json
generated
@ -6177,9 +6177,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
"version": "6.5.2",
|
"version": "6.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
|
||||||
"integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
|
"integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"bn.js": "^4.4.0",
|
"bn.js": "^4.4.0",
|
||||||
@ -9950,9 +9950,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lodash": {
|
"lodash": {
|
||||||
"version": "4.17.15",
|
"version": "4.17.19",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
|
||||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
|
||||||
},
|
},
|
||||||
"lodash.defaultsdeep": {
|
"lodash.defaultsdeep": {
|
||||||
"version": "4.6.1",
|
"version": "4.6.1",
|
||||||
|
@ -58,14 +58,11 @@ export default class App extends Vue {
|
|||||||
return this.$store.state.appStateModule.isLoading;
|
return this.$store.state.appStateModule.isLoading;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async beforeCreate(): Promise<void> {
|
public beforeCreate(): void {
|
||||||
document.body.classList.add('js-loading');
|
document.body.classList.add('js-loading');
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
document.body.classList.remove('js-loading');
|
document.body.classList.remove('js-loading');
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: place key to server config.
|
|
||||||
await this.$telemetry.init('DTEcoJRlUAN2VylCWMiLrqoknW800GNO');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public onScroll(): void {
|
public onScroll(): void {
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
// Copyright (C) 2020 Storj Labs, Inc.
|
|
||||||
// See LICENSE for copying information.
|
|
||||||
|
|
||||||
import { Telemetry, TelemetryViews } from '@/app/telemetry/telemetry';
|
|
||||||
import { LoadScript } from '@/app/utils/loadScript';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Segmentio implements all telemetry related functionality of Telemetry interface.
|
|
||||||
*/
|
|
||||||
export class Segmentio implements Telemetry {
|
|
||||||
private analytics: SegmentAnalytics.AnalyticsJS;
|
|
||||||
private loadScript: LoadScript;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Segment.io client.
|
|
||||||
* @param key - public key to your source.
|
|
||||||
*/
|
|
||||||
public init(key: string): void {
|
|
||||||
if (key === '' || key.includes('SegmentIOPublicKey')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const url = `https://cdn.segment.com/analytics.js/v1/${key}/analytics.min.js`;
|
|
||||||
|
|
||||||
this.loadScript = new LoadScript(url,
|
|
||||||
() => {
|
|
||||||
this.analytics = window['analytics'];
|
|
||||||
this.view(TelemetryViews.Dashboard);
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
throw error;
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The view method lets you record how many times view, component or page was viewed in your application.
|
|
||||||
*/
|
|
||||||
public view(view: TelemetryViews): void {
|
|
||||||
if (!this.analytics) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.analytics.page(view);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Updates information about user with specified NodeId.
|
|
||||||
*/
|
|
||||||
public identify(id: string): void {
|
|
||||||
if (!this.analytics) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.analytics.identify(id);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
// Copyright (C) 2020 Storj Labs, Inc.
|
|
||||||
// See LICENSE for copying information.
|
|
||||||
|
|
||||||
import { Segmentio } from '@/app/telemetry/segmnetio/segmentio';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Telemetry exposes all telemetry related functionality.
|
|
||||||
*/
|
|
||||||
export interface Telemetry {
|
|
||||||
/**
|
|
||||||
* Init method initialize all dependencies and parameters.
|
|
||||||
*/
|
|
||||||
init(key: string);
|
|
||||||
/**
|
|
||||||
* The view method lets you record how many times view, component or page was viewed in your application.
|
|
||||||
*/
|
|
||||||
view(view: TelemetryViews);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Updates information about user with specified NodeId.
|
|
||||||
*/
|
|
||||||
identify(nodeId: string);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TelemetryPlugin is a Vue Plugin that allows to extend vue context with Telemetry functionality.
|
|
||||||
*/
|
|
||||||
export class TelemetryPlugin {
|
|
||||||
public install(Vue) {
|
|
||||||
Vue.prototype.$telemetry = new Segmentio();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum TelemetryViews {
|
|
||||||
Dashboard = 'SNO Dashboard Web App',
|
|
||||||
MainPage = 'Main Page',
|
|
||||||
Payments = 'Payments Page',
|
|
||||||
Notifications = 'Notifications Page',
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
// Copyright (C) 2020 Storj Labs, Inc.
|
|
||||||
// See LICENSE for copying information.
|
|
||||||
|
|
||||||
import { Telemetry } from '@/app/telemetry/telemetry';
|
|
||||||
|
|
||||||
declare module 'vue/types/vue' {
|
|
||||||
interface Vue {
|
|
||||||
$telemetry: Telemetry;
|
|
||||||
}
|
|
||||||
}
|
|
@ -20,7 +20,6 @@ import { APPSTATE_ACTIONS } from '@/app/store/modules/appState';
|
|||||||
import { NODE_ACTIONS } from '@/app/store/modules/node';
|
import { NODE_ACTIONS } from '@/app/store/modules/node';
|
||||||
import { NOTIFICATIONS_ACTIONS } from '@/app/store/modules/notifications';
|
import { NOTIFICATIONS_ACTIONS } from '@/app/store/modules/notifications';
|
||||||
import { PAYOUT_ACTIONS } from '@/app/store/modules/payout';
|
import { PAYOUT_ACTIONS } from '@/app/store/modules/payout';
|
||||||
import { TelemetryViews } from '@/app/telemetry/telemetry';
|
|
||||||
import { NotificationsCursor } from '@/app/types/notifications';
|
import { NotificationsCursor } from '@/app/types/notifications';
|
||||||
|
|
||||||
@Component ({
|
@Component ({
|
||||||
@ -56,9 +55,6 @@ export default class Dashboard extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await this.$store.dispatch(APPSTATE_ACTIONS.SET_LOADING, false);
|
await this.$store.dispatch(APPSTATE_ACTIONS.SET_LOADING, false);
|
||||||
|
|
||||||
this.$telemetry.identify(this.$store.state.node.info.id);
|
|
||||||
this.$telemetry.view(TelemetryViews.MainPage);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -8,14 +8,10 @@ import { DirectiveBinding } from 'vue/types/options';
|
|||||||
import App from '@/app/App.vue';
|
import App from '@/app/App.vue';
|
||||||
import { router } from '@/app/router';
|
import { router } from '@/app/router';
|
||||||
import { store } from '@/app/store';
|
import { store } from '@/app/store';
|
||||||
import { TelemetryPlugin } from '@/app/telemetry/telemetry';
|
|
||||||
|
|
||||||
Vue.config.productionTip = false;
|
Vue.config.productionTip = false;
|
||||||
|
|
||||||
const telemetry = new TelemetryPlugin();
|
|
||||||
|
|
||||||
Vue.use(telemetry);
|
|
||||||
VueClipboard.config.autoSetContainer = true;
|
VueClipboard.config.autoSetContainer = true;
|
||||||
|
|
||||||
Vue.use(VueClipboard);
|
Vue.use(VueClipboard);
|
||||||
|
|
||||||
let clickOutsideEvent: EventListener;
|
let clickOutsideEvent: EventListener;
|
||||||
|
Loading…
Reference in New Issue
Block a user