NVIDIA DeepStream SDK API Reference

8.0 Release
sources/includes/prometheus/summary.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <chrono>
4 #include <cstdint>
5 #include <mutex>
6 #include <vector>
7 
8 #include "prometheus/client_metric.h"
9 #include "prometheus/detail/builder.h" // IWYU pragma: export
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"
14 
15 namespace prometheus {
16 
42  public:
43  using Quantiles = std::vector<detail::CKMSQuantiles::Quantile>;
44 
45  static const MetricType metric_type{MetricType::Summary};
46 
74  explicit Summary(const Quantiles& quantiles,
75  std::chrono::milliseconds max_age = std::chrono::seconds{60},
76  int age_buckets = 5);
77 
79  explicit Summary(Quantiles&& quantiles,
80  std::chrono::milliseconds max_age = std::chrono::seconds{60},
81  int age_buckets = 5);
82 
84  void Observe(double value);
85 
89  ClientMetric Collect() const;
90 
91  private:
92  Quantiles quantiles_;
93  mutable std::mutex mutex_;
94  std::uint64_t count_{};
95  double sum_{};
96  detail::TimeWindowQuantiles quantile_values_;
97 };
98 
126 PROMETHEUS_CPP_CORE_EXPORT detail::Builder<Summary> BuildSummary();
127 
128 } // namespace prometheus
prometheus::BuildSummary
PROMETHEUS_CPP_CORE_EXPORT detail::Builder< Summary > BuildSummary()
Return a builder to configure and register a Summary metric.
prometheus::Summary
A summary metric samples observations over a sliding window of time.
Definition: sources/includes/prometheus/summary.h:41
prometheus::Summary::Quantiles
std::vector< detail::CKMSQuantiles::Quantile > Quantiles
Definition: sources/includes/prometheus/summary.h:43
prometheus::MetricType
MetricType
Definition: sources/includes/prometheus/metric_type.h:5
prometheus::MetricType::Summary
@ Summary
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