NVIDIA DeepStream SDK API Reference

8.0 Release
sources/includes/prometheus/detail/time_window_quantiles.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <chrono>
4 #include <cstddef>
5 #include <vector>
6 
7 #include "prometheus/detail/ckms_quantiles.h" // IWYU pragma: export
8 #include "prometheus/detail/core_export.h"
9 
10 // IWYU pragma: private, include "prometheus/summary.h"
11 
12 namespace prometheus {
13 namespace detail {
14 
16  using Clock = std::chrono::steady_clock;
17 
18  public:
19  TimeWindowQuantiles(const std::vector<CKMSQuantiles::Quantile>& quantiles,
20  Clock::duration max_age_seconds, int age_buckets);
21 
22  double get(double q) const;
23  void insert(double value);
24 
25  private:
26  CKMSQuantiles& rotate() const;
27 
28  const std::vector<CKMSQuantiles::Quantile>& quantiles_;
29  mutable std::vector<CKMSQuantiles> ckms_quantiles_;
30  mutable std::size_t current_bucket_;
31 
32  mutable Clock::time_point last_rotation_;
33  const Clock::duration rotation_interval_;
34 };
35 
36 } // namespace detail
37 } // namespace prometheus
prometheus::detail::CKMSQuantiles
Definition: sources/includes/prometheus/detail/ckms_quantiles.h:15
prometheus::detail::TimeWindowQuantiles
Definition: sources/includes/prometheus/detail/time_window_quantiles.h:15
deepstream::time_point
std::chrono::steady_clock::time_point time_point
Definition: service-maker/sources/modules/measure_fps_probe/measure_fps_probe.hpp:32
prometheus
Definition: sources/includes/prometheus/check_names.h:8
PROMETHEUS_CPP_CORE_EXPORT
#define PROMETHEUS_CPP_CORE_EXPORT
Definition: sources/includes/prometheus/detail/core_export.h:15