sample_rate
Compatible avec :
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Description
Cette fonction détermine s'il faut inclure un événement en fonction d'une stratégie d'échantillonnage déterministe. Cette fonction renvoie :
truepour une fraction des valeurs d'entrée, équivalente à (rateNumerator/rateDenominator), indiquant que l'événement doit être inclus dans l'échantillon.falseindiquant que l'événement ne doit pas être inclus dans l'échantillon.
Cette fonction est utile pour les scénarios d'optimisation dans lesquels vous ne souhaitez traiter qu'un sous-ensemble d'événements. Équivalent à :
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Types de données des paramètres
- byteOrString : expression qui renvoie
BYTEouSTRING. - rateNumerator : "INT"
- rateDenominator: 'INT'
Type renvoyé
BOOL
Exemple de code
events:
$e.metadata.event_type = "NETWORK_CONNECTION"
$asset_id = $e.principal.asset.asset_id
optimization.sample_rate($e.metadata.id, 1, 5) // Only 1 out of every 5 events
match:
$asset_id over 1h
outcome:
$event_count = count_distinct($e.metadata.id)
// estimate the usage by multiplying by the inverse of the sample rate
$usage_past_hour = sum(5.0 * $e.network.sent_bytes)
condition:
// Requiring a certain number of events after sampling avoids bias (e.g. a
// device with just 1 connection will still show up 20% of the time and
// if we multiply that traffic by 5, we'll get an incorrect estimate)
$e and ($usage_past_hour > 1000000000) and $event_count >= 100