sample_rate
Didukung di:
optimization.sample_rate(byteOrString, rateNumerator, rateDenominator)
Deskripsi
Fungsi ini menentukan apakah akan menyertakan peristiwa berdasarkan strategi pengambilan sampel deterministik. Fungsi ini menampilkan:
trueuntuk sebagian kecil nilai input, setara dengan (rateNumerator/rateDenominator), yang menunjukkan bahwa peristiwa harus disertakan dalam sampel.falseyang menunjukkan bahwa peristiwa tidak boleh disertakan dalam sampel.
Fungsi ini berguna untuk skenario pengoptimalan saat Anda hanya ingin memproses sebagian kecil peristiwa. Setara dengan:
hash.fingerprint2011(byteOrString) % rateDenominator < rateNumerator
Jenis data parameter
- byteOrString: Ekspresi yang dievaluasi ke
BYTEatauSTRING. - rateNumerator: 'INT'
- rateDenominator: 'INT'
Jenis hasil yang ditampilkan
BOOL
Contoh kode
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