1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | Object.defineProperty(exports, "__esModule", { value: true });
|
18 |
|
19 |
|
20 |
|
21 | const MAX_NUMBER = 0xfffffffffffff;
|
22 | const LOWER_BYTE_COUNT = 13;
|
23 |
|
24 | class AlwaysSampler {
|
25 | constructor() {
|
26 | this.description = 'always';
|
27 | }
|
28 | shouldSample(traceId) {
|
29 | return true;
|
30 | }
|
31 | }
|
32 | exports.AlwaysSampler = AlwaysSampler;
|
33 |
|
34 | class NeverSampler {
|
35 | constructor() {
|
36 | this.description = 'never';
|
37 | }
|
38 | shouldSample(traceId) {
|
39 | return false;
|
40 | }
|
41 | }
|
42 | exports.NeverSampler = NeverSampler;
|
43 |
|
44 | class ProbabilitySampler {
|
45 | |
46 |
|
47 |
|
48 | constructor(probability) {
|
49 | this.description = `probability.(${probability})`;
|
50 | this.idUpperBound = probability * MAX_NUMBER;
|
51 | }
|
52 | |
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 | shouldSample(traceId) {
|
59 | const LOWER_BYTES = traceId
|
60 | ? ('0000000000000' + traceId).slice(-LOWER_BYTE_COUNT)
|
61 | : '0';
|
62 |
|
63 | const LOWER_LONG = parseInt(LOWER_BYTES, 16);
|
64 | if (LOWER_LONG <= this.idUpperBound) {
|
65 | return true;
|
66 | }
|
67 | else {
|
68 | return false;
|
69 | }
|
70 | }
|
71 | }
|
72 | exports.ProbabilitySampler = ProbabilitySampler;
|
73 |
|
74 | class SamplerBuilder {
|
75 | |
76 |
|
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 | static getSampler(probability) {
|
84 | if (probability >= 1.0) {
|
85 | return SamplerBuilder.ALWAYS;
|
86 | }
|
87 | else if (probability <= 0) {
|
88 | return SamplerBuilder.NEVER;
|
89 | }
|
90 | return new ProbabilitySampler(probability);
|
91 | }
|
92 | }
|
93 | SamplerBuilder.ALWAYS = new AlwaysSampler();
|
94 | SamplerBuilder.NEVER = new NeverSampler();
|
95 | exports.SamplerBuilder = SamplerBuilder;
|
96 |
|
97 |
|
98 |
|
99 |
|
100 | exports.DEFAULT_SAMPLING_RATE = 0.0001;
|
101 |
|
102 | exports.DEFAULT_SPAN_MAX_NUM_ANNOTATIONS = 32;
|
103 |
|
104 | exports.DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS = 128;
|
105 |
|
106 | exports.DEFAULT_SPAN_MAX_NUM_ATTRIBUTES = 32;
|
107 |
|
108 | exports.DEFAULT_SPAN_MAX_NUM_LINKS = 32;
|
109 |
|
110 | class TraceParamsBuilder {
|
111 | static getNumberOfAnnotationEventsPerSpan(traceParameters) {
|
112 | return !traceParameters.numberOfAnnontationEventsPerSpan
|
113 | ? exports.DEFAULT_SPAN_MAX_NUM_ANNOTATIONS
|
114 | : traceParameters.numberOfAnnontationEventsPerSpan;
|
115 | }
|
116 | static getNumberOfAttributesPerSpan(traceParameters) {
|
117 | return !traceParameters.numberOfAttributesPerSpan
|
118 | ? exports.DEFAULT_SPAN_MAX_NUM_ATTRIBUTES
|
119 | : traceParameters.numberOfAttributesPerSpan;
|
120 | }
|
121 | static getNumberOfMessageEventsPerSpan(traceParameters) {
|
122 | return !traceParameters.numberOfMessageEventsPerSpan
|
123 | ? exports.DEFAULT_SPAN_MAX_NUM_MESSAGE_EVENTS
|
124 | : traceParameters.numberOfMessageEventsPerSpan;
|
125 | }
|
126 | static getNumberOfLinksPerSpan(traceParameters) {
|
127 | return !traceParameters.numberOfLinksPerSpan
|
128 | ? exports.DEFAULT_SPAN_MAX_NUM_LINKS
|
129 | : traceParameters.numberOfLinksPerSpan;
|
130 | }
|
131 | }
|
132 | exports.TraceParamsBuilder = TraceParamsBuilder;
|
133 |
|
\ | No newline at end of file |