Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/pm2/node_modules/@opencensus/core/build/src/trace/sampler/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
/**
* Copyright 2018, OpenCensus Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
// We use 52-bits as our max number because it remains a javascript "safe
// integer" for arithmetic and parsing while using the full hex range for
// comparison to the lower order bytes on a traceId.
const MAX_NUMBER = 0xfffffffffffff;
const LOWER_BYTE_COUNT = 13;
/** Sampler that samples every trace. */
class AlwaysSampler {
constructor() {
this.description = 'always';
}
shouldSample(traceId) {
return true;
}
}
exports.AlwaysSampler = AlwaysSampler;
/** Sampler that samples no traces. */
class NeverSampler {
constructor() {
this.description = 'never';
}
shouldSample(traceId) {
return false;
}
}
exports.NeverSampler = NeverSampler;
/** Sampler that samples a given fraction of traces. */
class ProbabilitySampler {
/**
* Constructs a new Probability Sampler instance.
*/
constructor(probability) {
this.description = `probability.(${probability})`;
this.idUpperBound = probability * MAX_NUMBER;
}
/**
* Checks if trace belong the sample.
* @param traceId Used to check the probability
* @returns a boolean. True if the traceId is in probability
* False if the traceId is not in probability.
*/
shouldSample(traceId) {
const LOWER_BYTES = traceId ? ('0000000000000' + traceId).slice(-LOWER_BYTE_COUNT) : '0';
// tslint:disable-next-line:ban Needed to parse hexadecimal.
const LOWER_LONG = parseInt(LOWER_BYTES, 16);
if (LOWER_LONG <= this.idUpperBound) {
return true;
}
else {
return false;
}
}
}
exports.ProbabilitySampler = ProbabilitySampler;
/** Builder class of Samplers */
class SamplerBuilder {
/**
* If probability parameter is bigger then 1 return AlwaysSampler instance.
* If probability parameter is less than 0 returns NeverSampler instance.
* Else returns a Probability Sampler
*
* @param probability probability between 0 and 1
* @returns a Sampler object
*/
static getSampler(probability) {
if (probability >= 1.0) {
return SamplerBuilder.ALWAYS;
}
else if (probability <= 0) {
return SamplerBuilder.NEVER;
}
return new ProbabilitySampler(probability);
}
}
SamplerBuilder.ALWAYS = new AlwaysSampler();
SamplerBuilder.NEVER = new NeverSampler();
exports.SamplerBuilder = SamplerBuilder;
/** Default Limit for Annotations per span */
exports.DEFAULT_SPAN_MAX_NUM_ANNOTATIONS = 32;
/** Default limit for Message events per span */
exports.DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS = 128;
/** Default limit for Attributes per span */
exports.DEFAULT_SPAN_MAX_NUM_ATTRIBUTES = 32;
/** Default limit for Links per span */
exports.DEFAULT_SPAN_MAX_NUM_LINKS = 32;
/** Builder Class of TraceParams */
class TraceParamsBuilder {
static getNumberOfAnnotationEventsPerSpan(traceParameters) {
return traceParameters.numberOfAnnontationEventsPerSpan >
exports.DEFAULT_SPAN_MAX_NUM_ANNOTATIONS ?
exports.DEFAULT_SPAN_MAX_NUM_ANNOTATIONS :
traceParameters.numberOfAnnontationEventsPerSpan;
}
static getNumberOfAttributesPerSpan(traceParameters) {
return traceParameters.numberOfAttributesPerSpan >
exports.DEFAULT_SPAN_MAX_NUM_ATTRIBUTES ?
exports.DEFAULT_SPAN_MAX_NUM_ATTRIBUTES :
traceParameters.numberOfAttributesPerSpan;
}
static getNumberOfMessageEventsPerSpan(traceParameters) {
return traceParameters.numberOfMessageEventsPerSpan >
exports.DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS ?
exports.DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS :
traceParameters.numberOfMessageEventsPerSpan;
}
static getNumberOfLinksPerSpan(traceParameters) {
return traceParameters.numberOfLinksPerSpan > exports.DEFAULT_SPAN_MAX_NUM_LINKS ?
exports.DEFAULT_SPAN_MAX_NUM_LINKS :
traceParameters.numberOfLinksPerSpan;
}
}
exports.TraceParamsBuilder = TraceParamsBuilder;
//# sourceMappingURL=sampler.js.map |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0045 ]-- |