UNPKG

enhanced-adot-node-autoinstrumentation

Version:

This package provides Amazon Web Services distribution of the OpenTelemetry Node Instrumentation, which allows for auto-instrumentation of NodeJS applications.

24 lines 1.09 kB
"use strict"; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 Object.defineProperty(exports, "__esModule", { value: true }); exports.RateLimitingSampler = void 0; const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base"); const rate_limiter_1 = require("./rate-limiter"); class RateLimitingSampler { constructor(quota) { this.quota = quota; this.reservoir = new rate_limiter_1.RateLimiter(quota); } shouldSample(context, traceId, spanName, spanKind, attributes, links) { if (this.reservoir.take(1)) { return { decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, attributes: attributes }; } return { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD, attributes: attributes }; } toString() { return `RateLimitingSampler{rate limiting sampling with sampling config of ${this.quota} req/sec and 0% of additional requests}`; } } exports.RateLimitingSampler = RateLimitingSampler; //# sourceMappingURL=rate-limiting-sampler.js.map