15.10. Statistics module
eProsima Fast DDS Statistics Module allows the user to monitor the data being exchanged by its application. In order to use this module, the user must enable it in the monitored application, and create another application that receives the data being published by the statistics DataWriters. The user can also use for the latter the eProsima Fast DDS Statistics Backend which already implements the collection and aggregation of the data coming from the statistics topics.
15.10.1. Enable Statistics module
The Statistics module has to be enabled both at build and runtime.
On the one hand, CMake option FASTDDS_STATISTICS
must be enabled when building the library
(since Fast DDS v2.9.0 this CMake option is enabled by default).
On the other hand, the desired statistics DataWriters should be enabled using the Statistics Module DDS Layer.
The statistics DataWriters can be enabled automatically using the PropertyPolicyQos fastdds.statistics
and
the FASTDDS_STATISTICS environment variable.
They can also be enabled manually following the next example:
// Create a DomainParticipant
DomainParticipant* participant =
DomainParticipantFactory::get_instance()->create_participant(0, PARTICIPANT_QOS_DEFAULT);
if (nullptr == participant)
{
// Error
return;
}
// Obtain pointer to child class
eprosima::fastdds::statistics::dds::DomainParticipant* statistics_participant =
eprosima::fastdds::statistics::dds::DomainParticipant::narrow(participant);
// Enable statistics DataWriter
if (statistics_participant->enable_statistics_datawriter(eprosima::fastdds::statistics::GAP_COUNT_TOPIC,
eprosima::fastdds::statistics::dds::STATISTICS_DATAWRITER_QOS) != RETCODE_OK)
{
// Error
return;
}
// Use the DomainParticipant to communicate
// (...)
// Disable statistics DataWriter
if (statistics_participant->disable_statistics_datawriter(eprosima::fastdds::statistics::GAP_COUNT_TOPIC) !=
RETCODE_OK)
{
// Error
return;
}
// Delete DomainParticipant
if (DomainParticipantFactory::get_instance()->delete_participant(participant) != RETCODE_OK)
{
// Error
return;
}
15.10.2. Create monitoring application
Once the monitored application is publishing the collected data within the statistics topics enabled by the user, another application should be configured to subscribe to those topics. This application is a DDS standard application where the statistics DataReaders should be created. In order to create these statistics DataReaders, the user should follow the next steps:
Using the statistics IDL provided in the public API, generate the
TopicDataTypes
with Fast DDS-Gen.Create the
DomainParticipant
and register theTopicDataTypes
and the corresponding statisticsTopics
.Create the statistics DataReaders using the corresponding statistics topic.