![]() |
Kea 3.0.0
|
Houses the PerfMon configuration parameters for a single scope (e.g. More...
#include <perfmon_config.h>
Public Member Functions | |
| PerfMonConfig (uint16_t family) | |
| Constructor. | |
| virtual | ~PerfMonConfig ()=default |
| Destructor. | |
| uint32_t | getAlarmReportSecs () const |
| Fetches the value of alarm-report-secs. | |
| AlarmStorePtr | getAlarmStore () |
| Get the alarm store. | |
| bool | getEnableMonitoring () const |
| Fetches the value of enable-monitoring. | |
| uint16_t | getFamily () |
| Get protocol family. | |
| uint32_t | getIntervalWidthSecs () const |
| Fetches the value of interval-width-secs. | |
| bool | getStatsMgrReporting () const |
| Fetches the value of stats-mgr-reporting. | |
| void | parse (data::ConstElementPtr config) |
| Extracts member values from an Element::map. | |
| void | parseAlarms (data::ConstElementPtr config) |
| Re-creates the AlarmStore and populates it by parsing a list of alarm elements. | |
| void | setAlarmReportSecs (uint32_t value) |
| Sets the value of alarm-report-secs. | |
| void | setEnableMonitoring (bool value) |
| Sets the value of enable-monitoring. | |
| void | setIntervalWidthSecs (uint32_t value) |
| Sets the value of interval-width-secs. | |
| void | setStatsMgrReporting (bool value) |
| Sets the value of stats-mgr-reporting. | |
Static Public Attributes | |
| static const data::SimpleKeywords | CONFIG_KEYWORDS |
| List of valid parameters and expected types. | |
| static const data::SimpleDefaults | SIMPLE_DEFAULTS |
| List of valid parameter defaults. | |
Protected Attributes | |
| uint32_t | alarm_report_secs_ |
| Number of seconds between reports of a raised alarm. | |
| AlarmStorePtr | alarm_store_ |
| Stores the configured alarms. | |
| std::atomic< bool > | enable_monitoring_ |
| If true, performance data is processed/reported. | |
| uint16_t | family_ |
| Protocol family AF_INET or AF_INET6. | |
| uint32_t | interval_width_secs_ |
| Number of seconds a duration accumulates samples until reporting. | |
| std::atomic< bool > | stats_mgr_reporting_ |
| If true durations report to StatsMgr at the end of each interval. | |
Houses the PerfMon configuration parameters for a single scope (e.g.
global, subnet...);
Definition at line 135 of file perfmon_config.h.
|
explicit |
Constructor.
Definition at line 267 of file perfmon_config.cc.
References alarm_report_secs_, alarm_store_, enable_monitoring_, family_, interval_width_secs_, isc_throw, and stats_mgr_reporting_.
Referenced by isc::perfmon::PerfMonMgr::PerfMonMgr(), and parse().
|
virtualdefault |
Destructor.
|
inline |
Fetches the value of alarm-report-secs.
Definition at line 210 of file perfmon_config.h.
References alarm_report_secs_.
|
inline |
Get the alarm store.
Definition at line 231 of file perfmon_config.h.
References alarm_store_.
|
inline |
Fetches the value of enable-monitoring.
Definition at line 168 of file perfmon_config.h.
References enable_monitoring_.
|
inline |
Get protocol family.
Definition at line 224 of file perfmon_config.h.
References family_.
|
inline |
Fetches the value of interval-width-secs.
Definition at line 182 of file perfmon_config.h.
References interval_width_secs_.
Referenced by isc::perfmon::PerfMonMgr::perfmonGetAllDurationsHandler().
|
inline |
Fetches the value of stats-mgr-reporting.
Definition at line 196 of file perfmon_config.h.
References stats_mgr_reporting_.
Referenced by isc::perfmon::PerfMonMgr::reportToStatsMgr().
| void isc::perfmon::PerfMonConfig::parse | ( | data::ConstElementPtr | config | ) |
Extracts member values from an Element::map.
| config | map of configuration parameters. |
| DhcpConfigError | if invalid values are detected. |
Definition at line 281 of file perfmon_config.cc.
References PerfMonConfig(), alarm_report_secs_, alarm_store_, isc::data::SimpleParser::checkKeywords(), CONFIG_KEYWORDS, enable_monitoring_, family_, interval_width_secs_, isc_throw, and stats_mgr_reporting_.
Referenced by isc::perfmon::PerfMonMgr::configure().
| void isc::perfmon::PerfMonConfig::parseAlarms | ( | data::ConstElementPtr | config | ) |
Re-creates the AlarmStore and populates it by parsing a list of alarm elements.
| config | list of alarm configuration elements. |
| DhcpConfigError | if a parsing error occurs or there are duplicate alarm keys. |
Definition at line 337 of file perfmon_config.cc.
References alarm_store_, family_, isc_throw, and isc::perfmon::AlarmParser::parse().
|
inline |
Sets the value of alarm-report-secs.
| value | new value for alarm-report-secs. |
Definition at line 217 of file perfmon_config.h.
References alarm_report_secs_.
|
inline |
Sets the value of enable-monitoring.
| value | new value for enable-monitoring. |
Definition at line 175 of file perfmon_config.h.
References enable_monitoring_.
Referenced by isc::perfmon::PerfMonMgr::configure().
|
inline |
Sets the value of interval-width-secs.
| value | new value for interval-width-secs. |
Definition at line 189 of file perfmon_config.h.
References interval_width_secs_.
|
inline |
Sets the value of stats-mgr-reporting.
| value | new value for stats-mgr-reporting. |
Definition at line 203 of file perfmon_config.h.
References stats_mgr_reporting_.
|
protected |
Number of seconds between reports of a raised alarm.
Defaults to 300. A value of zero disables alarms.
Definition at line 255 of file perfmon_config.h.
Referenced by PerfMonConfig(), getAlarmReportSecs(), isc::perfmon::PerfMonMgr::init(), parse(), and setAlarmReportSecs().
|
protected |
Stores the configured alarms.
Definition at line 258 of file perfmon_config.h.
Referenced by PerfMonConfig(), isc::perfmon::PerfMonMgr::addDurationSample(), getAlarmStore(), parse(), parseAlarms(), and isc::perfmon::PerfMonMgr::reportAlarm().
|
static |
List of valid parameters and expected types.
Definition at line 138 of file perfmon_config.h.
Referenced by parse().
|
protected |
If true, performance data is processed/reported.
Defaults to true. If false the library loads and configures but does nothing. Gives users a way to keep the library loaded without it being active. Should be accessible via explicit API command.
Definition at line 243 of file perfmon_config.h.
Referenced by PerfMonConfig(), getEnableMonitoring(), parse(), isc::perfmon::PerfMonMgr::perfmonControlHandler(), isc::perfmon::PerfMonMgr::processPktEventStack(), and setEnableMonitoring().
|
protected |
Protocol family AF_INET or AF_INET6.
Definition at line 237 of file perfmon_config.h.
Referenced by PerfMonConfig(), isc::perfmon::PerfMonMgr::PerfMonMgr(), getFamily(), isc::perfmon::PerfMonMgr::init(), parse(), parseAlarms(), and isc::perfmon::PerfMonMgr::processPktEventStack().
|
protected |
Number of seconds a duration accumulates samples until reporting.
Defaults to 60.
Definition at line 247 of file perfmon_config.h.
Referenced by PerfMonConfig(), getIntervalWidthSecs(), isc::perfmon::PerfMonMgr::init(), parse(), and setIntervalWidthSecs().
|
static |
List of valid parameter defaults.
Definition at line 141 of file perfmon_config.h.
|
protected |
If true durations report to StatsMgr at the end of each interval.
Defaults to true.
Definition at line 251 of file perfmon_config.h.
Referenced by PerfMonConfig(), getStatsMgrReporting(), parse(), isc::perfmon::PerfMonMgr::perfmonControlHandler(), and setStatsMgrReporting().