]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
updated ChangeLog, AUTHORS and addressed formatting
authorRazvan Becheriu <razvan@isc.org>
Mon, 15 Jul 2019 11:47:56 +0000 (14:47 +0300)
committerRazvan Becheriu <razvan@isc.org>
Mon, 15 Jul 2019 11:47:56 +0000 (14:47 +0300)
AUTHORS
ChangeLog
src/lib/stats/observation.cc
src/lib/stats/observation.h
src/lib/stats/stats_mgr.cc
src/lib/stats/stats_mgr.h
src/lib/stats/tests/observation_unittest.cc

diff --git a/AUTHORS b/AUTHORS
index 170ed305c250dcaf6dd7e77df63d2c2259189145..0f59b9f56c2df0122ddb1b7de1d2b5c9023060b3 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -193,6 +193,7 @@ We have received the following contributions:
 
  - Franciszek Gorski
    2018-10: Makefile bug fixed
+   2019-07: Statistics enhancements
 
  - Suzanne Goldlust
    2018-10: API documentation
index 4bc599d53b97bab113ad5c2b6e84a4f06f1c5ca9..b3956c5ebe36abc199efa453e735e3dd1abe4142 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1620.  [func]          franek, razvan
+       Kea statistics improvements: Support for storing more than one
+       sample.
+       (Gitlab #696,!418, git c7b8c275758c96f56081e02da429f5dd9d653b87)
+
 1619.  [func]          marcin
        Add support for associating subnets with the server tags in the
        mysql_cb hooks library.
index 950ed74c6c2678c318912d6a15e3a2ffc76cbe69..c82c1db47b413cf1c63b045781c088b4d69ba7d4 100644 (file)
@@ -164,7 +164,7 @@ size_t Observation::getSizeInternal(StorageType& storage, Type exp_type) const {
 
 template<typename SampleType, typename StorageType>
 void Observation::setValueInternal(SampleType value, StorageType& storage,
-    Type exp_type) {
+                                   Type exp_type) {
     if (type_ != exp_type) {
         isc_throw(InvalidStatType, "Invalid statistic type requested: "
                   << typeToText(exp_type) << ", but the actual type is "
@@ -247,7 +247,8 @@ std::list<StringSample> Observation::getStrings() const {
 }
 
 template<typename SampleType, typename Storage>
-std::list<SampleType> Observation::getValuesInternal(Storage& storage, Type exp_type) const {
+std::list<SampleType> Observation::getValuesInternal(Storage& storage,
+                                                     Type exp_type) const {
     if (type_ != exp_type) {
         isc_throw(InvalidStatType, "Invalid statistic type requested: "
                   << typeToText(exp_type) << ", but the actual type is "
@@ -265,7 +266,8 @@ std::list<SampleType> Observation::getValuesInternal(Storage& storage, Type exp_
 
 template<typename StorageType>
 void Observation::setMaxSampleAgeInternal(StorageType& storage,
-    const StatsDuration& duration, Type exp_type) {
+                                          const StatsDuration& duration,
+                                          Type exp_type) {
     if (type_ != exp_type) {
         isc_throw(InvalidStatType, "Invalid statistic type requested: "
                   << typeToText(exp_type) << ", but the actual type is "
@@ -289,7 +291,8 @@ void Observation::setMaxSampleAgeInternal(StorageType& storage,
 
 template<typename StorageType>
 void Observation::setMaxSampleCountInternal(StorageType& storage,
-    uint32_t max_samples, Type exp_type) {
+                                            uint32_t max_samples,
+                                            Type exp_type) {
     if (type_ != exp_type) {
         isc_throw(InvalidStatType, "Invalid statistic type requested: "
                   << typeToText(exp_type) << ", but the actual type is "
index 086898fd54cb75671de5c92c79211cb1dd6f197e..0fa2b7f43956c44af138aa8aa95f85a5a599d27e 100644 (file)
@@ -121,10 +121,10 @@ class Observation {
     ///
     /// @param duration determines maximum age of samples
     /// Example:
-    /// To set a statistic to keep observations for the last 5 minutes,
-    /// call: setMaxSampleAge(time_duration(0, 5, 0, 0));
+    /// To set a statistic to keep observations for the last 5 minutes, call:
+    /// setMaxSampleAge(time_duration(0, 5, 0, 0));
     /// To revert statistic to a single value, call:
-    /// setMaxSampleAge(time_duration(0, 0, 0, 0))
+    /// setMaxSampleAge(time_duration(0, 0, 0, 0));
     void setMaxSampleAge(const StatsDuration& duration);
 
     /// @brief Determines how many samples of a given statistic should be kept.
@@ -134,6 +134,7 @@ class Observation {
     /// be kept. When adding max_samples + 1 sample, the oldest sample will be
     /// discarded.
     ///
+    ///
     /// @param max_samples how many samples of a given statistic should be kept
     /// Example:
     /// To set a statistic to keep the last 100 observations, call:
@@ -268,7 +269,7 @@ private:
     /// @tparam Storage type of storage (e.g. list<IntegerSample>)
     /// @param storage storage which size will be returned
     /// @param exp_type expected observation type (used for sanity checking)
-    /// @return Size of storage
+    /// @return size of storage
     template<typename StorageType>
     size_t getSizeInternal(StorageType& storage, Type exp_type) const;
 
@@ -306,7 +307,7 @@ private:
     /// @param observation storage
     /// @param exp_type expected observation type (used for sanity checking)
     /// @throw InvalidStatType if observation type mismatches
-    /// @return List of observed samples
+    /// @return list of observed samples
     template<typename SampleType, typename Storage>
     std::list<SampleType> getValuesInternal(Storage& storage,
                                             Type exp_type) const;
@@ -338,7 +339,7 @@ private:
     Type type_;
 
     /// @brief Maximum number of samples
-    /// The limit is represent as a pair
+    /// The limit is represented as a pair
     /// of bool value and uint32_t
     /// Only one kind of limit can be active
     /// The bool value informs which limit
@@ -349,7 +350,7 @@ private:
     std::pair<bool, uint32_t> max_sample_count_ = std::make_pair(true, 20);
 
     /// @brief Maximum timespan of samples
-    /// The limit is represent as a pair
+    /// The limit is represented as a pair
     /// of bool value and StatsDuration(boost::posix_time::time_duration)
     /// Only one kind of limit can be active
     /// The bool value informs which limit
index 910f4a2f8f8064c145469dbd5ff3be7131efb70d..3ae30e24edb403d14aadcbc7412e4a8fc3d63ee1 100644 (file)
@@ -90,7 +90,8 @@ bool StatsMgr::setMaxSampleAge(const std::string& name,
     }
 }
 
-bool StatsMgr::setMaxSampleCount(const std::string& name, uint32_t max_samples) {
+bool StatsMgr::setMaxSampleCount(const std::string& name,
+                                 uint32_t max_samples) {
     ObservationPtr obs = getObservation(name);
     if (obs) {
         obs->setMaxSampleCount(max_samples);
index 86f8d2abb9a0f1d91da34155d7e7b752fc3ef7bf..44401762b0a424c7d4a981c882d6171191f119c7 100644 (file)
@@ -138,10 +138,11 @@ class StatsMgr : public boost::noncopyable {
     /// @param name name of the observation
     /// @param duration determines maximum age of samples
     /// @return true if successful, false if there's no such statistic
-    /// Example: to set a statistic to keep observations for the last 5 minutes,
-    /// call setMaxSampleAge("incoming-packets", time_duration(0, 5, 0, 0));
+    /// Example:
+    /// To set a statistic to keep observations for the last 5 minutes, call:
+    /// setMaxSampleAge("incoming-packets", time_duration(0, 5, 0, 0));
     /// to revert statistic to a single value, call:
-    /// setMaxSampleAge("incoming-packets" time_duration(0, 0, 0, 0))
+    /// setMaxSampleAge("incoming-packets", time_duration(0, 0, 0, 0));
     bool setMaxSampleAge(const std::string& name, const StatsDuration& duration);
 
     /// @brief Determines how many samples of a given statistic should be kept.
index d9e33b2719877bdd55aa92797dd9b1b206969a06..1681dcdc3412300cdcc4eb34b1707026d45fdc47 100644 (file)
@@ -493,7 +493,6 @@ TEST_F(ObservationTest, floatToJSON) {
 // See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design for
 // details.
 TEST_F(ObservationTest, durationToJSON) {
-
     // String which contains first added sample
     std::string first_sample = ", \"01:02:03.000004\", \"" +
         isc::util::ptimeToText(c.getDuration().second) + "\" ] ]";
@@ -515,6 +514,7 @@ TEST_F(ObservationTest, stringToJSON) {
     // String which contains first added sample
     std::string first_sample = ", \"1234\", \"" +
         isc::util::ptimeToText(d.getString().second) + "\" ] ]";
+
     d.setValue("Lorem ipsum dolor sit amet");
 
     std::string exp = "[ [ \"Lorem ipsum dolor sit amet\", \"" +