public static function send($data, $sampleRate = 1.0, array $tags = null)
{
// sampling
$sampledData = array();
if ($sampleRate < 1) {
foreach ($data as $stat => $value) {
if (mt_rand() / mt_getrandmax() <= $sampleRate) {
$sampledData[$stat] = "{$value}|@{$sampleRate}";
}
}
} else {
$sampledData = $data;
}
if (empty($sampledData)) {
return;
}
foreach ($sampledData as $stat => $value) {
if ($tags !== NULL && is_array($tags) && count($tags) > 0) {
$value .= '|';
foreach ($tags as $tag_key => $tag_val) {
$value .= '#' . $tag_key . ':' . $tag_val . ',';
}
$value = substr($value, 0, -1);
} elseif (isset($tags) && !empty($tags)) {
$value .= '|#' . $tags;
}
static::report_metric("{$stat}:{$value}");
}
}