8 #include "prometheus/client_metric.h"
9 #include "prometheus/detail/builder.h"
10 #include "prometheus/detail/ckms_quantiles.h"
11 #include "prometheus/detail/core_export.h"
12 #include "prometheus/detail/time_window_quantiles.h"
13 #include "prometheus/metric_type.h"
43 using Quantiles = std::vector<detail::CKMSQuantiles::Quantile>;
74 explicit Summary(
const Quantiles& quantiles,
75 std::chrono::milliseconds max_age = std::chrono::seconds{60},
79 explicit Summary(Quantiles&& quantiles,
80 std::chrono::milliseconds max_age = std::chrono::seconds{60},
84 void Observe(
double value);
89 ClientMetric Collect()
const;
93 mutable std::mutex mutex_;
94 std::uint64_t count_{};
96 detail::TimeWindowQuantiles quantile_values_;