NVIDIA DeepStream SDK API Reference

9.2 Release
includes/prometheus/detail/time_window_quantiles.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #pragma once
19 
20 #include <chrono>
21 #include <cstddef>
22 #include <vector>
23 
24 #include "prometheus/detail/ckms_quantiles.h" // IWYU pragma: export
25 #include "prometheus/detail/core_export.h"
26 
27 // IWYU pragma: private, include "prometheus/summary.h"
28 
29 namespace prometheus {
30 namespace detail {
31 
33  using Clock = std::chrono::steady_clock;
34 
35  public:
36  TimeWindowQuantiles(const std::vector<CKMSQuantiles::Quantile>& quantiles,
37  Clock::duration max_age_seconds, int age_buckets);
38 
39  double get(double q) const;
40  void insert(double value);
41 
42  private:
43  CKMSQuantiles& rotate() const;
44 
45  const std::vector<CKMSQuantiles::Quantile>& quantiles_;
46  mutable std::vector<CKMSQuantiles> ckms_quantiles_;
47  mutable std::size_t current_bucket_;
48 
49  mutable Clock::time_point last_rotation_;
50  const Clock::duration rotation_interval_;
51 };
52 
53 } // namespace detail
54 } // namespace prometheus
prometheus::detail::CKMSQuantiles
Definition: includes/prometheus/detail/ckms_quantiles.h:32
pydeepstreamdoc::node::NodeDoc::get
constexpr const char * get
Definition: service-maker/sources/python/src/bindings/docstrings/nodedoc.h:34
PROMETHEUS_CPP_CORE_EXPORT
#define PROMETHEUS_CPP_CORE_EXPORT
Definition: includes/prometheus/detail/core_export.h:31
prometheus::detail::TimeWindowQuantiles
Definition: includes/prometheus/detail/time_window_quantiles.h:32
deepstream::time_point
std::chrono::steady_clock::time_point time_point
Definition: service-maker/sources/modules/measure_fps_probe/measure_fps_probe.hpp:37
prometheus
Definition: includes/prometheus/check_names.h:25