You are here: Part 9: RTI Monitoring Library > Configuring Monitoring Library

Configuring Monitoring Library

You can control some aspects of Monitoring Library’s behavior by setting the PropertyQosPolicy of the DomainParticipant, either via an XML QoS profile or in your application’s code prior to creating the DomainParticipant.

Two example QoS profiles are provided in
<NDDSHOME1See Paths Mentioned in Documentation>/resource/xml/RTI_MONITOR_QOS_PROFILES.xml:

This profile documents the QoS used by Monitoring Library. It can also be used as a starting point if you want to tune QoS for Monitoring Library (normally not necessary). Use cases for this include customizing DomainParticipant QoS (often the transports) to accommodate preferences or environment. This same profile can also be used to subscribe to the Monitoring Library Topics. This is useful in situations where the Monitoring Library information can be used directly by system components or it is not possible to use the RTI Monitor tool.

See the qos_library and qos_profile properties in Configuration Properties for Monitoring Library for further information on when to use the example profiles in RTI_MONITOR_QOS_PROFILES.xml.

Configuration Properties for Monitoring Library lists the configuration properties that you can set for Monitoring Library. These properties are immutable; they cannot be changed after the DomainParticipant is created.

Configuration Properties for Monitoring Library

Property Name

(all must be prepended with “rti.monitor.config.”)

Property Value

get_process_statistics

This boolean value specifies whether or not Monitoring Library should collect CPU and memory usage statistics for the process in the topic rti/dds/monitoring/domainParticipantDescription.

This property is only applicable to Linux and Windows systems—obtaining CPU and memory usage on other architectures is not supported.

CPU usage is reported in terms of time spent since the process has been started. It can be longer than the actual running time of the process on a multi-core machine.

Default: true if unspecified

new_participant_domain_id

To create a separate participant that will be used to publish monitoring information in the application, set this to the domain ID that you want to use for the newly created participant.

This property can be used with the qos_library and qos_profile properties to specify the QoS that will be used to create a new participant.

Default: Not set (means you want to reuse the participant in your application that has monitoring turned on to publish statistics information for that participant)

publish_period

Period of time to sample and publish all monitoring topics, in units of seconds.

Default: 5 if unspecified

publish_thread_priority

Priority of the thread used to sample and publish monitoring data.

This value is architecture dependent.

Default if unspecified: same as the default used in Connext DDS for the event thread:

Windows systems: -2

Linux systems: -999999 (meaning use OS-default priority)

publish_thread_stacksize

Stack size used for the thread that samples and publishes monitoring data. This value is architecture dependent.

Default if unspecified: same as the default used in Connext DDS for the event thread:

Windows systems: 0 (meaning use the default size for the executable).

Linux systems: -1 (meaning use OS’s default value).

publish_thread_options

Describes the type of thread.

Supported values (may be combined with by OR’ing with ‘|’ as seen in the default below):

  • FLOATING_POINT: Code executed within the thread may perform floating point operations
  • STDIO: Code executed within the thread may access standard
  • I/O REALTIME_PRIORITY: The thread will be scheduled on a real-time basis
  • PRIORITY_ENFORCE: Strictly enforce this thread's priority

Default: FLOATING_POINT|STDIO (same as the default used in Connext DDS for the event thread)

qos_library

Specifies the name of the QoS library that you want to use for creating entities in the monitoring library (if you do not want to use default QoS values as set by the monitoring library).

The QoS values used for internally created entities can be found in the library RTIMonitoringQosLibrary in <NDDSHOME>/resource/xml/RTI_MONITOR_QOS_PROFILES.xml.

Default: Not set (means you want to use default Monitoring Library QoS values)

qos_profile

Specifies the name of the QoS profile that you want to use for creating entities in the monitoring library (if you do not want to use the default QoS values).

The QoS values used for internally created entities can be found in the profile RTIMonitoringPublishingQosProfile in <NDDSHOME>/resource/xml/RTI_MONITOR_QOS_PROFILES.xml.

Default: Not set (means you want to use default Monitoring Library QoS values)

reset_status_change_counts

Monitoring Library obtains all statuses of all entities in the Connext DDS application. This boolean value controls whether or not the change counts in those statuses are reset by Monitoring Library.

If set to true, the change counts are reset each time Monitoring Library is done accessing them.

If set to false, the change counts truly reflect what users will see in their application and are unaffected by the access of the monitoring library.

Default: false

skip_monitor_entities

This boolean value controls whether or not the entities created internally by Monitoring Library should be included in the entity counts published by the participant entity statistics topic.

If set to true, the internal monitoring entities will not be included in the count. (Thirteen internal writers are created by the monitoring library by default.)

Default: true

skip_participant_
properties

If set to true, DomainParticipant PropertyQosPolicy name and value pairs will not be sent out through the domainParticipantDescriptionTopic. This is necessary if you are linking with Monitoring Library and any of these conditions occur:

  • The PropertyQosPolicy of a DomainParticipant has more than 32 properties.
  • Any of the properties in PropertyQosPolicy of a DomainParticipant has a name longer than 127 characters or a value longer than 511 characters.

Default: false if unspecified

skip_reader_
properties

If set to true, DataReader PropertyQosPolicy name and value pairs will not be sent out through the dataReaderDescriptionTopic. This is necessary if you are linking with Monitoring Library and any of these conditions occur:

  • The PropertyQosPolicy of a DataReader has more than 32 properties.
  • Any of the properties in PropertyQosPolicy of a DataReader has a name longer than 127 characters or a value longer than 511 characters.

Default: false if unspecified

skip_writer_properties

If set to true, DataWriter PropertyQosPolicy name and value pairs will not be sent out through the dataWriterDescriptionTopic. This is necessary if you are linking with Monitoring Library and any of these conditions occur:

  • The PropertyQosPolicy of a DataWriter has more than 32 properties.
  • Any of the properties in PropertyQosPolicy of a DataWriter has a name longer than 127 characters or a value longer than 511 characters.

Default: false if unspecified

topics

Filter for monitoring topics, with regular expression matching syntax as specified in the Connext DDS documentation (similar to the POSIX fnmatch syntax). For example, if you only want to send description topics and the entity statistics topics, but NOT the matching statistics topics, you can specify “*Description,*EntityStatistics”.

Default: * if unspecified

usertopics

Filter for user topics, with regular expression matching syntax as specified in the Connext DDS documentation (similar to the POSIX fnmatch syntax). For example, if you only want to send monitoring information for reader/writer/topic entities for topics that start with Foo or Bar, you can specify “Foo*,Bar*”.

Default: * if unspecified

verbosity

Sets the verbosity on the monitoring library for debugging purposes (does not affect the topic/data that is sent out).

  • -1: Silent
  • 0: Exceptions only
  • 1: Warnings
  • 2 and up: Higher verbosity level

Default: 1 if unspecified

writer_pool_buffer_max_size

Controls the threshold at which dynamic memory allocation is used, expressed as a number of bytes.

If the serialized size of the data to be sent is smaller than this size, a pre-allocated writer buffer pool is used to obtain the memory.

If the serialized size of the data is larger than this value, the memory is allocated dynamically.

This setting can be used to control memory consumption of the monitoring library, at the cost of performance, when the maximum serialized size of the data type is large (which is the case for some description topics’ data types) or if you have several participants on the same machine.

The default setting is -1, meaning memory is always obtained from the writer buffer pool, whose size is determined by the maximum serialized size.

© 2017 RTI