UNPKG

@vtex/diagnostics-nodejs

Version:

Diagnostics library for Node.js applications

65 lines 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DebugSampler = void 0; exports.newDebugSampler = newDebugSampler; const api_1 = require("@opentelemetry/api"); const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base"); const metadata_1 = require("./metadata"); const debugAttributeKeys = [ 'debug', 'debug.enabled', 'sampling.debug', 'force.sampling' ]; class DebugSampler { shouldSample(context, traceId, spanName, spanKind, attributes, links) { const metadata = (0, metadata_1.newSamplerMetadata)('debug'); for (const key of debugAttributeKeys) { if (attributes[key] === 'true' || attributes[key] === true) { return { decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, attributes: metadata .setDecision(sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, 'debug_enabled') .setTrigger(key) .setRate(1.0) .toAttributes() }; } if (attributes[key] === 'false' || attributes[key] === false) { return { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD, attributes: metadata .setDecision(sdk_trace_base_1.SamplingDecision.NOT_RECORD, 'debug_disabled') .setTrigger(key) .setRate(0.0) .toAttributes() }; } } const parentContext = api_1.trace.getSpanContext(context); if (parentContext?.traceFlags && (parentContext.traceFlags & 1)) { return { decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, attributes: metadata .setDecision(sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, 'parent_sampled') .setRate(1.0) .toAttributes() }; } return { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD, attributes: metadata .setDecision(sdk_trace_base_1.SamplingDecision.NOT_RECORD, 'no_debug_context') .setRate(0.0) .toAttributes() }; } toString() { return 'DebugSampler'; } } exports.DebugSampler = DebugSampler; function newDebugSampler() { return new DebugSampler(); } //# sourceMappingURL=debug.js.map