sample_rate
Disponible en:
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Descripción
Esta función determina si se debe incluir un evento en función de una estrategia de muestreo determinista. Esta función devuelve lo siguiente:
truepara una fracción de los valores de entrada, equivalente a (rateNumerator/rateDenominator), que indica que el evento debe incluirse en la muestra.falseindica que el evento no debe incluirse en la muestra.
Esta función es útil en escenarios de optimización en los que solo quiere procesar un subconjunto de eventos. Equivalente a:
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Tipos de datos de parámetros
- byteOrString: expresión que da como resultado un
BYTEo unSTRING. - rateNumerator: 'INT'
- rateDenominator: 'INT'
Tipo de devolución
BOOL
Código de ejemplo
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