From efb8cf689002ee00ba64d2bcbcdbb68986d5ea85 Mon Sep 17 00:00:00 2001 From: xJustin Date: Fri, 17 Nov 2023 12:34:57 -0500 Subject: [PATCH] OSSM-5726 Distributed Tracing Docs Section Updates and Tempo content --- modules/ossm-config-external-jaeger.adoc | 2 +- .../ossm-configuring-distr-tracing-tempo.adoc | 98 +++++++++++++++++++ service_mesh/v2x/ossm-observability.adoc | 10 ++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 modules/ossm-configuring-distr-tracing-tempo.adoc diff --git a/modules/ossm-config-external-jaeger.adoc b/modules/ossm-config-external-jaeger.adoc index ef0df34d16..5dc308c035 100644 --- a/modules/ossm-config-external-jaeger.adoc +++ b/modules/ossm-config-external-jaeger.adoc @@ -5,7 +5,7 @@ This module is included in the following assemblies: :_mod-docs-content-type: PROCEDURE [id="ossm-config-external-jaeger_{context}"] -= Connecting an existing distributed tracing instance += Connecting an existing distributed tracing Jaeger instance If you already have an existing {JaegerName} instance in {product-title}, you can configure your `ServiceMeshControlPlane` resource to use that instance for {DTShortName}. diff --git a/modules/ossm-configuring-distr-tracing-tempo.adoc b/modules/ossm-configuring-distr-tracing-tempo.adoc new file mode 100644 index 0000000000..7399723098 --- /dev/null +++ b/modules/ossm-configuring-distr-tracing-tempo.adoc @@ -0,0 +1,98 @@ +//// +This module is included in the following assemblies: +* service_mesh/v2x/ossm-observability.adoc +//// + +:_mod-docs-content-type: PROCEDURE +[id="ossm-configuring-distr-tracing-tempo_{context}"] += Configuring the distributed tracing platform (Tempo) + +You can expose tracing data to the {TempoName} stack by appending a named element and the `zipkin` provider to the `spec.meshConfig.extensionProviders` specification in the `ServiceMehControlPlane`, as shown in the following example. Then, a telemetry custom resource configures Istio proxies to collect trace spans and send them to the Tempo distributor service endpoint. + +You can create a TempoStack instance in the `tracing-system` namespace _after_ creating the `ServiceMeshControlPlane` and the `ServiceMeshMemberRoll` resources. + +.Prerequisites + +* You have installed the {TempoOperator} and {SMProductName} Operator in the `openshift-operators` namespace. +* You have created namespaces such as `istio-system` and `tracing-system`. + +.Procedure + +. Configure the `ServiceMeshControlPlane` resource to define an extension provider: ++ +[source,yaml] +---- +kind: ServiceMeshControlPlane +apiVersion: maistra.io/v2 +metadata: + name: basic + namespace: istio-system +spec: +# ... + meshConfig: + extensionProviders: + - name: tempo + zipkin: + service: tempo-sample-distributor.tracing-system.svc.cluster.local + port: 9411 + tracing: + sampling: 10000 + type: None <1> + version: v2.5 +--- +kind: ServiceMeshMemberRoll +apiVersion: maistra.io/v1 +metadata: + name: default + namespace: istio-system +spec: + members: + - tracing-system +---- +<1> The `spec.tracing.type` setting defines a deprecated Distributed Tracing Jaeger instance. Set `spec.tracing.type` to `None` when connecting to a TempoStack using an `extensionProvider` setting. ++ +[NOTE] +==== +Create a TempoStack instance _after_ creating the `ServiceMeshControlPlane` and the `ServiceMeshMemberRoll` resources. +==== + +. Configure the Kiali resource specification to enable a Kiali workload traces dashboard. You can use the dashboard to view tracing query results. ++ +[source,yaml] +---- +apiVersion: kiali.io/v1alpha1 +kind: Kiali +# ... +spec: + external_services: + tracing: + query_timeout: 30 + enabled: true + in_cluster_url: 'http://tempo-sample-query-frontend.tracing-system.svc.cluster.local:16686' + url: '[Tempo query frontend Route url]' +---- ++ +[NOTE] +==== +Kiali 1.73 uses the Jaeger Query API, which causes a longer response time depending on Tempo resource limits. If you see a `Could not fetch spans` error message in the Kiali UI, then check your Tempo configuration or reduce the limit per query in Kiali. +==== + +. Create a TempoStack instance using the Red Hat {TempoOperator} in the `tracing-system` namespace. For more information, see "Installing the distributed tracing platform (Tempo)" in the "Additional resources" section. + +. Apply a Telemetry custom resource for {SMProductShortName} to start the Tempo provider setting. ++ +[source,yaml] +---- +apiVersion: telemetry.istio.io/v1alpha1 +kind: Telemetry +metadata: + name: mesh-default + namespace: istio-system +spec: + tracing: + - providers: + - name: tempo + randomSamplingPercentage: 100 +---- + +You can also create an Istio gateway and virtual service resources to expose an {product-title} route for accessing the Tempo Jaeger Query console. \ No newline at end of file diff --git a/service_mesh/v2x/ossm-observability.adoc b/service_mesh/v2x/ossm-observability.adoc index dcdf5d0424..c9ea2bc251 100644 --- a/service_mesh/v2x/ossm-observability.adoc +++ b/service_mesh/v2x/ossm-observability.adoc @@ -20,6 +20,14 @@ include::modules/ossm-kiali-viewing-metrics.adoc[leveloffset=+2] include::modules/ossm-distr-tracing.adoc[leveloffset=+1] +include::modules/ossm-configuring-distr-tracing-tempo.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources +ifndef::openshift-rosa,openshift-dedicated[] +xref:../../distr_tracing/distr_tracing_tempo/distr-tracing-tempo-installing.adoc[Installing the distributed tracing platform (Tempo)]. +endif::[] + include::modules/ossm-config-external-jaeger.adoc[leveloffset=+2] include::modules/ossm-config-sampling.adoc[leveloffset=+2] @@ -42,4 +50,6 @@ include::modules/ossm-integrating-with-user-workload-monitoring.adoc[leveloffset ifndef::openshift-rosa,openshift-dedicated[] * xref:../../monitoring/enabling-monitoring-for-user-defined-projects.adoc[Enabling monitoring for user-defined projects] +* xref:../../distr_tracing/distr_tracing_tempo/distr-tracing-tempo-installing.adoc[Installing the distributed tracing platform (Tempo)] +* xref:../../otel/otel-installing.adoc[Installing the Red Hat build of OpenTelemetry] endif::[] \ No newline at end of file