mirror of
https://github.com/jupp0r/prometheus-cpp.git
synced 2026-07-21 14:33:30 +00:00
Make summary quantiles non-const
This change removes an unnecessary API constraint that makes it harder to dynamically construct quantile configurations for summaries. Fixes #425
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
[
|
||||
{ include: [ "@<gmock/.*>", private, "<gmock/gmock.h>", public ] },
|
||||
{ include: [ "@<gtest/.*>", private, "<gtest/gtest.h>", public ] }
|
||||
{ include: [ "@<gtest/.*>", private, "<gtest/gtest.h>", public ] },
|
||||
{ include: [ "@<bits/this_thread_sleep.h>", private, "<thread>", public ]}
|
||||
]
|
||||
|
||||
@@ -15,21 +15,21 @@ namespace detail {
|
||||
class PROMETHEUS_CPP_CORE_EXPORT CKMSQuantiles {
|
||||
public:
|
||||
struct PROMETHEUS_CPP_CORE_EXPORT Quantile {
|
||||
const double quantile;
|
||||
const double error;
|
||||
const double u;
|
||||
const double v;
|
||||
|
||||
Quantile(double quantile, double error);
|
||||
|
||||
double quantile;
|
||||
double error;
|
||||
double u;
|
||||
double v;
|
||||
};
|
||||
|
||||
private:
|
||||
struct Item {
|
||||
/*const*/ double value;
|
||||
double value;
|
||||
int g;
|
||||
/*const*/ int delta;
|
||||
int delta;
|
||||
|
||||
explicit Item(double value, int lower_delta, int delta);
|
||||
Item(double value, int lower_delta, int delta);
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
@@ -92,5 +93,13 @@ TEST(SummaryTest, max_age) {
|
||||
test_value(std::numeric_limits<double>::quiet_NaN());
|
||||
}
|
||||
|
||||
TEST(SummaryTest, construction_with_dynamic_quantile_vector) {
|
||||
auto quantiles = Summary::Quantiles{{0.99, 0.001}};
|
||||
quantiles.push_back({0.5, 0.05});
|
||||
|
||||
Summary summary{quantiles, std::chrono::seconds(1), 2};
|
||||
summary.Observe(8.0);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace prometheus
|
||||
|
||||
Reference in New Issue
Block a user