mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-24 05:15:16 +02:00
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
/**
|
|
* Combined observability helper that provides unified access to logs and metrics.
|
|
* The actual services are in victoria-logs.ts and victoria-metrics.ts.
|
|
*/
|
|
import type { HelperContext } from './types';
|
|
import { LogsHelper, type VictoriaLogsResult, escapeLogsQL } from './victoria-logs';
|
|
import { MetricsHelper, type VictoriaMetricsResult } from './victoria-metrics';
|
|
|
|
export { escapeLogsQL };
|
|
export { LogsHelper, type LogEntry, type LogQueryOptions } from './victoria-logs';
|
|
export {
|
|
MetricsHelper,
|
|
type MetricResult,
|
|
type WaitForMetricOptions,
|
|
type ScrapeTarget,
|
|
} from './victoria-metrics';
|
|
|
|
export class ObservabilityHelper {
|
|
readonly logs: LogsHelper;
|
|
readonly metrics: MetricsHelper;
|
|
readonly syslog: VictoriaLogsResult['meta']['syslog'];
|
|
|
|
constructor(logsMeta: VictoriaLogsResult['meta'], metricsMeta: VictoriaMetricsResult['meta']) {
|
|
this.logs = new LogsHelper(logsMeta.queryEndpoint);
|
|
this.metrics = new MetricsHelper(metricsMeta.queryEndpoint);
|
|
this.syslog = logsMeta.syslog;
|
|
}
|
|
}
|
|
|
|
export function createObservabilityHelper(ctx: HelperContext): ObservabilityHelper {
|
|
const logsResult = ctx.serviceResults.victoriaLogs as VictoriaLogsResult | undefined;
|
|
const metricsResult = ctx.serviceResults.victoriaMetrics as VictoriaMetricsResult | undefined;
|
|
|
|
if (!logsResult) {
|
|
throw new Error('VictoriaLogs service not found in context');
|
|
}
|
|
if (!metricsResult) {
|
|
throw new Error('VictoriaMetrics service not found in context');
|
|
}
|
|
|
|
return new ObservabilityHelper(logsResult.meta, metricsResult.meta);
|
|
}
|
|
|
|
declare module './types' {
|
|
interface ServiceHelpers {
|
|
observability: ObservabilityHelper;
|
|
}
|
|
}
|