diff options
| author | smhendrickson <[email protected]> | 2025-07-23 17:48:24 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-23 21:48:24 +0000 |
| commit | 9d3164621a8bb0e2bbf8d2309fba1d8678c0abe2 (patch) | |
| tree | 0a70a72e6735380b327ee883711c27b5345de65b /packages/core/src/telemetry/sdk.ts | |
| parent | 209c8783b4f2cdc39e4ce1ac05b3416d32c373c5 (diff) | |
add `--telemetry-outfile` flag (#4689)
Diffstat (limited to 'packages/core/src/telemetry/sdk.ts')
| -rw-r--r-- | packages/core/src/telemetry/sdk.ts | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/packages/core/src/telemetry/sdk.ts b/packages/core/src/telemetry/sdk.ts index 83294651..1167750a 100644 --- a/packages/core/src/telemetry/sdk.ts +++ b/packages/core/src/telemetry/sdk.ts @@ -29,6 +29,11 @@ import { Config } from '../config/config.js'; import { SERVICE_NAME } from './constants.js'; import { initializeMetrics } from './metrics.js'; import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js'; +import { + FileLogExporter, + FileMetricExporter, + FileSpanExporter, +} from './file-exporters.js'; // For troubleshooting, set the log level to DiagLogLevel.DEBUG diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO); @@ -74,19 +79,24 @@ export function initializeTelemetry(config: Config): void { const otlpEndpoint = config.getTelemetryOtlpEndpoint(); const grpcParsedEndpoint = parseGrpcEndpoint(otlpEndpoint); const useOtlp = !!grpcParsedEndpoint; + const telemetryOutfile = config.getTelemetryOutfile(); const spanExporter = useOtlp ? new OTLPTraceExporter({ url: grpcParsedEndpoint, compression: CompressionAlgorithm.GZIP, }) - : new ConsoleSpanExporter(); + : telemetryOutfile + ? new FileSpanExporter(telemetryOutfile) + : new ConsoleSpanExporter(); const logExporter = useOtlp ? new OTLPLogExporter({ url: grpcParsedEndpoint, compression: CompressionAlgorithm.GZIP, }) - : new ConsoleLogRecordExporter(); + : telemetryOutfile + ? new FileLogExporter(telemetryOutfile) + : new ConsoleLogRecordExporter(); const metricReader = useOtlp ? new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter({ @@ -95,10 +105,15 @@ export function initializeTelemetry(config: Config): void { }), exportIntervalMillis: 10000, }) - : new PeriodicExportingMetricReader({ - exporter: new ConsoleMetricExporter(), - exportIntervalMillis: 10000, - }); + : telemetryOutfile + ? new PeriodicExportingMetricReader({ + exporter: new FileMetricExporter(telemetryOutfile), + exportIntervalMillis: 10000, + }) + : new PeriodicExportingMetricReader({ + exporter: new ConsoleMetricExporter(), + exportIntervalMillis: 10000, + }); sdk = new NodeSDK({ resource, |
