| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- #pragma once
 
- #include <chrono>
 
- #include <cstdint>
 
- #include <mutex>
 
- #include <vector>
 
- #include "prometheus/client_metric.h"
 
- #include "prometheus/detail/ckms_quantiles.h"
 
- #include "prometheus/detail/time_window_quantiles.h"
 
- #include "prometheus/metric_type.h"
 
- namespace prometheus {
 
- class Summary {
 
-  public:
 
-   using Quantiles = std::vector<detail::CKMSQuantiles::Quantile>;
 
-   static const MetricType metric_type = MetricType::Summary;
 
-   Summary(const Quantiles& quantiles,
 
-           std::chrono::milliseconds max_age_seconds = std::chrono::seconds(60),
 
-           int age_buckets = 5);
 
-   void Observe(double value);
 
-   ClientMetric Collect();
 
-  private:
 
-   const Quantiles quantiles_;
 
-   std::mutex mutex_;
 
-   double count_;
 
-   double sum_;
 
-   detail::TimeWindowQuantiles quantile_values_;
 
- };
 
- }  // namespace prometheus
 
 
  |