UNPKG

lambda-monitor

Version:

Lambda log monitoring and streaming to external services.

25 lines (23 loc) 861 B
import objectScan from 'object-scan'; import Datadog from './util/datadog.js'; export default async (event, context) => { const datadog = Datadog(); if (datadog === null) { return; } const arr = event.Records.map(({ body }) => JSON.parse(body)); // Workaround since Datadog strips empty objects // Reference: https://docs.datadoghq.com/logs/log_configuration/parsing/?tab=matchers objectScan(['[*]**'], { filterFn: ({ parent, property, value }) => { if (value === null) { // eslint-disable-next-line no-param-reassign parent[property] = '<null>'; } else if (value instanceof Object && Object.keys(value).length === 0) { // eslint-disable-next-line no-param-reassign parent[property] = `<empty ${JSON.stringify(value)}>`; } } })(arr); await datadog.Logger.uploadJsonArray(arr); };