MCPcopy Create free account
hub / github.com/ProtonDriveApps/sdk / initTelemetry

Function initTelemetry

cli/src/telemetry/telemetry.ts:19–53  ·  view source on GitHub ↗
(config: Config)

Source from the content-addressed store, hash-verified

17import { SentryLogHandler } from './sentryHandler';
18
19export function initTelemetry(config: Config) {
20 const fileHandler = new FileLogHandler(config.logDir);
21 const sentryHandler = new SentryLogHandler();
22 const metricsHandler = config.enableMetrics ? new MetricHandler() : undefined;
23
24 const logHandlers: LogHandler[] = [fileHandler, sentryHandler];
25 if (config.enableConsoleLog) {
26 logHandlers.push(new ConsoleLogHandler(new ColoredLogFormatter()));
27 }
28
29 const metricHandlers: MetricHandlerType<MetricEvent>[] = [fileHandler, sentryHandler];
30 if (metricsHandler) {
31 metricHandlers.push(metricsHandler);
32 }
33 if (config.enableConsoleLog) {
34 metricHandlers.push(new ColoredConsoleMetricHandler());
35 }
36
37 const telemetry = new Telemetry({
38 logFilter: new LogFilter({ globalLevel: config.logLevel }),
39 logHandlers,
40 metricHandlers,
41 });
42
43 return {
44 telemetry,
45 metrics: metricsHandler as CliMetrics,
46 enableMetrics: (apiClient: ApiClient, userPlan: UserPlan) => {
47 metricsHandler?.init(apiClient, userPlan);
48 },
49 flush: async () => {
50 await Promise.all([fileHandler.flush(), flushSentry(), metricsHandler?.flush()]);
51 },
52 };
53}

Callers 1

initFunction · 0.90

Calls 3

flushSentryFunction · 0.90
initMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected