Skip to content

Commit 3c9be5f

Browse files
author
Bob Furu
authored
Merge pull request #34112 from JStickler/OSSMDOC-299
2 parents c8e4007 + 1d2bd12 commit 3c9be5f

8 files changed

+117
-26
lines changed

_topic_map.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2665,16 +2665,18 @@ Topics:
26652665
File: ossm-observability
26662666
- Name: Performance and scalability
26672667
File: ossm-performance-scalability
2668-
- Name: Extensions
2669-
File: ossm-extensions
26702668
- Name: Deploying to production
26712669
File: ossm-deploy-production
2670+
- Name: Extensions
2671+
File: ossm-extensions
26722672
- Name: Using the 3scale Istio adapter
26732673
File: threescale-adapter
2674+
- Name: SMCP configuration reference
2675+
File: ossm-reference-smcp
2676+
- Name: Jaeger configuration reference
2677+
File: ossm-reference-jaeger
26742678
- Name: Uninstalling Service Mesh
26752679
File: removing-ossm
2676-
- Name: Configuration reference
2677-
File: ossm-reference
26782680
- Name: Service Mesh 1.x
26792681
Dir: v1x
26802682
Topics:

modules/jaeger-deployment-best-practices.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ This module included in the following assemblies:
1212

1313
* If you have a multitenant implementation and tenants are separated by namespaces, deploy a Jaeger instance to each tenant namespace.
1414

15-
** Jaeger agent as a sidecar is the only supported configuration. Jaeger as a daemonset is not supported for multitenant installations or OpenShift Dedicated.
15+
** Jaeger agent as a daemonset is not supported for multitenant installations or OpenShift Dedicated. Jaeger agent as a sidecar is the only supported configuration for these use cases.
1616

1717
* If you are installing Jaeger as part of Red Hat OpenShift Service Mesh, Jaeger resources must be installed in the same namespace as the `ServiceMeshControlPlane` resource.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/customizing-installation-ossm.adoc
4+
5+
6+
[id="ossm-specifying-external-jaeger_{context}"]
7+
= Specifying Jaeger configuration in a Jaeger custom resource
8+
9+
You can fully customize your Jaeger deployment by configuring Jaeger in the Jaeger custom resource (CR) rather than in the `ServiceMeshControlPlane` (SMCP) resource. This configuration is sometimes referred to as an "external Jaeger" since the configuration is specified outside of the SMCP.
10+
11+
[NOTE]
12+
====
13+
You must deploy the SMCP and Jaeger CR in the same namespace. For example, `istio-system`.
14+
====
15+
16+
You can configure and deploy a standalone Jaeger instance and then specify the `name` of the Jaeger resource as the value for `spec.addons.jaeger.name` in the SMCP resource. If a Jaeger CR matching the value of `name` exists, the control plane will use the existing installation. This approach lets you fully customize your Jaeger configuration.

modules/ossm-configuring-jaeger.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
[id="ossm-specifying-jaeger-configuration_{context}"]
77
= Specifying Jaeger configuration in the SMCP
88

9-
You configure Jaeger under the `addons` section of `ServiceMeshControlPlane` resource.
9+
You can configure Jaeger under the `addons` section of the `ServiceMeshControlPlane` resource. However, there are some limitations to what you can configure in the SMCP.
1010

11-
You can specify your Jaeger configuration in the `ServiceMeshControlPlane` resource under `spec.addons.jaeger.install`. There are some limitations with this approach. For example, you cannot configure a `streaming` deployment strategy via the control plane.
11+
When the SMCP passes configuration information to the Jaeger Operator, it triggers one of three deployment strategies: `allInOne`, `production`, or `streaming`.

modules/ossm-deploying-jaeger.adoc

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,20 @@
55
[id="ossm-deploying-jaeger_{context}"]
66
= Deploying Jaeger
77

8+
Jaeger has predefined deployment strategies. You specify a deployment strategy in the Jaeger custom resource (CR) file. When you create a Jaeger instance, the Operator uses this configuration file to create the objects necessary for the deployment.
9+
810
The Jaeger Operator currently supports the following deployment strategies:
911

10-
* *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.
12+
* *allInOne* (default) - This strategy is intended for development, testing, and demo purposes and it is not for production use. The main back-end components, Agent, Collector and Query service, are all packaged into a single executable, which is configured (by default) to use in-memory storage. You can configure this deployment strategy in the SMCP.
1113
+
1214
[NOTE]
1315
====
14-
In-memory storage is not persistent, which means that if the Jaeger instance shuts down, restarts, or is replaced, 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.
16+
In-memory storage is not persistent, which means that if the Jaeger instance shuts down, restarts, or is replaced, 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.
1517
====
1618

17-
* *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.
19+
* *production* - The production strategy is intended for production environments, where long term storage of trace data is important, and a more scalable and highly available architecture is required. Each back-end component 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, which is currently Elasticsearch. Multiple instances of each of these components can be provisioned as required for performance and resilience purposes. You can configure this deployment strategy in the SMCP, but in order to be fully customized, you must specify your configuration in the Jaeger CR and link that to the SMCP.
1820

19-
* *streaming* - The streaming strategy is designed to augment the production strategy by providing a streaming capability that effectively sits between the Collector and the backend storage (Elasticsearch). 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]).
21+
* *streaming* - The streaming strategy is designed to augment the production strategy by providing a streaming capability that sits between the Collector and the Elasticsearch back-end storage. This provides the benefit of reducing the pressure on the back-end 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]). You cannot configure this deployment strategy in the SMCP; you must configure a Jaeger CR and link that to the SMCP.
2022

2123
[NOTE]
2224
====
@@ -26,9 +28,9 @@ The streaming strategy requires an additional Red Hat subscription for AMQ Strea
2628
[id="ossm-deploying-jaeger-default_{context}"]
2729
== Default Jaeger deployment
2830

29-
To use the default `allInOne` Jaeger deployment strategy set `spec.addons.jaeger.install.storage.type` to `Memory`. You can accept the defaults or specify additional configuration options under `install`. If you do not specify Jaeger configuration options, the Control Plane will use the `allInOne` deployment strategy by default.
31+
If you do not specify Jaeger configuration options, the `ServiceMeshControlPlane` resource will use the `allInOne` Jaeger deployment strategy by default. When using the default `allInOne` deployment strategy, set `spec.addons.jaeger.install.storage.type` to `Memory`. You can accept the defaults or specify additional configuration options under `install`.
3032

31-
.Control Plane default Jaeger parameters (Memory)
33+
.Control plane default Jaeger parameters (Memory)
3234
[source,yaml]
3335
----
3436
apiVersion: maistra.io/v2
@@ -48,12 +50,12 @@ spec:
4850
type: Memory
4951
----
5052

51-
[id="ossm-deploying-jaeger-production_{context}"]
52-
== Production Jaeger deployment
53+
[id="ossm-deploying-jaeger-production-min_{context}"]
54+
== Production Jaeger deployment (minimal)
5355

54-
To use the `production` deployment strategy, set `spec.addons.jaeger.install.storage.type` to 'Elasticsearch' and specify additional configuration options under `install`. Or you can create and configure your Jaeger instance and set `spec.addons.jaeger.name` to the name of the Jaeger instance, for example `jaeger-production`.
56+
To use the default settings for the `production` deployment strategy, set `spec.addons.jaeger.install.storage.type` to `Elasticsearch` and specify additional configuration options under `install`. Note that the SMCP only supports configuring Elasticsearch resources and image name.
5557

56-
.Control Plane default Jaeger parameters (Elasticsearch)
58+
.Control plane default Jaeger parameters (Elasticsearch)
5759
[source,yaml]
5860
----
5961
apiVersion: maistra.io/v2
@@ -80,12 +82,42 @@ spec:
8082
resources: {}
8183
----
8284

85+
86+
[id="ossm-deploying-jaeger-production_{context}"]
87+
== Production Jaeger deployment (fully customized)
88+
89+
The SMCP supports only minimal Elasticsearch parameters. To fully customize your production environment and access all of the Elasticsearch configuration parameters, use the Jaeger custom resource (CR) to configure Jaeger.
90+
91+
Create and configure your Jaeger instance and set `spec.addons.jaeger.name` to the name of the Jaeger instance, in this example: `jaeger-production-cr`.
92+
93+
.Control plane with linked Jaeger production CR
94+
[source,yaml]
95+
----
96+
apiVersion: maistra.io/v2
97+
kind: ServiceMeshControlPlane
98+
metadata:
99+
name: basic
100+
spec:
101+
version: v2.0
102+
tracing:
103+
sampling: 1000
104+
type: Jaeger
105+
addons:
106+
jaeger:
107+
name: jaeger-production-cr #name of Jaeger CR
108+
install:
109+
storage:
110+
type: Elasticsearch
111+
ingress:
112+
enabled: true
113+
----
114+
83115
[id="ossm-deploying-jaeger-streaming_{context}"]
84116
== Streaming Jaeger deployment
85117

86-
To use the `streaming` deployment strategy you create and configure your Jaeger instance first, then set `spec.addons.jaeger.name` to the name of the Jaeger instance, for example, `jaeger-streaming`.
118+
To use the `streaming` deployment strategy, you create and configure your Jaeger instance first, then set `spec.addons.jaeger.name` to the name of the Jaeger instance, in this example: `jaeger-streaming-cr`.
87119

88-
.Sample connection to an existing Jaeger instance
120+
.Control plane with linked Jaeger streaming CR
89121
[source,yaml]
90122
----
91123
apiVersion: maistra.io/v2
@@ -95,9 +127,9 @@ metadata:
95127
spec:
96128
version: v2.0
97129
tracing:
98-
sampling: 10
130+
sampling: 1000
99131
type: Jaeger
100132
addons:
101133
jaeger:
102-
name: jaeger-streaming
134+
name: jaeger-streaming-cr #name of Jaeger CR
103135
----

modules/ossm-enabling-jaeger.adoc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[id="ossm-enabling-tracing_{context}"]
77
= Enabling and disabling tracing
88

9-
You enable tracing by specifying a tracing type and a sampling rate.
9+
You enable distributed tracing by specifying a tracing type and a sampling rate in the `ServiceMeshControlPlane` resource.
1010

1111
.Default `all-in-one` Jaeger parameters
1212
[source,yaml]
@@ -22,6 +22,13 @@ spec:
2222
type: Jaeger
2323
----
2424

25-
Currently the only tracing type that is supported is `Jaeger`. Jaeger is enabled by default. To disable tracing, set `type` to `None`.
25+
Currently, the only tracing type that is supported is `Jaeger`.
2626

27-
The sampling rate determines how often a trace is generated. You configure `sampling` as a scaled integer representing 0.01% increments. For example, setting the value to `10` samples 0.1% of traces, setting the value to `500` samples 5% of traces, and a setting of `10000` samples 100% of traces.
27+
Jaeger is enabled by default. To disable tracing, set `type` to `None`.
28+
29+
The sampling rate determines how often the Envoy proxy generates a trace. You can use the sampling rate option to control what percentage of requests get reported to your tracing system. You can configure this setting based upon your traffic in the mesh and the amount of tracing data you want to collect. You configure `sampling` as a scaled integer representing 0.01% increments. For example, setting the value to `10` samples 0.1% of traces, setting the value to `500` samples 5% of traces, and a setting of `10000` samples 100% of traces.
30+
31+
[NOTE]
32+
====
33+
The SMCP sampling configuration option controls the Envoy sampling rate. You configure the Jaeger trace sampling rate in the Jaeger custom resource.
34+
====
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[id="jaeger-config-ref"]
2+
= Jaeger configuration reference
3+
include::modules/ossm-document-attributes.adoc[]
4+
:context: jaeger-config-ref
5+
6+
toc::[]
7+
8+
When the {ProductShortName} Operator deploys the `ServiceMeshControlPlane` resource, it can also create the resources for distributed tracing. {ProductShortName} uses Jaeger for distributed tracing.
9+
10+
include::modules/ossm-enabling-jaeger.adoc[leveloffset=+1]
11+
12+
include::modules/ossm-configuring-jaeger.adoc[leveloffset=+1]
13+
14+
include::modules/ossm-deploying-jaeger.adoc[leveloffset=+1]
15+
16+
include::modules/ossm-configuring-external-jaeger.adoc[leveloffset=+1]
17+
18+
include::modules/jaeger-deployment-best-practices.adoc[leveloffset=+2]
19+
20+
include::modules/jaeger-config-default.adoc[leveloffset=+2]
21+
22+
include::modules/jaeger-config-collector.adoc[leveloffset=+2]
23+
24+
include::modules/jaeger-config-sampling.adoc[leveloffset=+2]
25+
26+
include::modules/jaeger-config-storage.adoc[leveloffset=+2]
27+
28+
For more information about configuring Elasticsearch with {product-title}, see xref:../../logging/config/cluster-logging-log-store.adoc[Configuring the log store] or xref:../../jaeger/jaeger_install/rhbjaeger-deploying.adoc[Configuring and deploying Jaeger].
29+
30+
For information about connecting to an external Elasticsearch instance, see xref:../../jaeger/jaeger_install/rhbjaeger-deploying.adoc#jaeger-config-external-es_jaeger-deploying[Connecting to an existing Elasticsearch instance].
31+
32+
include::modules/jaeger-config-query.adoc[leveloffset=+2]
33+
34+
include::modules/jaeger-config-ingester.adoc[leveloffset=+2]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[id="ossm-reference"]
2-
= Configuration reference
2+
= SMCP configuration reference
33
include::modules/ossm-document-attributes.adoc[]
44
:context: ossm-reference
55

@@ -15,4 +15,4 @@ For more information about how to configure the features in the `ServiceMeshCont
1515

1616
* xref:../../service_mesh/v2x/ossm-traffic-manage.adoc#ossm-routing-bookinfo_routing-traffic[Traffic management]
1717

18-
* xref:../../service_mesh/v2x/ossm-observability.adoc#ossm-observability[Metrics and traces]
18+
* xref:../../service_mesh/v2x/ossm-observability.adoc#ossm-observability[Metrics and traces]

0 commit comments

Comments
 (0)