diff options
author | Eric Bailey <git@esb.lol> | 2025-02-28 17:13:49 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-28 17:13:49 -0600 |
commit | 96f4f6359add6a4f2a37df8f17cf3f2f59f0a2a6 (patch) | |
tree | afabc0fe9628a66f1db69f9e07b824db725aa6e1 /src/logger/index.ts | |
parent | 9e59a2eef2f82511a9a9a056dbdb0c62fe2f61c6 (diff) | |
download | voidsky-96f4f6359add6a4f2a37df8f17cf3f2f59f0a2a6.tar.zst |
Logger metrics (#7867)
* Adjust datalake abstraction (cherry picked from commit 8ba6a8d45b1bd5698afbd06d9e858a91789f0ea6) * Just be really really specific (cherry picked from commit 920198959659329a7f7f7282a1293aaad198d8e3) * Add metric method to logger, replace datalake calls with new method (cherry picked from commit 7a026bbeae75514b64f928d7ff59707c518fd5e5) * Clarify types (cherry picked from commit 422b150deb158a70ef37e8a456d91bf26cd0b1bc)
Diffstat (limited to 'src/logger/index.ts')
-rw-r--r-- | src/logger/index.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/logger/index.ts b/src/logger/index.ts index 410d29bb3..0a50a9d21 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,6 +1,8 @@ import {nanoid} from 'nanoid/non-secure' +import {logEvent} from '#/lib/statsig/statsig' import {add} from '#/logger/logDump' +import {MetricEvents} from '#/logger/metrics' import {bitdriftTransport} from '#/logger/transports/bitdrift' import {consoleTransport} from '#/logger/transports/console' import {sentryTransport} from '#/logger/transports/sentry' @@ -89,6 +91,25 @@ export class Logger { this.transport({level: LogLevel.Error, message: error, metadata}) } + metric<E extends keyof MetricEvents>( + event: E & string, + metadata: MetricEvents[E], + options: { + /** + * Optionally also send to StatSig + */ + statsig?: boolean + } = {statsig: false}, + ) { + logEvent(event, metadata, { + lake: !options.statsig, + }) + + for (const transport of this.transports) { + transport(LogLevel.Info, LogContext.Metric, event, metadata, Date.now()) + } + } + addTransport(transport: Transport) { this.transports.push(transport) return () => { |