@loglayer/plugin-datadog-apm-trace-injector
Version:
Injects DataDog APM traces to logs in LogLayer.
31 lines (29 loc) • 815 B
JavaScript
//#region src/plugin.ts
/**
* Creates a new Datadog trace injector plugin.
*
* This plugin injects the current Datadog APM trace context into the log data.
*
* @param config - The datadog trace injector plugin configuration
* @returns A LogLayer plugin instance
*/
function datadogTraceInjectorPlugin(config) {
const tracer = config.tracerInstance;
return {
id: config.id,
disabled: config.disabled,
onBeforeDataOut({ data }) {
if (!data) data = {};
try {
const span = tracer.scope().active();
if (span) tracer.inject(span.context(), "log", data);
} catch (error) {
if (config.onError && error instanceof Error) config.onError(error, data);
}
return data;
}
};
}
//#endregion
exports.datadogTraceInjectorPlugin = datadogTraceInjectorPlugin;
//# sourceMappingURL=index.cjs.map