return ss.str();
}
-Summary::Summary(const vector<double> &quantiles, double window_seconds)
- : quantiles(quantiles), window(window_seconds) {}
+void Summary::init(const vector<double> &quantiles, double window_seconds)
+{
+ this->quantiles = quantiles;
+ window = duration<double>(window_seconds);
+}
void Summary::count_event(double val)
{
// need anything fancy.
class Summary {
public:
- Summary(const std::vector<double> &quantiles, double window_seconds);
+ void init(const std::vector<double> &quantiles, double window_seconds);
void count_event(double val);
std::string serialize(Metrics::Laziness laziness, const std::string &name, const std::vector<std::pair<std::string, std::string>> &labels);
private:
- const std::vector<double> quantiles;
- const std::chrono::duration<double> window;
+ std::vector<double> quantiles;
+ std::chrono::duration<double> window;
mutable std::mutex mu;
std::deque<std::pair<std::chrono::steady_clock::time_point, double>> values;
char frame_index_str[64];
snprintf(frame_index_str, sizeof(frame_index_str), "%u", frame_index);
- summaries[card_index][frame_index].reset(
- new Summary[2]{{{0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99}, 60.0},
- {{0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99}, 60.0}});
+ vector<double> quantiles{0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99};
+ summaries[card_index][frame_index].reset(new Summary[2]);
+ summaries[card_index][frame_index][0].init(quantiles, 60.0);
+ summaries[card_index][frame_index][1].init(quantiles, 60.0);
global_metrics.add("latency_seconds",
{{ "measuring_point", measuring_point },
{ "card", card_index_str },