.. _section-deployment-scenarios: Observability Framework Deployments *********************************** This section describes how to deploy the components of the |OBSERVABILITY| in the current release. Additionally, it discusses how RTI intends to introduce new deployment methods for the |OBSERVABILITY| in future releases. |MONITORINGLIBRARY2| is component is included with |PRO| as a shared and static library called rtimonitoring2. For details on how to use the library, refer to :ref:`section-monitoring-library-2`. For further information on the other components, please see the following sections. Current Release =============== .. _section-docker-compose-prepackaged: Docker Compose (Prepackaged) ---------------------------- Collection, Storage, and Visualization Components ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The |OBSERVABILITY| package enables you to deploy and run |OCS| and third-party components Prometheus, Grafana Loki, Grafana, OpenTelemetry Collector (optional), and NGINX (optional) using Docker Compose™ in a single Linux® host. For details, see :ref:`section-docker-compose-env`. RTI's prepackaged Docker Compose installation option facilitates initial product evaluation because it does not require you to deploy all these components individually. |OBSERVABILITY| can be deployed with or without using the OpenTelemetry Collector. Both deployment options can be configured to be secure or non-secure and to work on a LAN or WAN. :numref:`FigureDeploymentPromLoki` :ref:`FigureDeploymentPromLoki` shows the secure |OBSERVABILITY| deployment without OpenTelemetry Collector. The deployment uses Prometheus and Grafana Loki to store metrics and logs, respectively. .. figure:: static/rti_security_prom_loki.png :alt: RTI Observability Framework when using Prometheus and Grafana Loki :name: FigureDeploymentPromLoki :align: center :figwidth: 100% RTI Observability Framework without OpenTelemetry Collector :numref:`FigureDeploymentOTelPromLoki` :ref:`FigureDeploymentOTelPromLoki` shows a secure |OBSERVABILITY| deployment using OpenTelemetry Collector. The deployment uses OpenTelemetry Collector to store metrics and logs in Prometheus and Grafana Loki, respectively. .. figure:: static/rti_security_otlp_prom_loki.png :alt: RTI Observability Framework when using OpenTelemetry Collector :name: FigureDeploymentOTelPromLoki :align: center :figwidth: 100% RTI Observability Framework with OpenTelemetry Collector For additional information on how to use Docker Compose to run |OBSERVABILITY|, see :ref:`section-installation`. Collector Service """"""""""""""""" This release supports running |OCS| in storage mode only. Data can be stored into Prometheus and Grafana Loki natively or into other third-party observability backends using OpenTelemetry and the OpenTelemetry Collector. The prepackaged deployment uses a single layer deployment to run only one |COLLECTORSERVICE| instance for the |Connext| system, as illustrated in :numref:`FigureSingleCollectorDeployment` :ref:`FigureSingleCollectorDeployment`. .. figure:: static/single-collector-deployment.png :figwidth: 90 % :alt: Single Collector Deployment :name: FigureSingleCollectorDeployment :align: center Single Collector Deployment .. _section-docker-compose-separate-deployment: Docker (Separate Deployment) ---------------------------- As an alternative to the prepackaged Docker Compose deployment provided by RTI, you can also run |OBSERVABILITY| and the third-party components (e.g, Prometheus) standalone. The third-party components `Prometheus `_, `Grafana Loki `_, `Grafana `_, `OpenTelemetry Collector `__ (optional), and `NGINX `_ (optional) are also distributed as Docker images by their respective vendors. You can use these images standalone instead of RTI's :ref:`prepackaged Docker Compose`. .. _section-single-layer-deployment-scenarios: Collector Service ^^^^^^^^^^^^^^^^^ |OCS| is distributed as a Docker image hosted in `Dockerhub `_. This is the same publicly available image used by the prepackaged Docker Compose installation, and it requires a valid RTI license to run. This release supports running |OCS| in storage mode only. Data can be stored into Prometheus and Grafana Loki natively or into other third-party observability backends using OpenTelemetry and the OpenTelemetry Collector. Because forwarding mode is not supported, you can only use a single layer of *Collector Services* per |Connext| system. This configuration is illustrated in :numref:`FigureSingleLayerDeployment` :ref:`FigureSingleLayerDeployment` and :numref:`FigureSingleLayerDeploymentOTLP` :ref:`FigureSingleLayerDeploymentOTLP`. .. figure:: static/single-layer-deployment.png :figwidth: 90 % :alt: Single Layer Collector Deployment :name: FigureSingleLayerDeployment :align: center Single Layer Collector Deployment .. figure:: static/single-layer-deployment-otlp.png :figwidth: 90 % :alt: Single Layer Collector Deployment with OpenTelemetry Collector :name: FigureSingleLayerDeploymentOTLP :align: center Single Layer Collector Deployment using OpenTelemetry Collector The deployments represented in :numref:`FigureSingleLayerDeployment` :ref:`FigureSingleLayerDeployment` and :numref:`FigureSingleLayerDeploymentOTLP` :ref:`FigureSingleLayerDeploymentOTLP` require running multiple instances of |COLLECTORSERVICE| where each |Connext| application configures |MONITORINGLIBRARY2| to connect to one of the |COLLECTORSERVICE| instances. You are responsible for running the |COLLECTORSERVICE| instances and the third-party components for storage. For example, if you want to store telemetry data into Prometheus and Grafana Loki, you must run Prometheus and Grafana Loki instances and configure the Docker container for |COLLECTORSERVICE| to connect to these storage backends. The Docker image included with |COLLECTORSERVICE| contains a built-in configuration that enables it to run in :ref:`storage mode` with the following operation modes: .. list-table:: Docker Container Operation Modes :name: TableDockerContainerOperationModes :widths: 30 20 50 10 :header-rows: 1 * - Configuration Name - Network - Data Storage - Security * - NonSecureLAN - LAN - Prometheus and Grafana Loki - No * - NonSecureWAN - WAN - Prometheus and Grafana Loki - No * - SecureLAN - LAN - Prometheus and Grafana Loki - Yes * - SecureWAN - WAN - Prometheus and Grafana Loki - Yes * - NonSecureOTelLAN - LAN - Multiple through OpenTelemetry Collector - No * - NonSecureOTelWAN - WAN - Multiple through OpenTelemetry Collector - No * - SecureOTelLAN - LAN - Multiple through OpenTelemetry Collector - Yes * - SecureOTelWAN - WAN - Multiple through OpenTelemetry Collector - Yes For additional information on how to use the Docker image included with |COLLECTORSERVICE|, refer to `Docker's Collector Service article `_. Future releases =============== Collector Service ----------------- Executable ^^^^^^^^^^ In future releases, |COLLECTORSERVICE| will be provided as a standalone executable without using Docker to deploy. Collector Service Deployments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ As you roll out telemetry data collection and distribution across all your |Connext| applications, |OBSERVABILITY| must be deployed in a way that supports the additional load. A single layer |COLLECTORSERVICE| deployment, as shown in :numref:`FigureSingleLayerDeployment` :ref:`FigureSingleLayerDeployment` and :numref:`FigureSingleLayerDeploymentOTLP` :ref:`FigureSingleLayerDeploymentOTLP`, may not scale sufficiently. A better deployment option would be the layered deployment depicted in :numref:`FigureLayeredCollectorDeployment` :ref:`FigureLayeredCollectorDeployment` and :numref:`FigureLayeredCollectorDeploymentOTLP` :ref:`FigureLayeredCollectorDeploymentOTLP`. In this option, you have multiple layers of |COLLECTORSERVICE| gathering, filtering, and forwarding the telemetry data produced by the |Connext| applications. Each intermediate layer reduces the number of egress points required to send data and provides an opportunity to filter telemetry data. The last layer works as a storage layer and is responsible for storing the telemetry data into a third-party observability backend. .. figure:: static/layered-collector-deployment.png :figwidth: 90 % :alt: Layered Collector Deployment :name: FigureLayeredCollectorDeployment :align: center Layered Collector Deployment .. figure:: static/otel-collector-deployment.png :figwidth: 90 % :alt: Layered Collector Deployment with OpenTelemetry Collector :name: FigureLayeredCollectorDeploymentOTLP :align: center Layered Collector Deployment Using OpenTelemetry Collector