public function samplingDataProvider() { $unsampled = new StatsdData(); $unsampled->setKey('foo'); $unsampled->setValue(1); $sampled = new StatsdData(); $sampled->setKey('foo'); $sampled->setValue(1); $sampled->setSampleRate('0.1'); return array(array($unsampled, 1, 0, $unsampled), array($sampled, 1, 0, null), array($sampled, 1, 4, $sampled), array($unsampled, 0.1, 4, $sampled), array($sampled, 0.5, 0, null), array($sampled, 0.5, 4, $sampled)); }
public function samplingDataProvider() { $unsampled = new StatsdData(); $unsampled->setKey('foo'); $unsampled->setValue(1); $sampled = new StatsdData(); $sampled->setKey('foo'); $sampled->setValue(1); $sampled->setSampleRate('0.1'); return [[$unsampled, 1, 0, true], [$sampled, 1, 0, false], [$sampled, 1, 4, true], [$unsampled, 0.1, 0, false], [$sampled, 0.5, 0, false], [$sampled, 0.5, 4, false]]; }
private function appendToBuffer(StatsdData $data) { if ($this->samplingRate < 1) { $data->setSampleRate($this->samplingRate); $result = call_user_func($this->samplingFunction, 0, floor(1 / $this->samplingRate)); if ($result == 0) { array_push($this->buffer, $data); } } else { array_push($this->buffer, $data); } }