Page MenuHomeWickedGov Phorge

ProbabilisticSampler.php
No OneTemporary

Size
927 B
Referenced Files
None
Subscribers
None

ProbabilisticSampler.php

<?php
namespace Wikimedia\Telemetry;
use Wikimedia\Assert\Assert;
/**
* A {@link SamplerInterface} implementation that samples a given percentage of root spans,
* while respecting sampling decisions made by other samplers for a given trace.
*
* @since 1.43
* @internal
*/
class ProbabilisticSampler implements SamplerInterface {
/**
* The chance of sampling a root span, as a percentage (0-100).
* @var int
*/
private int $percentChance;
public function __construct( int $percentChance ) {
Assert::parameter(
$percentChance >= 0 && $percentChance <= 100,
'$percentChance',
'must be between 0 and 100 inclusive'
);
$this->percentChance = $percentChance;
}
/** @inheritDoc */
public function shouldSample( ?SpanContext $parentSpanContext ): bool {
if ( $parentSpanContext !== null ) {
return $parentSpanContext->isSampled();
}
return mt_rand( 1, 100 ) <= $this->percentChance;
}
}

File Metadata

Mime Type
text/x-php
Expires
Wed, Aug 19, 11:31 (3 w, 20 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
3c/00/aec7b5152f0c7873dc38be34c4ed
Default Alt Text
ProbabilisticSampler.php (927 B)

Event Timeline