feat: Generate organization and instance id for telemetry

This commit is contained in:
Faruk AYDIN
2022-05-01 23:34:09 +02:00
parent 7664c9af0a
commit 14ab827b34
3 changed files with 33 additions and 1 deletions

View File

@@ -1,19 +1,31 @@
import Analytics, { apiObject } from '@rudderstack/rudder-sdk-node';
import organizationId from './organization-id';
import instanceId from './instance-id';
import appConfig from '../../config/app';
const WRITE_KEY = '284Py4VgK2MsNYV7xlKzyrALx0v';
const DATA_PLANE_URL = 'https://telemetry.automatisch.io/v1/batch';
class Telemetry {
organizationId: string;
instanceId: string;
client: Analytics;
constructor() {
this.client = new Analytics(WRITE_KEY, DATA_PLANE_URL);
this.organizationId = organizationId();
this.instanceId = instanceId();
}
track(name: string, properties: apiObject) {
properties = {
...properties,
appEnv: appConfig.appEnv,
instanceId: this.instanceId,
};
this.client.track({
userId: 'sample',
userId: this.organizationId,
event: name,
properties,
});

View File

@@ -0,0 +1,7 @@
import Crypto from 'crypto';
const instanceId = () => {
return Crypto.randomUUID();
};
export default instanceId;

View File

@@ -0,0 +1,13 @@
import CryptoJS from 'crypto-js';
import appConfig from '../../config/app';
const organizationId = () => {
const key = appConfig.encryptionKey;
const hash = CryptoJS.SHA3(key, { outputLength: 256 }).toString(
CryptoJS.enc.Hex
);
return hash;
};
export default organizationId;