25 #include "prometheus/client_metric.h"
26 #include "prometheus/detail/builder.h"
27 #include "prometheus/detail/ckms_quantiles.h"
28 #include "prometheus/detail/core_export.h"
29 #include "prometheus/detail/time_window_quantiles.h"
30 #include "prometheus/metric_type.h"
60 using Quantiles = std::vector<detail::CKMSQuantiles::Quantile>;
91 explicit Summary(
const Quantiles& quantiles,
92 std::chrono::milliseconds max_age = std::chrono::seconds{60},
96 explicit Summary(Quantiles&& quantiles,
97 std::chrono::milliseconds max_age = std::chrono::seconds{60},
101 void Observe(
double value);
106 ClientMetric Collect()
const;
109 Quantiles quantiles_;
110 mutable std::mutex mutex_;
111 std::uint64_t count_{};
113 detail::TimeWindowQuantiles quantile_values_;