| Kea 3.0.2-git

isc::perfmon Namespace Reference

## Classes
class | Alarm
| Defines an alarm for a duration. More...
class | AlarmParser
| Parses configuration parameters for a single Alarm. More...
struct | AlarmPrimaryKeyTag
| Tag for index by primary key (DurationKey). More...
class | AlarmStore
| Maintains an in-memory store of alarms. More...
class | DuplicateAlarm
| Exception thrown when an attempt was made to add a duplicate key to either the duration or alarm stores. More...
class | DuplicateDurationKey
| Exception thrown when an attempt was made to add a duplicate duration to the store. More...
class | DurationDataInterval
| Embodies a span of time (i.e. More...
class | DurationKey
| Houses the composite key that uniquely identifies a duration: More...
class | DurationKeyParser
| Parses configuration parameters for a single DurationKey. More...
struct | DurationKeyTag
| Tag for index by primary key (DurationKey). More...
struct | IntervalStartTag
| Tag for index by interval start time. More...
class | MonitoredDuration
class | MonitoredDurationStore
| Maintains an in-memory store of durations. More...
class | PerfMonConfig
| Houses the PerfMon configuration parameters for a single scope (e.g. More...
class | PerfMonMgr
| Singleton which provides overall configuration, control, and state of the PerfMon hook library. More...

## Typedefs
typedef std::vector< AlarmPtr > | AlarmCollection
| Type for a collection of AlarmPtrs.
typedef boost::shared_ptr< AlarmCollection > | AlarmCollectionPtr
| Type for a pointer to a collection of AlarmPtrs.
typedef boost::multi_index_container< AlarmPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< AlarmPrimaryKeyTag >, boost::multi_index::identity< DurationKey > > > > | AlarmContainer
| A multi index container holding pointers to alarms.
typedef boost::shared_ptr< Alarm > | AlarmPtr
| Defines a pointer to an Alarm instance.
typedef boost::shared_ptr< AlarmStore > | AlarmStorePtr
typedef boost::posix_time::time_duration | Duration
typedef boost::shared_ptr< DurationDataInterval > | DurationDataIntervalPtr
| Defines a pointer to a DurationDataInterval instance.
typedef boost::shared_ptr< DurationKey > | DurationKeyPtr
| Defines a pointer to a DurationKey instance.
typedef std::vector< MonitoredDurationPtr > | MonitoredDurationCollection
| Type for a collection of MonitoredDurationPtrs.
typedef boost::shared_ptr< MonitoredDurationCollection > | MonitoredDurationCollectionPtr
| Type for a pointer to a collection of MonitoredDurationPtrs.
typedef boost::multi_index_container< MonitoredDurationPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< DurationKeyTag >, boost::multi_index::composite_key< MonitoredDuration, boost::multi_index::const_mem_fun< DurationKey, uint8_t, &DurationKey::getQueryType >, boost::multi_index::const_mem_fun< DurationKey, uint8_t, &DurationKey::getResponseType >, boost::multi_index::const_mem_fun< DurationKey, std::string, &DurationKey::getStartEventLabel >, boost::multi_index::const_mem_fun< DurationKey, std::string, &DurationKey::getStopEventLabel >, boost::multi_index::const_mem_fun< DurationKey, dhcp::SubnetID, &DurationKey::getSubnetId > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< IntervalStartTag >, boost::multi_index::const_mem_fun< MonitoredDuration, Timestamp, &MonitoredDuration::getCurrentIntervalStart > > > > | MonitoredDurationContainer
| A multi index container holding pointers to durations.
typedef boost::shared_ptr< MonitoredDuration > | MonitoredDurationPtr
typedef boost::shared_ptr< MonitoredDurationStore > | MonitoredDurationStorePtr
typedef boost::shared_ptr< PerfMonConfig > | PerfMonConfigPtr
| Defines a shared pointer to a PerfMonConfig.
typedef boost::shared_ptr< PerfMonMgr > | PerfMonMgrPtr
| Defines a shared pointer to a PerfMonMgr.
typedef boost::posix_time::ptime | Timestamp

## Functions
std::ostream & | operator<< (std::ostream &os, const DurationKey &key)

## Variables
PerfMonMgrPtr | mgr
| PerfMonMgr singleton.
isc::log::Logger | perfmon_logger ("perfmon-hooks")

## Typedef Documentation

## ◆ AlarmCollection

typedef std::vector<AlarmPtr> isc::perfmon::AlarmCollection

Type for a collection of AlarmPtrs.

Definition at line 62 of file alarm_store.h.

## ◆ AlarmCollectionPtr

typedef boost::shared_ptr<AlarmCollection> isc::perfmon::AlarmCollectionPtr

Type for a pointer to a collection of AlarmPtrs.

Definition at line 65 of file alarm_store.h.

## ◆ AlarmContainer

typedef boost::multi_index_container< AlarmPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag<AlarmPrimaryKeyTag>, boost::multi_index::identity<DurationKey> > >> isc::perfmon::AlarmContainer

A multi index container holding pointers to alarms.

The alarms in the container may be accessed using different indexes:

- using the index on DurationKey members, AlarmPrimaryKeyTag
- others to follow based on API

Indexes can be accessed using the index number (from 0 to n) or a name tag. It is recommended to use the tags to access indexes as they do not depend on the order of indexes in the container.

Definition at line 59 of file alarm_store.h.

## ◆ AlarmPtr

typedef boost::shared_ptr<Alarm> isc::perfmon::AlarmPtr

Defines a pointer to an Alarm instance.

Definition at line 168 of file alarm.h.

## ◆ AlarmStorePtr

typedef boost::shared_ptr<AlarmStore> isc::perfmon::AlarmStorePtr

Definition at line 181 of file alarm_store.h.

## ◆ Duration

typedef boost::posix_time::time_duration isc::perfmon::Duration

Definition at line 21 of file monitored_duration.h.

## ◆ DurationDataIntervalPtr

typedef boost::shared_ptr<DurationDataInterval> isc::perfmon::DurationDataIntervalPtr

Defines a pointer to a DurationDataInterval instance.

Definition at line 126 of file monitored_duration.h.

## ◆ DurationKeyPtr

typedef boost::shared_ptr<DurationKey> isc::perfmon::DurationKeyPtr

Defines a pointer to a DurationKey instance.

Definition at line 321 of file monitored_duration.h.

## ◆ MonitoredDurationCollection

typedef std::vector<MonitoredDurationPtr> isc::perfmon::MonitoredDurationCollection

Type for a collection of MonitoredDurationPtrs.

Definition at line 90 of file monitored_duration_store.h.

## ◆ MonitoredDurationCollectionPtr

typedef boost::shared_ptr<MonitoredDurationCollection> isc::perfmon::MonitoredDurationCollectionPtr

Type for a pointer to a collection of MonitoredDurationPtrs.

Definition at line 93 of file monitored_duration_store.h.

## ◆ MonitoredDurationContainer

typedef boost::multi_index_container< MonitoredDurationPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag<DurationKeyTag>, boost::multi_index::composite_key< MonitoredDuration, boost::multi_index::const_mem_fun<DurationKey, uint8_t, &DurationKey::getQueryType>, boost::multi_index::const_mem_fun<DurationKey, uint8_t, &DurationKey::getResponseType>, boost::multi_index::const_mem_fun<DurationKey, std::string, &DurationKey::getStartEventLabel>, boost::multi_index::const_mem_fun<DurationKey, std::string, &DurationKey::getStopEventLabel>, boost::multi_index::const_mem_fun<DurationKey, dhcp::SubnetID, &DurationKey::getSubnetId> > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag<IntervalStartTag>, boost::multi_index::const_mem_fun<MonitoredDuration, Timestamp, &MonitoredDuration::getCurrentIntervalStart> > >> isc::perfmon::MonitoredDurationContainer

A multi index container holding pointers to durations.

The durations in the container may be accessed using different indexes:

- using the index on DurationKey members, DurationKeyTag
- others to follow based on API

Indexes can be accessed using the index number (from 0 to n) or a name tag. It is recommended to use the tags to access indexes as they do not depend on the order of indexes in the container.

Definition at line 87 of file monitored_duration_store.h.

## ◆ MonitoredDurationPtr

typedef boost::shared_ptr<MonitoredDuration> isc::perfmon::MonitoredDurationPtr

Definition at line 503 of file monitored_duration.h.

## ◆ MonitoredDurationStorePtr

typedef boost::shared_ptr<MonitoredDurationStore> isc::perfmon::MonitoredDurationStorePtr

Definition at line 217 of file monitored_duration_store.h.

## ◆ PerfMonConfigPtr

typedef boost::shared_ptr<PerfMonConfig> isc::perfmon::PerfMonConfigPtr

Defines a shared pointer to a PerfMonConfig.

Definition at line 262 of file perfmon_config.h.

## ◆ PerfMonMgrPtr

typedef boost::shared_ptr<PerfMonMgr> isc::perfmon::PerfMonMgrPtr

Defines a shared pointer to a PerfMonMgr.

Definition at line 314 of file perfmon_mgr.h.

## ◆ Timestamp

typedef boost::posix_time::ptime isc::perfmon::Timestamp

Definition at line 20 of file monitored_duration.h.

## Function Documentation

## ◆ operator<<()

std::ostream & isc::perfmon::operator<< | ( | std::ostream & | os,
|  | const DurationKey & | key )

Definition at line 236 of file monitored_duration.cc.

References isc::perfmon::DurationKey::getLabel().

Here is the call graph for this function:

## Variable Documentation

## ◆ mgr

PerfMonMgrPtr isc::perfmon::mgr

PerfMonMgr singleton.

Definition at line 24 of file perfmon_callouts.cc.

Referenced by load(), perfmon_control(), perfmon_get_all_durations(), pkt4_send(), and pkt6_send().

## ◆ perfmon_logger

isc::log::Logger isc::perfmon::perfmon_logger | ( | "perfmon-hooks" |  | ) |

Definition at line 17 of file perfmon_log.h.

Referenced by dhcp4_srv_configured(), dhcp6_srv_configured(), load(), isc::perfmon::PerfMonMgr::perfmonControlHandler(), isc::perfmon::PerfMonMgr::perfmonGetAllDurationsHandler(), pkt4_send(), pkt6_send(), isc::perfmon::PerfMonMgr::processPktEventStack(), isc::perfmon::PerfMonMgr::reportAlarm(), and unload().