refactor(core): Remove event bus helpers (no-changelog) (#9690)
This commit is contained in:
@@ -8,9 +8,10 @@ import { Service } from 'typedi';
|
||||
import EventEmitter from 'events';
|
||||
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { METRICS_EVENT_NAME, getLabelsForEvent, type EventMessageTypes } from '@/eventbus';
|
||||
import { type EventMessageTypes } from '@/eventbus';
|
||||
import { MessageEventBus } from '@/eventbus/MessageEventBus/MessageEventBus';
|
||||
import { Logger } from '@/Logger';
|
||||
import { EventMessageTypeNames } from 'n8n-workflow';
|
||||
|
||||
@Service()
|
||||
export class MetricsService extends EventEmitter {
|
||||
@@ -135,7 +136,7 @@ export class MetricsService extends EventEmitter {
|
||||
const counter = new promClient.Counter({
|
||||
name: metricName,
|
||||
help: `Total number of ${event.eventName} events.`,
|
||||
labelNames: Object.keys(getLabelsForEvent(event)),
|
||||
labelNames: Object.keys(this.getLabelsForEvent(event)),
|
||||
});
|
||||
counter.inc(0);
|
||||
this.counters[event.eventName] = counter;
|
||||
@@ -148,10 +149,52 @@ export class MetricsService extends EventEmitter {
|
||||
if (!config.getEnv('endpoints.metrics.includeMessageEventBusMetrics')) {
|
||||
return;
|
||||
}
|
||||
this.eventBus.on(METRICS_EVENT_NAME, (event: EventMessageTypes) => {
|
||||
this.eventBus.on('metrics.messageEventBus.Event', (event: EventMessageTypes) => {
|
||||
const counter = this.getCounterForEvent(event);
|
||||
if (!counter) return;
|
||||
counter.inc(1);
|
||||
});
|
||||
}
|
||||
|
||||
getLabelsForEvent(event: EventMessageTypes): Record<string, string> {
|
||||
switch (event.__type) {
|
||||
case EventMessageTypeNames.audit:
|
||||
if (event.eventName.startsWith('n8n.audit.user.credentials')) {
|
||||
return config.getEnv('endpoints.metrics.includeCredentialTypeLabel')
|
||||
? {
|
||||
credential_type: this.getLabelValueForCredential(
|
||||
event.payload.credentialType ?? 'unknown',
|
||||
),
|
||||
}
|
||||
: {};
|
||||
}
|
||||
|
||||
if (event.eventName.startsWith('n8n.audit.workflow')) {
|
||||
return config.getEnv('endpoints.metrics.includeWorkflowIdLabel')
|
||||
? { workflow_id: event.payload.workflowId?.toString() ?? 'unknown' }
|
||||
: {};
|
||||
}
|
||||
break;
|
||||
|
||||
case EventMessageTypeNames.node:
|
||||
return config.getEnv('endpoints.metrics.includeNodeTypeLabel')
|
||||
? { node_type: this.getLabelValueForNode(event.payload.nodeType ?? 'unknown') }
|
||||
: {};
|
||||
|
||||
case EventMessageTypeNames.workflow:
|
||||
return config.getEnv('endpoints.metrics.includeWorkflowIdLabel')
|
||||
? { workflow_id: event.payload.workflowId?.toString() ?? 'unknown' }
|
||||
: {};
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
getLabelValueForNode(nodeType: string) {
|
||||
return nodeType.replace('n8n-nodes-', '').replace(/\./g, '_');
|
||||
}
|
||||
|
||||
getLabelValueForCredential(credentialType: string) {
|
||||
return credentialType.replace(/\./g, '_');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user