Add sampling doc for JS (#2482)

Co-authored-by: Patrice Chalin <chalin@users.noreply.github.com>
Co-authored-by: Severin Neumann <neumanns@cisco.com>
Co-authored-by: Marc Pichler <marcpi@edu.aau.at>
This commit is contained in:
Phillip Carter 2023-03-13 08:08:32 -07:00 committed by GitHub
parent d9acfd25ea
commit 23b6d15c49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,94 @@
---
title: Sampling
weight: 9
---
[Sampling](/docs/concepts/sampling/) is a process that restricts the amount of
traces that are generated by a system. The JavaScript SDK offers several
[head samplers](/docs/concepts/sampling#head-sampling).
## Default behavior
By default, all spans are sampled, and thus, 100% of traces are sampled. If you
do not need to manage data volume, don't bother setting a sampler.
## TraceIDRatioBasedSampler
When sampling, the most common head sampler to use is the
TraceIdRatioBasedSampler. It deterministically samples a percentage of traces
that you pass in as a parameter.
### Environment Variables
You can configure the TraceIdRatioBasedSampler with environment variables:
```shell
export OTEL_TRACES_SAMPLER="traceidratio"
export OTEL_TRACES_SAMPLER_ARG="0.1"
```
This tells the SDK to sample spans such that only 10% of traces get created.
### Node.js
You can also configure the TraceIdRatioBasedSampler in code. Here's an example
for Node.js:
<!-- prettier-ignore-start -->
{{< tabpane lang=shell persistLang=false >}}
{{< tab TypeScript >}}
import { TraceIdRatioBasedSampler } from '@opentelemetry/sdk-trace-node';
const samplePercentage = 0.1;
const sdk = new NodeSDK({
// Other SDK configuration parameters go here
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
{{< /tab >}}
{{< tab JavaScript >}}
const { TraceIdRatioBasedSampler } = require('@opentelemetry/sdk-trace-node');
const samplePercentage = 0.1;
const sdk = new NodeSDK({
// Other SDK configuration parameters go here
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
{{< /tab >}}
{{< /tabpane >}}
<!-- prettier-ignore-end -->
### Browser
You can also configure the TraceIdRatioBasedSampler in code. Here's an example
for browser apps:
<!-- prettier-ignore-start -->
{{< tabpane lang=shell persistLang=false >}}
{{< tab TypeScript >}}
import { WebTracerProvider, TraceIdRatioBasedSampler } from '@opentelemetry/sdk-trace-web';
const samplePercentage = 0.1;
const provider = new WebTracerProvider({
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
{{< /tab >}}
{{< tab JavaScript >}}
const { WebTracerProvider, TraceIdRatioBasedSampler } = require('@opentelemetry/sdk-trace-web');
const samplePercentage = 0.1;
const provider = new WebTracerProvider({
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
{{< /tab >}}
{{< /tabpane >}}
<!-- prettier-ignore-end -->