@azure/monitor-opentelemetry
Version:
Azure Monitor OpenTelemetry (Node.js)
28 lines • 1.03 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import { TraceFlags } from "@opentelemetry/api";
import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
/**
* Azure Monitor BatchLogRecord Processor.
* @internal
*/
export class AzureBatchLogRecordProcessor extends BatchLogRecordProcessor {
constructor(exporter, options) {
super(exporter);
this._options = options;
}
onEmit(logRecord) {
// Trace based sampling for logs
if (this._options.enableTraceBasedSamplingForLogs) {
if (logRecord.spanContext && logRecord.spanContext.spanId) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
if (logRecord.spanContext.traceFlags !== TraceFlags.SAMPLED) {
// Do not export log for spans that were sampled out
return;
}
}
}
super.onEmit(logRecord);
}
}
//# sourceMappingURL=batchLogRecordProcessor.js.map