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 :

  • true pour une fraction des valeurs d'entrée, équivalente à (rateNumerator / rateDenominator), indiquant que l'événement doit être inclus dans l'échantillon.
  • false indiquant 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 BYTE ou STRING.
  • 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