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:
parent
0da2054aa4
commit
9aa1c7aeb0
@ -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',
|
||||
);
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user