int StatsdClient::sendDouble(string key, double value, const string &type, float sample_rate) { if (!should_send(sample_rate)) { return 0; } // partition stats by node name if set if (!d->nodename.empty()) key = key + "." + d->nodename; cleanup(key); char buf[256]; if ( fequal( sample_rate, 1.0 ) ) { snprintf(buf, sizeof(buf), "%s%s:%f|%s", d->ns.c_str(), key.c_str(), value, type.c_str()); } else { snprintf(buf, sizeof(buf), "%s%s:%f|%s|@%.2f", d->ns.c_str(), key.c_str(), value, type.c_str(), sample_rate); } return send(buf); }
int StatsdClient::send(string key, size_t value, const string &type, float sample_rate) { if (!should_send(sample_rate)) { return 0; } cleanup(key); char buf[256]; if ( fequal( sample_rate, 1.0 ) ) { snprintf(buf, sizeof(buf), "%s%s:%zd|%s", d->ns.c_str(), key.c_str(), value, type.c_str()); } else { snprintf(buf, sizeof(buf), "%s%s:%zd|%s|@%.2f", d->ns.c_str(), key.c_str(), value, type.c_str(), sample_rate); } return send(buf); }