From ce9525c23e6675055ff47f1b01cf1e9dfde299ee Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Fri, 4 Aug 2023 17:48:42 +0200 Subject: [PATCH 1/4] Add Tempo overview/architecture Signed-off-by: Pavol Loffay --- modules/distr-tracing-architecture.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/distr-tracing-architecture.adoc b/modules/distr-tracing-architecture.adoc index fe03b691610b..2c13c615f9cd 100644 --- a/modules/distr-tracing-architecture.adoc +++ b/modules/distr-tracing-architecture.adoc @@ -25,6 +25,21 @@ This module included in the following assemblies: ** *Jaeger Console* – With the {JaegerName} user interface, you can visualize your distributed tracing data. On the Search page, you can find traces and explore details of the spans that make up an individual trace. +* *{TempoName}* - This component is based on the open source link:https://opentelemetry.io/[Grafana Tempo project]. + +** *Tempo Gateway* – The Gateway handles authentication, authorization and forwards requests to the Distributor or Query frontend service. + +** *Distributor* – The Distributor accepts spans in multiple formats including Jaeger, OpenTelemetry, Zipkin. It routes spans to ingesters by hashing the `+traceID+` and using a distributed consistent hash ring. + +** *Ingester* – The Ingester batches trace into blocks, creates bloom filters and indexes, and then flushes it all to the backend. Blocks in the backend are generated in the following layout. + +** *Query Frontend* – The Query Frontend is responsible for sharding the search space for an incoming query. The search query is then sent to the Queriers. The Query Frontend deployment exposes Jaeger UI through Tempo Query sidecar. + +** *Querier* - The Querier is responsible for finding the requested trace id in either the ingesters or the backend storage. Depending on parameters it will query both the ingesters and pull bloom/indexes from the backend to search blocks in object storage. + +** *Compactor* – The Compactors stream blocks to and from the backend storage to reduce the total number of blocks. + * *{OTELName}* - This component is based on the open source link:https://opentelemetry.io/[OpenTelemetry project]. ** *OpenTelemetry Collector* - The OpenTelemetry Collector is a vendor-agnostic way to receive, process, and export telemetry data. The OpenTelemetry Collector supports open-source observability data formats, for example, Jaeger and Prometheus, sending to one or more open-source or commercial back-ends. The Collector is the default location instrumentation libraries export their telemetry data. + From 1a6746ddb79070666b6b396d9281eb1d5e40db95 Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Mon, 7 Aug 2023 11:57:15 +0200 Subject: [PATCH 2/4] Fix links Signed-off-by: Pavol Loffay --- modules/distr-tracing-architecture.adoc | 2 +- modules/distr-tracing-product-overview.adoc | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/distr-tracing-architecture.adoc b/modules/distr-tracing-architecture.adoc index 2c13c615f9cd..05e825295363 100644 --- a/modules/distr-tracing-architecture.adoc +++ b/modules/distr-tracing-architecture.adoc @@ -25,7 +25,7 @@ This module included in the following assemblies: ** *Jaeger Console* – With the {JaegerName} user interface, you can visualize your distributed tracing data. On the Search page, you can find traces and explore details of the spans that make up an individual trace. -* *{TempoName}* - This component is based on the open source link:https://opentelemetry.io/[Grafana Tempo project]. +* *{TempoName}* - This component is based on the open source link:https://github.com/grafana/tempo/[Grafana Tempo project]. ** *Tempo Gateway* – The Gateway handles authentication, authorization and forwards requests to the Distributor or Query frontend service. diff --git a/modules/distr-tracing-product-overview.adoc b/modules/distr-tracing-product-overview.adoc index d7519178e294..cff5b601d6a8 100644 --- a/modules/distr-tracing-product-overview.adoc +++ b/modules/distr-tracing-product-overview.adoc @@ -21,8 +21,10 @@ With {DTShortName} you can perform the following functions: * Perform root cause analysis -{DTProductName} consists of two main components: +{DTProductName} consists of three components: * *{JaegerName}* - This component is based on the open source link:https://www.jaegertracing.io/[Jaeger project]. +* *{TempoName}* - This component is based on the open source link:https://github.com/grafana/tempo[Grafana Tempo project]. + * *{OTELNAME}* - This component is based on the open source link:https://opentelemetry.io/[OpenTelemetry project]. From 06ca7aea848eb8649ec428835a13b2f42d6339b9 Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Mon, 7 Aug 2023 11:59:32 +0200 Subject: [PATCH 3/4] Fix Signed-off-by: Pavol Loffay --- modules/distr-tracing-architecture.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/distr-tracing-architecture.adoc b/modules/distr-tracing-architecture.adoc index 05e825295363..698f53b2b230 100644 --- a/modules/distr-tracing-architecture.adoc +++ b/modules/distr-tracing-architecture.adoc @@ -27,7 +27,7 @@ This module included in the following assemblies: * *{TempoName}* - This component is based on the open source link:https://github.com/grafana/tempo/[Grafana Tempo project]. -** *Tempo Gateway* – The Gateway handles authentication, authorization and forwards requests to the Distributor or Query frontend service. +** *Gateway* – The Gateway handles authentication, authorization and forwards requests to the Distributor or Query frontend service. ** *Distributor* – The Distributor accepts spans in multiple formats including Jaeger, OpenTelemetry, Zipkin. It routes spans to ingesters by hashing the `+traceID+` and using a distributed consistent hash ring. From e6d84e514f0f0f5a7949fcb779f37eea7f43a7ee Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Mon, 7 Aug 2023 18:32:17 +0200 Subject: [PATCH 4/4] Review comments Signed-off-by: Pavol Loffay --- modules/distr-tracing-architecture.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/distr-tracing-architecture.adoc b/modules/distr-tracing-architecture.adoc index 698f53b2b230..426af46781f4 100644 --- a/modules/distr-tracing-architecture.adoc +++ b/modules/distr-tracing-architecture.adoc @@ -27,17 +27,17 @@ This module included in the following assemblies: * *{TempoName}* - This component is based on the open source link:https://github.com/grafana/tempo/[Grafana Tempo project]. -** *Gateway* – The Gateway handles authentication, authorization and forwards requests to the Distributor or Query frontend service. +** *Gateway* – The Gateway handles authentication, authorization, and forwarding requests to the Distributor or Query front-end service. -** *Distributor* – The Distributor accepts spans in multiple formats including Jaeger, OpenTelemetry, Zipkin. It routes spans to ingesters by hashing the `+traceID+` and using a distributed consistent hash ring. +** *Distributor* – The Distributor accepts spans in multiple formats including Jaeger, OpenTelemetry, and Zipkin. It routes spans to Ingesters by hashing the `+traceID+` and using a distributed consistent hash ring. -** *Ingester* – The Ingester batches trace into blocks, creates bloom filters and indexes, and then flushes it all to the backend. Blocks in the backend are generated in the following layout. +** *Ingester* – The Ingester batches a trace into blocks, creates bloom filters and indexes, and then flushes it all to the back end. -** *Query Frontend* – The Query Frontend is responsible for sharding the search space for an incoming query. The search query is then sent to the Queriers. The Query Frontend deployment exposes Jaeger UI through Tempo Query sidecar. +** *Query Frontend* – The Query Frontend is responsible for sharding the search space for an incoming query. The search query is then sent to the Queriers. The Query Frontend deployment exposes the Jaeger UI through the Tempo Query sidecar. -** *Querier* - The Querier is responsible for finding the requested trace id in either the ingesters or the backend storage. Depending on parameters it will query both the ingesters and pull bloom/indexes from the backend to search blocks in object storage. +** *Querier* - The Querier is responsible for finding the requested trace ID in either the Ingesters or the back-end storage. Depending on parameters, it can query the Ingesters and pull Bloom indexes from the back end to search blocks in object storage. -** *Compactor* – The Compactors stream blocks to and from the backend storage to reduce the total number of blocks. +** *Compactor* – The Compactors stream blocks to and from the back-end storage to reduce the total number of blocks. * *{OTELName}* - This component is based on the open source link:https://opentelemetry.io/[OpenTelemetry project].