@@ -13,11 +13,6 @@ This package provides default implementations of the OpenTelemetry API for trace
13
13
- [ W3CTraceContextPropagator Propagator] ( #w3ctracecontextpropagator-propagator )
14
14
- [ Composite Propagator] ( #composite-propagator )
15
15
- [ Baggage Propagator] ( #baggage-propagator )
16
- - [ Built-in Sampler] ( #built-in-sampler )
17
- - [ AlwaysOn Sampler] ( #alwayson-sampler )
18
- - [ AlwaysOff Sampler] ( #alwaysoff-sampler )
19
- - [ TraceIdRatioBased Sampler] ( #traceidratiobased-sampler )
20
- - [ ParentBased Sampler] ( #parentbased-sampler )
21
16
- [ Useful links] ( #useful-links )
22
17
- [ License] ( #license )
23
18
@@ -61,107 +56,6 @@ const { W3CBaggagePropagator } = require("@opentelemetry/core");
61
56
api .propagation .setGlobalPropagator (new W3CBaggagePropagator ());
62
57
```
63
58
64
- ### Built-in Sampler
65
-
66
- Sampler is used to make decisions on ` Span ` sampling.
67
-
68
- #### AlwaysOn Sampler
69
-
70
- Samples every trace regardless of upstream sampling decisions.
71
-
72
- > This is used as a default Sampler
73
-
74
- ``` js
75
- const { NodeTracerProvider } = require (" @opentelemetry/sdk-trace-node" );
76
- const { AlwaysOnSampler } = require (" @opentelemetry/core" );
77
-
78
- const tracerProvider = new NodeTracerProvider ({
79
- sampler: new AlwaysOnSampler ()
80
- });
81
- ```
82
-
83
- #### AlwaysOff Sampler
84
-
85
- Doesn't sample any trace, regardless of upstream sampling decisions.
86
-
87
- ``` js
88
- const { NodeTracerProvider } = require (" @opentelemetry/sdk-trace-node" );
89
- const { AlwaysOffSampler } = require (" @opentelemetry/core" );
90
-
91
- const tracerProvider = new NodeTracerProvider ({
92
- sampler: new AlwaysOffSampler ()
93
- });
94
- ```
95
-
96
- #### TraceIdRatioBased Sampler
97
-
98
- Samples some percentage of traces, calculated deterministically using the trace ID.
99
- Any trace that would be sampled at a given percentage will also be sampled at any higher percentage.
100
-
101
- The ` TraceIDRatioSampler ` may be used with the ` ParentBasedSampler ` to respect the sampled flag of an incoming trace.
102
-
103
- ``` js
104
- const { NodeTracerProvider } = require (" @opentelemetry/sdk-trace-node" );
105
- const { TraceIdRatioBasedSampler } = require (" @opentelemetry/core" );
106
-
107
- const tracerProvider = new NodeTracerProvider ({
108
- // See details of ParentBasedSampler below
109
- sampler: new ParentBasedSampler ({
110
- // Trace ID Ratio Sampler accepts a positional argument
111
- // which represents the percentage of traces which should
112
- // be sampled.
113
- root: new TraceIdRatioBasedSampler (0.5 )
114
- });
115
- });
116
- ```
117
-
118
- #### ParentBased Sampler
119
-
120
- - This is a composite sampler. ` ParentBased ` helps distinguished between the
121
- following cases:
122
- - No parent (root span).
123
- - Remote parent with ` sampled ` flag ` true `
124
- - Remote parent with ` sampled ` flag ` false `
125
- - Local parent with ` sampled ` flag ` true `
126
- - Local parent with ` sampled ` flag ` false `
127
-
128
- Required parameters:
129
-
130
- - ` root(Sampler) ` - Sampler called for spans with no parent (root spans)
131
-
132
- Optional parameters:
133
-
134
- - ` remoteParentSampled(Sampler) ` (default: ` AlwaysOn ` )
135
- - ` remoteParentNotSampled(Sampler) ` (default: ` AlwaysOff ` )
136
- - ` localParentSampled(Sampler) ` (default: ` AlwaysOn ` )
137
- - ` localParentNotSampled(Sampler) ` (default: ` AlwaysOff ` )
138
-
139
- | Parent| parent.isRemote() | parent.isSampled()| Invoke sampler|
140
- | --| --| --| --|
141
- | absent| n/a | n/a | ` root() ` |
142
- | present| true| true| ` remoteParentSampled() ` |
143
- | present| true| false| ` remoteParentNotSampled() ` |
144
- | present| false| true| ` localParentSampled() ` |
145
- | present| false| false| ` localParentNotSampled() ` |
146
-
147
- ``` js
148
- const { NodeTracerProvider } = require (" @opentelemetry/sdk-trace-node" );
149
- const { ParentBasedSampler , AlwaysOffSampler , TraceIdRatioBasedSampler } = require (" @opentelemetry/core" );
150
-
151
- const tracerProvider = new NodeTracerProvider ({
152
- sampler: new ParentBasedSampler ({
153
- // By default, the ParentBasedSampler will respect the parent span's sampling
154
- // decision. This is configurable by providing a different sampler to use
155
- // based on the situation. See configuration details above.
156
- //
157
- // This will delegate the sampling decision of all root traces (no parent)
158
- // to the TraceIdRatioBasedSampler.
159
- // See details of TraceIdRatioBasedSampler above.
160
- root: new TraceIdRatioBasedSampler (0.5 )
161
- })
162
- });
163
- ```
164
-
165
59
## Useful links
166
60
167
61
- For more information on OpenTelemetry, visit: < https://opentelemetry.io/ >
0 commit comments