Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Kea
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Pavel Zhukov
Kea
Commits
1f498cc6
Commit
1f498cc6
authored
Jul 15, 2019
by
Razvan Becheriu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated ChangeLog, AUTHORS and addressed formatting
parent
c7b8c275
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
28 additions
and
16 deletions
+28
-16
AUTHORS
AUTHORS
+1
-0
ChangeLog
ChangeLog
+5
-0
src/lib/stats/observation.cc
src/lib/stats/observation.cc
+7
-4
src/lib/stats/observation.h
src/lib/stats/observation.h
+8
-7
src/lib/stats/stats_mgr.cc
src/lib/stats/stats_mgr.cc
+2
-1
src/lib/stats/stats_mgr.h
src/lib/stats/stats_mgr.h
+4
-3
src/lib/stats/tests/observation_unittest.cc
src/lib/stats/tests/observation_unittest.cc
+1
-1
No files found.
AUTHORS
View file @
1f498cc6
...
...
@@ -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
...
...
ChangeLog
View file @
1f498cc6
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.
...
...
src/lib/stats/observation.cc
View file @
1f498cc6
...
...
@@ -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 "
...
...
src/lib/stats/observation.h
View file @
1f498cc6
...
...
@@ -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
S
ize of storage
/// @return
s
ize 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
L
ist of observed samples
/// @return
l
ist 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 represent
ed
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 represent
ed
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
...
...
src/lib/stats/stats_mgr.cc
View file @
1f498cc6
...
...
@@ -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
);
...
...
src/lib/stats/stats_mgr.h
View file @
1f498cc6
...
...
@@ -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.
...
...
src/lib/stats/tests/observation_unittest.cc
View file @
1f498cc6
...
...
@@ -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
\"
,
\"
"
+
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment