diff --git a/influxpush.cc b/influxpush.cc index 741633f..c5c298c 100644 --- a/influxpush.cc +++ b/influxpush.cc @@ -13,9 +13,8 @@ InfluxPusher::InfluxPusher(std::string_view dbname) : d_dbname(dbname) void InfluxPusher::queueValue(const std::string& line) { - d_buffer.insert(line); - // if(d_buffer.insert(line).second) - // cout<>& values, double t, std::optional src, std::optional tag) +{ + + vector> tags{{"sv", id.sv}, {"gnssid", id.gnss}, {"sigid", id.sigid}}; + + if(src) { + tags.push_back({*tag, *src}); + } + addValue(tags, name, values, t); +} + +void InfluxPusher::addValue(const vector>& tags, string_view name, const initializer_list>& values, double t) { if(d_mute) return; if(t > 2200000000 || t < 0) { - cerr<<"Unable to store item "<; - buffer += to_string(arg); - if constexpr (!std::is_same_v) - buffer+="i"; + if constexpr (std::is_same_v) + buffer += "\""+arg+"\""; + else { + buffer += to_string(arg); + if constexpr (!std::is_same_v) + buffer+="i"; + } }, v.second); } buffer += " " + to_string((uint64_t)(t*1000000000))+"\n"; + d_nummsmts++; + d_msmtmap[(string)name]++; queueValue(buffer); - } diff --git a/influxpush.hh b/influxpush.hh index f3b990b..2f19655 100644 --- a/influxpush.hh +++ b/influxpush.hh @@ -8,11 +8,13 @@ struct InfluxPusher { - typedef std::variant var_t; + typedef std::variant var_t; explicit InfluxPusher(std::string_view dbname); void addValueObserver(int src, std::string_view name, const std::initializer_list>& values, double t, std::optional satid=std::optional()); void addValue(const SatID& id, std::string_view name, const std::initializer_list>& values, double t, std::optional src = std::optional(), std::optional tag = std::optional("src")); - + + + void addValue(const vector>& tags, string_view name, const initializer_list>& values, double t); void checkSend(); void doSend(const std::set& buffer); ~InfluxPusher(); @@ -22,4 +24,8 @@ struct InfluxPusher time_t d_lastsent{0}; string d_dbname; bool d_mute{false}; + int64_t d_nummsmts{0}; + int64_t d_numvalues{0}; + int64_t d_numdedupmsmts{0}; + map d_msmtmap; };