.. _section-components:
Components
**********
|CONNEXT| |OBSERVABILITY| consists of three RTI components:
- |RTI| |MONITORINGLIBRARY2| enables you to instrument a |Connext|
application to forward telemetry data. The library also accepts
remote commands to change the set of forwarded telemetry data at
runtime.
- |RTI| |OCS| scalably collects telemetry
data from multiple |Connext| applications and stores this data in a
third-party observability backend. This component can also be configured
to forward telemetry data to an OpenTelemetry Collector to allow integration
with other third-party observability backends.
- |RTI| |DASHBOARDS| enable you to visualize and alert based
on the |Connext| application metrics, as well as display |Connext| log
messages.
|OBSERVABILITY| requires third-party components for
storing and visualizing telemetry data. This release provides native
integration with Prometheus for metrics storage, Grafana Loki for logs storage,
and Grafana for visualization. Integration with other third-party
components is also possible when using `OpenTelemetry
`_ and the `OpenTelemetry Collector
`_.
|DASHBOARDS| are provided as a set of Grafana
dashboards to be deployed on a Grafana server. These dashboards only work with
the Prometheus and Grafana Loki backends. Future releases could support other
backends.
:numref:`FigureFramework` shows a simple representation of how
|OBSERVABILITY| components work together.
.. figure:: static/rti_observability_framework.png
:alt: The RTI Observability Framework
:name: FigureFramework
:align: center
:figwidth: 100%
Observability Framework Components
.. _section-library-component:
Monitoring Library 2.0
======================
|MONITORINGLIBRARY2| includes the following key features:
- Collection and forwarding of |Connext| metrics and logs (including security
event logs).
- Configuration using a new :link_connext_dds_pro_um:`MONITORING QosPolicy (DDS Extension) <#users_manual/MONITORING_QosPolicy.htm>`.
The QoS policy can be set programmatically or via XML.
- Runtime changes to the collection and forwarding of telemetry data using
remote commands from |OCS|.
- Ability to enable and disable use of |MONITORINGLIBRARY2| at
runtime by changing the Monitoring QoS policy.
- Lower overhead as compared to using the
:link_connext_dds_pro_um:`RTI Monitoring Library<#users_manual/PartMonitoringLib.htm>`.
|MONITORINGLIBRARY2| is supported on all |Connext| platforms, and it is
is included in the |RTI| |PRO| target packages.
For more information, see :ref:`section-monitoring-library-2`.
.. _section-collector-service-component:
Observability Collector Service
===============================
|OCS| scalably collects telemetry data
forwarded by |MONITORINGLIBRARY2| in a |Connext| application.
|COLLECTORSERVICE| is distributed as a Dockerâ„¢ image. For additional
information on this image see `Dockerhub `_.
The |OCS| is designed to work in two modes:
- **Storage**: |COLLECTORSERVICE| sends the telemetry data for storage to
third-party observability backends. This release provides native
integration with Prometheus for metrics and Grafana Loki for logs.
Integration with other third-party components is also possible using
OpenTelemetry and the OpenTelemetry Collector.
- **Forwarder**: |COLLECTORSERVICE| forwards the telemetry data from
|Connext| applications to another collector instance. This mode is not
supported in the current release.
|OCS| includes the following key features:
- Collecting and filtering telemetry data forwarded by |Connext| applications
(using |MONITORINGLIBRARY2|) or other collectors. This release does
not provide filtering capabilities.
- Sending telemetry data for storage to Prometheus for metrics and Grafana Loki
for logs.
- Ability to send telemetry data to an OpenTelemetry Collector using the
OpenTelemetry protocol (OTLP). This feature enables integration with
third-party observability backends other than Prometheus and Grafana Loki.
- Remote command forwarding from |DASHBOARDS| to the |Connext| applications and
other resources to which the commands are directed. Remote commands may be used
to control the forwarding of log messages and metrics. For detailed information
on the commands supported see :ref:`section-collector-service-rest-api-reference`.
Storage Components
------------------
|OCS| includes native integration with Prometheus
and Grafana Loki to store metrics and logs, respectively.
.. figure:: static/native_integration.png
:alt: Native Integration
:name: FigureNative
:align: center
:figwidth: 100%
Native Integration
This release also allows integrating with other third-party storage
components using OpenTelemetry and the OpenTelemetry Collector.
.. figure:: static/opentelemetry_integration.png
:alt: OpenTelemetry Integration
:name: FigureOpenTelemetry
:align: center
:figwidth: 100%
OpenTelemetry Integration
.. _section-dashboards-component:
Observability Dashboards
========================
A set of hierarchical Grafana dashboards displays alerts when a problem
occurs and provides visualizations to help perform root cause analysis.
The dashboards get the telemetry data from a Prometheus server and
the logs from a Grafana Loki server.
See :ref:`section-observability-dashboards` for more information on the
|DASHBOARDS|.