sample_rate
Supportato in:
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Descrizione
Questa funzione determina se includere un evento in base a una strategia di campionamento deterministico. Questa funzione restituisce:
trueper una frazione dei valori di input, equivalente a (rateNumerator/rateDenominator), che indica che l'evento deve essere incluso nel campione.falseche indica che l'evento non deve essere incluso nel campione.
Questa funzione è utile per gli scenari di ottimizzazione in cui vuoi elaborare solo un sottoinsieme di eventi. Equivalente a:
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Tipi di dati dei parametri
- byteOrString: espressione che restituisce un valore
BYTEoSTRING. - rateNumerator: 'INT'
- rateDenominator: 'INT'
Tipo restituito
BOOL
Esempio di codice
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