sample_rate
Unterstützt in:
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Beschreibung
Mit dieser Funktion wird anhand einer deterministischen Stichprobenerhebung entschieden, ob ein Ereignis berücksichtigt werden soll. Diese Funktion gibt Folgendes zurück:
truefür einen Bruchteil der Eingabewerte, der (rateNumerator/rateDenominator) entspricht. Dies gibt an, dass das Ereignis in die Stichprobe aufgenommen werden soll.falsegibt an, dass das Ereignis nicht in die Stichprobe aufgenommen werden soll.
Diese Funktion ist nützlich für Optimierungsszenarien, in denen Sie nur eine Teilmenge von Ereignissen verarbeiten möchten. Entspricht:
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Parameterdatentypen
- byteOrString: Ausdruck, der entweder als
BYTEoderSTRINGausgewertet wird. - rateNumerator: 'INT'
- rateDenominator: 'INT'
Rückgabetyp
BOOL
Codebeispiel
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