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:

  • true para 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 BYTE o STRING.
  • 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