UNPKG

@datadog/browser-logs

Version:
33 lines 1.8 kB
import { DISCARDED, ErrorSource, buildTags, combine, createEventRateLimiter, getRelativeTime, } from '@datadog/browser-core'; import { STATUSES } from './logger'; export function startLogsAssembly(configuration, lifeCycle, hooks, getCommonContext, reportError, eventRateLimit) { const statusWithCustom = STATUSES.concat(['custom']); const logRateLimiters = {}; statusWithCustom.forEach((status) => { logRateLimiters[status] = createEventRateLimiter(status, reportError, eventRateLimit); }); lifeCycle.subscribe(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, ({ rawLogsEvent, messageContext = undefined, savedCommonContext = undefined, domainContext, ddtags = [] }) => { var _a, _b; const startTime = getRelativeTime(rawLogsEvent.date); const commonContext = savedCommonContext || getCommonContext(); const defaultLogsEventAttributes = hooks.triggerHook(0 /* HookNames.Assemble */, { startTime, }); if (defaultLogsEventAttributes === DISCARDED) { return; } const defaultDdtags = buildTags(configuration); const log = combine({ view: commonContext.view, }, defaultLogsEventAttributes, rawLogsEvent, messageContext, { ddtags: defaultDdtags.concat(ddtags).join(','), }); if (((_a = configuration.beforeSend) === null || _a === void 0 ? void 0 : _a.call(configuration, log, domainContext)) === false || (log.origin !== ErrorSource.AGENT && ((_b = logRateLimiters[log.status]) !== null && _b !== void 0 ? _b : logRateLimiters['custom']).isLimitReached())) { return; } lifeCycle.notify(1 /* LifeCycleEventType.LOG_COLLECTED */, log); }); } //# sourceMappingURL=assembly.js.map