sample_rate
Compatible con:
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Descripción
Esta función determina si se debe incluir un evento según una estrategia de muestreo determinística. Esta función devuelve lo siguiente:
truepara una fracción de los valores de entrada, equivalente a (rateNumerator/rateDenominator), lo que indica que el evento se debe incluir en la muestra.false, que indica que el evento no se debe incluir en la muestra.
Esta función es útil para situaciones de optimización en las que solo deseas procesar un subconjunto de eventos. Equivale a:
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Tipos de datos de parámetros
- byteOrString: Expresión que se evalúa como
BYTEoSTRING. - rateNumerator: "INT"
- rateDenominator: "INT"
Tipo de datos que se muestra
BOOL
Muestra de código
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