RTI Connext Modern C++ API Version 7.3.0
rti::core::MonitoringEventDistributionSettings Class Reference

<<extension>> Configures the distribution of event metrics. More...

#include <rti/core/PolicySettings.hpp>

Public Member Functions

 MonitoringEventDistributionSettings ()
 Creates an instance with the default settings. More...
 
MonitoringEventDistributionSettingsconcurrency_level (uint32_t the_concurrency_level)
 Defines how concurrent the push of event metrics to RTI Monitoring Library 2.0 is. More...
 
uint32_t concurrency_level () const
 Getter (see setter with the same name). More...
 
MonitoringEventDistributionSettingsdatawriter_qos_profile_name (const rti::core::optional_value< std::string > &the_datawriter_qos_profile_name)
 Sets The fully qualified name of the profile used to configure the dds::pub::DataWriter that distributes event metrics. More...
 
MonitoringEventDistributionSettingsdatawriter_qos_profile_name (const char *the_datawriter_qos_profile_name)
 Sets The fully qualified name of the profile used to configure the dds::pub::DataWriter that distributes event metrics. More...
 
rti::core::optional_value< std::string > datawriter_qos_profile_name () const
 Getter (see setter with the same name). More...
 
MonitoringEventDistributionSettingsthread (const rti::core::ThreadSettings &the_thread)
 The settings of the event metric thread. More...
 
const rti::core::ThreadSettingsthread () const
 Getter (see setter with the same name). More...
 
rti::core::ThreadSettingsthread ()
 Getter (see setter with the same name). More...
 
MonitoringEventDistributionSettingspublication_period (const dds::core::Duration &the_publication_period)
 Period at which the event metric thread publishes the event metrics that have changed since the last time they were published. More...
 
dds::core::Duration publication_period () const
 Getter (see setter with the same name) More...
 

Detailed Description

<<extension>> Configures the distribution of event metrics.

Event metrics are provided to RTI Monitoring Library 2.0 when they change.

For example, if the liveliness of a dds::pub::DataWriter is lost, a matching dds::sub::DataReader will push the new value of dds::core::status::LivelinessChangedStatus to RTI Monitoring Library 2.0 so that the liveliness status change can be distributed.

There are three kinds of event metrics:

  • Configuration metrics: Provided to RTI Monitoring Library 2.0 by pushing changes to QoS policies.
  • Status metrics: Provided to RTI Monitoring Library 2.0 by pushing changes to the event statuses such as dds::core::status::LivelinessChangedStatus.
  • Resource metrics: Provided to RTI Monitoring Library 2.0 when a resource (such as dds::pub::DataWriter) is created or deleted.

The event metrics that will be distributed for an observable resource can be configured with rti::core::MonitoringTelemetryData::metrics.

Constructor & Destructor Documentation

◆ MonitoringEventDistributionSettings()

rti::core::MonitoringEventDistributionSettings::MonitoringEventDistributionSettings ( )
inline

Creates an instance with the default settings.

Member Function Documentation

◆ concurrency_level() [1/2]

MonitoringEventDistributionSettings & rti::core::MonitoringEventDistributionSettings::concurrency_level ( uint32_t  the_concurrency_level)

Defines how concurrent the push of event metrics to RTI Monitoring Library 2.0 is.

With a concurrency_level of one, all the event metrics pushed to RTI Monitoring Library 2.0 will be stored in a single queue protected by a single mutex.

With a concurrency_level of 'n', RTI Monitoring Library 2.0 will create 'n' queues for event metrics, each queue protected by its own mutex. Each resource (e.g, a dds::sub::DataReader) will be associated with one of the queues when the resource is registered with RTI Monitoring Library 2.0. Therefore, all the event metrics for a single resource always go to the same queue.

The event metrics for two resources associated with different event queues can be pushed in parallel. This is why a higher concurrency_level provides more concurrency.

The event metrics added to the event queues are processed by a single thread configured using rti::core::MonitoringEventDistributionSettings::thread.

[default] 5

[range] [1, 100]

◆ concurrency_level() [2/2]

uint32_t rti::core::MonitoringEventDistributionSettings::concurrency_level ( ) const

Getter (see setter with the same name).

◆ datawriter_qos_profile_name() [1/3]

MonitoringEventDistributionSettings & rti::core::MonitoringEventDistributionSettings::datawriter_qos_profile_name ( const rti::core::optional_value< std::string > &  the_datawriter_qos_profile_name)

Sets The fully qualified name of the profile used to configure the dds::pub::DataWriter that distributes event metrics.

Parameters
the_datawriter_qos_profile_nameAn optional string. An unset value indicates that the RTI Monitoring Library 2.0 uses rti::core::builtin_profiles::qos_lib::generic_monitoring2().

[default] Unset

The dds::pub::DataWriter Topic is MONITORING_EVENT_TOPIC_NAME.

If null (the default value), then RTI Monitoring Library 2.0 uses rti::core::builtin_profiles::qos_lib::generic_monitoring2().

[default] null

◆ datawriter_qos_profile_name() [2/3]

MonitoringEventDistributionSettings & rti::core::MonitoringEventDistributionSettings::datawriter_qos_profile_name ( const char *  the_datawriter_qos_profile_name)

Sets The fully qualified name of the profile used to configure the dds::pub::DataWriter that distributes event metrics.

Parameters
the_datawriter_qos_profile_nameThe profile name. Cannot be NULL.

The dds::pub::DataWriter Topic is MONITORING_EVENT_TOPIC_NAME.

If null (the default value), then RTI Monitoring Library 2.0 uses rti::core::builtin_profiles::qos_lib::generic_monitoring2().

[default] null

◆ datawriter_qos_profile_name() [3/3]

rti::core::optional_value< std::string > rti::core::MonitoringEventDistributionSettings::datawriter_qos_profile_name ( ) const

Getter (see setter with the same name).

◆ thread() [1/3]

MonitoringEventDistributionSettings & rti::core::MonitoringEventDistributionSettings::thread ( const rti::core::ThreadSettings the_thread)

The settings of the event metric thread.

The event metric thread periodically publishes the event metrics pushed into RTI Monitoring Library 2.0 event metric queues after they change their values.

The thread runs at the period configured using rti::core::MonitoringEventDistributionSettings::publication_period.

[default] DDS_THREAD_SETTINGS_DEFAULT

◆ thread() [2/3]

const rti::core::ThreadSettings & rti::core::MonitoringEventDistributionSettings::thread ( ) const

Getter (see setter with the same name).

◆ thread() [3/3]

rti::core::ThreadSettings & rti::core::MonitoringEventDistributionSettings::thread ( )

Getter (see setter with the same name).

◆ publication_period() [1/2]

MonitoringEventDistributionSettings & rti::core::MonitoringEventDistributionSettings::publication_period ( const dds::core::Duration the_publication_period)

Period at which the event metric thread publishes the event metrics that have changed since the last time they were published.

With a period of 0 seconds, changes to event metrics will be published immediately after they are pushed into RTI Monitoring Library 2.0.

[default] 1 second

◆ publication_period() [2/2]

dds::core::Duration rti::core::MonitoringEventDistributionSettings::publication_period ( ) const

Getter (see setter with the same name)