The BaggageLogRecordProcessor reads entries stored in Baggage from the parent context and adds the baggage entries' keys and values to the log record as attributes on log emit.
⚠ Warning
Do not put sensitive information in Baggage.
To repeat: a consequence of adding data to Baggage is that the keys and values will appear in all outgoing HTTP headers from the application.
Compatible with OpenTelemetry JS API and SDK 1.0+
.
npm install --save @opentelemetry/baggage-log-record-processor
Add to the log record processors that copies all baggage entries during configuration:
import { NodeSDK, logs } from '@opentelemetry/sdk-node';
import { ALLOW_ALL_BAGGAGE_KEYS, BaggageLogRecordProcessor } from '@opentelemetry/baggage-log-record-processor';
const logRecordProcessor = [
new logs.SimpleLogRecordProcessor(
new logs.ConsoleLogRecordExporter()),
new BaggageLogRecordProcessor(ALLOW_ALL_BAGGAGE_KEYS)];
const sdk = new NodeSDK({
serviceName: "example-service",
logRecordProcessor
});
sdk.start();
Alternatively, you can provide a custom baggage key predicate to select which baggage keys you want to copy.
For example, to only copy baggage entries that start with my-key
:
new BaggageLogRecordProcessor((baggageKey: string) => key.startsWith('my-key'))
For example, to only copy baggage entries that matches the regex ^key.+
:
const regex = new RegExp("^key.+")
new BaggageLogRecordProcessor((baggageKey: string) => regex.test(baggageKey))
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For help or feedback on this project, join us in GitHub Discussions
APACHE 2.0 - See LICENSE for more information.