.. include:: ../../../router.1.0/srcDoc/vars.rst .. |RCS| replace:: *Recording Service* .. |RPS| replace:: *Replay Service* .. |TGs| replace:: *TopicGroups* .. |TG| replace:: *TopicGroup* .. _section-Recorder-Monitoring: ********** Monitoring ********** This section provides documentation on |RCS| remote monitoring. .. Note:: |RCS| monitoring is based on the *Monitoring Distribution Platform* described in :numref:`section-Common-Mon`. We recommend that you read :numref:`section-Common-Mon` before using |RCS| monitoring. .. _section-Recorder-Monitoring-Ow: Overview ======== .. _section-Recorder-Monitoring-Ow-EnablingMon: Enabling Service Monitoring --------------------------- By default, monitoring is disabled in |RCS|. To enable monitoring you can use the ```` tag (see :numref:`section-config-recording-service-tag`) or the ``-remoteMonitoringDomainId`` command-line parameter, which enables remote monitoring and sets the domain ID for data publication (see :numref:`section-recording-service-command-line-parameters`). .. _section-Recorder-Monitoring-Ow-DistTopics: Monitoring Types ---------------- The available *Keyed Resource* classes and their types that can be present in the distribution monitoring topics are listed in :numref:`TableRecorderKeyedResources`. The complete type relationship is shown in :numref:`FigureRecorderMonitoringTypes`. .. list-table:: |RCS| *Keyed Resources* :name: TableRecorderKeyedResources :widths: 25 25 25 25 :header-rows: 1 :class: longtable * - Keyed Resource Class - Config - Event - Periodic * - :ref:`Service ` - ``ServiceConfig`` - ``ServiceEvent`` - ``ServicePeriodic`` * - :ref:`Session ` - ``SessionConfig`` - ``SessionEvent`` - ``SessionPeriodic`` * - :ref:`TopicGroup ` - ``TopicGroupConfig`` - ``TopicGroupEvent`` - ``TopicGroupPeriodic`` * - :ref:`Topic ` - ``TopicConfig`` - ``TopicEvent`` - ``TopicPeriodic`` .. figure:: ../static/RecorderMonitoringTypes.svg :figwidth: 90 % :name: FigureRecorderMonitoringTypes :align: center Keyed Resource Types for |RCS| monitoring All the type definitions for |RCS| monitoring information are in ``[NDDSHOME]/resource/idl/ServiceCommon.idl`` and ``[NDDSHOME]/resource/idl/RecordingServiceMonitoring.idl``. |RCS| creates a |DW| for each distribution |TOPIC|. All |DWs| are created from a single |PUB|, which is created from a dedicated |DP|. See :numref:`section-config-recording-service-tag` for details on configuring the QoS for these entities. .. _section-Recorder-Monitoring-Metrics: Monitoring Metrics Reference ============================ This section provides a reference to all the monitoring metrics |RCS| distributes, organized by service resource class. .. _section-Recorder-Monitoring-Metrics-Service: Service ------- .. literalinclude:: ../../resource/idl/RecordingServiceMonitoring.idl :caption: |RCS| Types :start-after: /* Service :end-before: /* --- Top-level .. list-table:: ``ServiceConfig`` :name: TableRecorderServiceConfig :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityConfig`` - See :numref:`TableCommonEntityConfig`. * - application_name - Name of the |RCS| instance. The application name is provided through: - ``appName`` command-line option when run as executable. - ``ServiceProperty::application_name`` field when run as a library. * - application_guid - GUID of the |RCS| instance. Unique across all service instances. * - host - See :numref:`TableCommonHostConfig`. * - process - See :numref:`TableCommonProcessConfig`. * - builtin_sqlite - See :numref:`TableRecorderBuiltinSqliteConfig` * - participants - Sequence of ``ParticipantInfo`` objects, one for each |DP| inside the |RCS|. See :numref:`TableRecorderParticipantInfo`. .. list-table:: ``SqliteDatabaseConfig`` :name: TableRecorderBuiltinSqliteConfig :widths: 25 75 :header-rows: 1 * - Field Name - Description * - db_directory - Path to the base directory where the database files will live. This is the prefix directory, and still the execution directory expression below will be appended to it to determine the final directory. * - execution_directory_expression - The expression used to generate the directory where the database files live. |br| Note: this value is not set when running |RPS|. See :numref:`section-config-fileset-tag` * - user_data_file_expression - The expression used to generate the names of the database files. |br| Note: this value is not set when running |RPS|. |br| See :numref:`section-config-fileset-tag` .. list-table:: ``ParticipantInfo`` :name: TableRecorderParticipantInfo :widths: 25 75 :header-rows: 1 * - Field Name - Description * - name - Name of the |DP| instance, as specified in the ``name`` attribute of the corresponding configuration tag. .... .. list-table:: ``ServiceEvent`` :name: TableRecorderServiceEvent :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityEvent`` - See :numref:`TableCommonEntityEvent`. * - builtin_sqlite - See :numref:`TableRecorderBuiltinSqliteEvent` .. list-table:: ``SqliteDatabaseEvent`` :name: TableRecorderBuiltinSqliteEvent :widths: 25 75 :header-rows: 1 * - Field Name - Description * - current_db_directory - Path to the current directory where files are being stored to. This is the actual final directory once the base directory and any execution directory expressions have been applied. * - current_file - Path to the current file where data is being stored to. |br| Note: this value is not set when running |RPS|. * - rollover_count - The total number of file rollover events that have happened to this moment. |br| Note: this value is not set when running |RPS|. .... .. list-table:: ``ServicePeriodic`` :name: TableRecorderServicePeriodic :widths: 25 75 :header-rows: 1 * - Field Name - Description * - host - See :numref:`TableCommonHostPeriodic`. * - process - See :numref:`TableCommonProcessPeriodic`. * - builtin_sqlite - See :numref:`TableRecorderBuiltinSqlitePeriodic` .. list-table:: ``SqliteDatabasePeriodic`` :name: TableRecorderBuiltinSqlitePeriodic :widths: 25 75 :header-rows: 1 * - Field Name - Description * - current_file_size - The size in bytes of the current file where data is being stored. |br| Note: this value is not set when running |RPS|. * - current_timestamp_sec - This time represents the seconds |RCS| has been running. |br| * - current_timestamp_nanosec - This time represents the nanoseconds |RCS| has been running. .. _section-Recorder-Monitoring-Metrics-Session: Session ------- .. literalinclude:: ../../resource/idl/RecordingServiceMonitoring.idl :caption: |SESSION| Types :start-after: /* Session :end-before: /* Service .. list-table:: ``SessionConfig`` :name: TableRecorderSessionConfig :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityConfig`` - See :numref:`TableCommonEntityConfig`. * - default_participant_name - The name of the default participant configuration. .... .. list-table:: ``SessionEvent`` :name: TableRecorderSessionEvent :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityEvent`` - See :numref:`TableCommonEntityEvent`. .... .. list-table:: ``SessionPeriodic`` :name: TableRecorderSessionPeriodic :widths: 25 75 :header-rows: 1 * - Field Name - Description * - network_performance - Provides network performance metric as an aggregation of the same metric across the contained |TOPICs| and |TGs|. |br| See :numref:`section-Common-Mon-Metrics-NetworkPerformance`. .. _section-Recorder-Monitoring-Metrics-TopicGroup: TopicGroup ---------- .. literalinclude:: ../../resource/idl/RecordingServiceMonitoring.idl :caption: |TG| Types :start-after: /* TopicGroup :end-before: /* Session .. list-table:: ``TopicGroupConfig`` :name: TableRecorderTopicGroupConfig :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityConfig`` - See :numref:`TableCommonEntityConfig`. * - participant_name - Name of the |DP| from which the |TOPIC| is created. .... .. list-table:: ``TopicGroupEvent`` :name: TableRecorderTopicGroupEvent :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityEvent`` - See :numref:`TableCommonEntityEvent`. .... .. list-table:: ``TopicGroupPeriodic`` :name: TableRecorderTopicGroupPeriodic :widths: 25 75 :header-rows: 1 * - Field Name - Description * - network_performance - Provides network performance metric as an aggregation of the same metric across the contained |TOPICs|. |br| See :numref:`section-Common-Mon-Metrics-NetworkPerformance`. * - topic_count - Current number of |TOPICs| created from this |TG|. .. _section-Recorder-Monitoring-Metrics-Topic: Topic ----- .. literalinclude:: ../../resource/idl/RecordingServiceMonitoring.idl :caption: |TOPIC| Types :start-after: /* Topic :end-before: /* TopicGroup .. list-table:: ``TopicConfig`` :name: TableRecorderTopicConfig :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityConfig`` - See :numref:`TableCommonEntityConfig`. * - topic_name - Topic name as specified in the configuration. |br| * - registered_type_name - Topic registered type name as specified in the configuration. * - paritcipant_name - Name of the |DP| from which the |TOPIC| is created. * - topic_group - GUID of the |TG| from which this |TOPIC| was created. This field is set to zero for standalone |TOPICs|. .... .. list-table:: ``TopicEvent`` :name: TableRecorderTopicEvent :widths: 25 75 :header-rows: 1 * - Field Name - Description * - Inherited fields from ``EntityEvent`` - See :numref:`TableCommonEntityEvent`. .... .. list-table:: ``TopicPeriodic`` :name: TableRecorderTopicPeriodic :widths: 25 75 :header-rows: 1 * - Field Name - Description * - network_performance - Provides network performance metric as an aggregation of the same metric across the contained |TOPICs|. |br| See :numref:`section-Common-Mon-Metrics-NetworkPerformance`. * - matched_status - Provides information about the matched endpoints associated with this |TOPIC|.