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
JavaScript
;
// 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