1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

fix: client registration events are on eventStore (#2093)

Client registration events are on eventStore and not on eventBus. This
change makes us have sdk name and version metrics in unleash.
This commit is contained in:
Gard Rimestad 2022-09-27 11:06:06 +02:00 committed by GitHub
parent 0da2054aa4
commit 9aa1c7aeb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 10 deletions

View File

@ -1,5 +1,6 @@
import { register } from 'prom-client';
import EventEmitter from 'events';
import { IEventStore } from './types/stores/event-store';
import { createTestConfig } from '../test/config/test-config';
import { REQUEST_TIME, DB_TIME } from './metric-events';
import {
@ -13,6 +14,7 @@ import createStores from '../test/fixtures/store';
const monitor = createMetricsMonitor();
const eventBus = new EventEmitter();
const prometheusRegister = register;
let eventStore: IEventStore;
let stores;
beforeAll(() => {
const config = createTestConfig({
@ -21,6 +23,7 @@ beforeAll(() => {
},
});
stores = createStores();
eventStore = stores.eventStore;
const db = {
client: {
pool: {
@ -114,12 +117,24 @@ test('Should collect metrics for database', async () => {
});
test('Should collect metrics for client sdk versions', async () => {
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-node:3.2.5' });
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-node:3.2.5' });
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-node:3.2.5' });
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-java:5.0.0' });
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-java:5.0.0' });
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-java:5.0.0' });
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-node:3.2.5',
});
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-node:3.2.5',
});
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-node:3.2.5',
});
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-java:5.0.0',
});
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-java:5.0.0',
});
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-java:5.0.0',
});
const metrics = await prometheusRegister.getSingleMetricAsString(
'client_sdk_versions',
);
@ -129,7 +144,9 @@ test('Should collect metrics for client sdk versions', async () => {
expect(metrics).toMatch(
/client_sdk_versions\{sdk_name="unleash-client-java",sdk_version="5\.0\.0"} 3/,
);
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-node:3.2.5' });
eventStore.emit(CLIENT_REGISTER, {
sdkVersion: 'unleash-client-node:3.2.5',
});
const newmetrics = await prometheusRegister.getSingleMetricAsString(
'client_sdk_versions',
);
@ -139,8 +156,8 @@ test('Should collect metrics for client sdk versions', async () => {
});
test('Should not collect client sdk version if sdkVersion is of wrong format or non-existent', async () => {
eventBus.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-rust' });
eventBus.emit(CLIENT_REGISTER, {});
eventStore.emit(CLIENT_REGISTER, { sdkVersion: 'unleash-client-rust' });
eventStore.emit(CLIENT_REGISTER, {});
const metrics = await prometheusRegister.getSingleMetricAsString(
'client_sdk_versions',
);

View File

@ -226,7 +226,7 @@ export default class MetricsMonitor {
.inc(entry[1].no);
}
});
eventBus.on(CLIENT_REGISTER, (m) => {
eventStore.on(CLIENT_REGISTER, (m) => {
if (m.sdkVersion && m.sdkVersion.indexOf(':') > -1) {
const [sdkName, sdkVersion] = m.sdkVersion.split(':');
clientSdkVersionUsage.labels(sdkName, sdkVersion).inc();