|
| 1 | +[id="distr-tracing-deploying"] |
| 2 | += Configuring and deploying distributed tracing |
| 3 | +include::modules/distr-tracing-document-attributes.adoc[] |
| 4 | +:context: deploying-distributed-tracing |
| 5 | + |
| 6 | +toc::[] |
| 7 | + |
| 8 | +The {JaegerName} Operator uses a custom resource definition (CRD) file that defines the architecture and configuration settings to be used when creating and deploying the {JaegerShortName} resources. You can either install the default configuration or modify the file to better suit your business requirements. |
| 9 | + |
| 10 | +{JaegerName} has predefined deployment strategies. You specify a deployment strategy in the custom resource file. When you create a {JaegerShortName} instance the Operator uses this configuration file to create the objects necessary for the deployment. |
| 11 | + |
| 12 | +.Jaeger custom resource file showing deployment strategy |
| 13 | +[source,yaml] |
| 14 | +---- |
| 15 | +apiVersion: jaegertracing.io/v1 |
| 16 | +kind: Jaeger |
| 17 | +metadata: |
| 18 | + name: MyConfigFile |
| 19 | +spec: |
| 20 | + strategy: production <1> |
| 21 | +---- |
| 22 | + |
| 23 | +<1> The {JaegerName} Operator currently supports the following deployment strategies: |
| 24 | + |
| 25 | +* *allInOne* (Default) - This strategy is intended for development, testing, and demo purposes; it is not intended for production use. The main backend components, Agent, Collector, and Query service, are all packaged into a single executable which is configured, by default. to use in-memory storage. |
| 26 | ++ |
| 27 | +[NOTE] |
| 28 | +==== |
| 29 | +In-memory storage is not persistent, which means that if the {JaegerShortName} instance shuts down, restarts, or is replaced, that your trace data will be lost. And in-memory storage cannot be scaled, since each pod has its own memory. For persistent storage, you must use the `production` or `streaming` strategies, which use Elasticsearch as the default storage. |
| 30 | +==== |
| 31 | + |
| 32 | +* *production* - The production strategy is intended for production environments, where long term storage of trace data is important, as well as a more scalable and highly available architecture is required. Each of the backend components is therefore deployed separately. The Agent can be injected as a sidecar on the instrumented application. The Query and Collector services are configured with a supported storage type - currently Elasticsearch. Multiple instances of each of these components can be provisioned as required for performance and resilience purposes. |
| 33 | + |
| 34 | +* *streaming* - The streaming strategy is designed to augment the production strategy by providing a streaming capability that effectively sits between the Collector and the Elasticsearch backend storage. This provides the benefit of reducing the pressure on the backend storage, under high load situations, and enables other trace post-processing capabilities to tap into the real time span data directly from the streaming platform (https://access.redhat.com/documentation/en-us/red_hat_amq/7.6/html/using_amq_streams_on_openshift/index[AMQ Streams]/ https://kafka.apache.org/documentation/[Kafka]). |
| 35 | ++ |
| 36 | +[NOTE] |
| 37 | +==== |
| 38 | +The streaming strategy requires an additional Red Hat subscription for AMQ Streams. |
| 39 | +==== |
| 40 | + |
| 41 | +[NOTE] |
| 42 | +==== |
| 43 | +The streaming deployment strategy is currently unsupported on IBM Z. |
| 44 | +==== |
| 45 | + |
| 46 | +[NOTE] |
| 47 | +==== |
| 48 | +There are two ways to install and use {DTProductName}, as part of a service mesh or as a stand alone component. If you have installed {DTShortName} as part of Red Hat OpenShift Service Mesh, you can perform basic configuration as part of the xref:../../service_mesh/v2x/installing-ossm.adoc#installing-ossm[ServiceMeshControlPlane] but for completely control you should configure a Jaeger CR and then xref:../../service_mesh/v2x/ossm-observability.html#ossm-config-external-jaeger_observability[reference your distributed tracing configuration file in the ServiceMeshControlPlane]. |
| 49 | +
|
| 50 | +==== |
| 51 | + |
| 52 | +// The following include statements pull in the module files that comprise the assembly. |
| 53 | + |
| 54 | +include::modules/distr-tracing-deploy-default.adoc[leveloffset=+1] |
| 55 | + |
| 56 | +include::modules/distr-tracing-deploy-production-es.adoc[leveloffset=+1] |
| 57 | + |
| 58 | +include::modules/distr-tracing-deploy-streaming.adoc[leveloffset=+1] |
| 59 | + |
| 60 | +[id="customizing-your-deployment"] |
| 61 | +== Customizing your deployment |
| 62 | + |
| 63 | +include::modules/distr-tracing-deployment-best-practices.adoc[leveloffset=+2] |
| 64 | + |
| 65 | +include::modules/distr-tracing-config-default.adoc[leveloffset=+2] |
| 66 | + |
| 67 | +include::modules/distr-tracing-config-jaeger-collector.adoc[leveloffset=+2] |
| 68 | + |
| 69 | +//include::modules/distr-tracing-config-otel-collector.adoc[leveloffset=+2] |
| 70 | + |
| 71 | +include::modules/distr-tracing-config-sampling.adoc[leveloffset=+2] |
| 72 | + |
| 73 | +include::modules/distr-tracing-config-storage.adoc[leveloffset=+2] |
| 74 | + |
| 75 | +include::modules/distr-tracing-config-query.adoc[leveloffset=+2] |
| 76 | + |
| 77 | +include::modules/distr-tracing-config-ingester.adoc[leveloffset=+2] |
| 78 | + |
| 79 | +[id="injecting-sidecars"] |
| 80 | +== Injecting sidecars |
| 81 | + |
| 82 | +{JaegerName} relies on a proxy sidecar within the application's pod to provide the agent. The {JaegerName} Operator can inject Agent sidecars into Deployment workloads. You can enable automatic sidecar injection or manage it manually. |
| 83 | + |
| 84 | +include::modules/distr-tracing-sidecar-automatic.adoc[leveloffset=+2] |
| 85 | + |
| 86 | +include::modules/distr-tracing-sidecar-manual.adoc[leveloffset=+2] |
0 commit comments