diff --git a/content/docs/next-release-v2/architecture.md b/content/docs/next-release-v2/architecture.md index d9f9c3ae..297fb27b 100644 --- a/content/docs/next-release-v2/architecture.md +++ b/content/docs/next-release-v2/architecture.md @@ -68,63 +68,65 @@ Downsides: * An extra layer of marshaling/unmarshaling the data. -## Jaeger binary components +## Jaeger Binary -The Jaeger binary consists of several components, some of which are derived from OpenTelemetry and some are internal. The following diagram has the major components. +The Jaeger binary is build on top of the OpenTelemetry Collector framework and includes: + * Official upstream components, such as OTLP Receiver, Batch and Attribute Processor, etc. + * Upstream components from `opentelemetry-collector-contrib`, such as Kafka Exporter and Receiver, Tail Sampling Processor, etc. + * Jaeger own components, such as Jaeger Storage Exporter, Jaeger Query Extension, etc. ![Architecture](/img/architecture-v2-binary.png) -Aside from these components there are several other components from OpenTelemetry you can use in the config of the Jaeger binary. Here is the full list of components: - ### Jaeger Components -* [Adaptive Sampling Processor](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/processors/adaptivesampling) Used for [adaptive sampling](../sampling/#adaptive-sampling). +* [Jaeger Storage Extension](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerstorage) - Extensible hub for storage backends supported in Jaeger. It provides all other Jaeger components access to Jaeger storage implementations. + +* [Jaeger Storage Exporter](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerstorage) - Writes spans to storage backend configured in the Jaeger Storage Extension. -* [Jaeger Remote Sampling Extension](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/remotesampling) - Creates an endpoint for [Remote Sampling](../sampling/#remote-sampling) +* [Jaeger Query Extension](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerquery) - Run the query APIs and the Jaeger UI. -* [Jaeger Storage Exporter](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerstorage) - Writes spans to storage. +* [Adaptive Sampling Processor](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/processors/adaptivesampling) - Performs probabilities calculations for [adaptive sampling](../sampling/#adaptive-sampling). -* [Jaeger Query Extension](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerquery) - Run the query API and the Jaeger UI. +* [Remote Sampling Extension](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/remotesampling) - Serves the endpoints for [Remote Sampling](../sampling/#remote-sampling), based on static configuration file or [adaptive sampling](../sampling/#adaptive-sampling). ### OpenTelemetry Components #### Receivers -* [OTLP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver/otlpreceiver) - Receive spans sent via OpenTelemetry Line Protocol (OTLP) -* [Jaeger](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/jaegerreceiver) - Receive Jaeger formatted traces transported via grpc or thrift protocols +* [OTLP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver/otlpreceiver) - Accepts spans sent via OpenTelemetry Line Protocol (OTLP). + +* [Jaeger](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/jaegerreceiver) - Accepts Jaeger formatted traces transported via gRPC or Thrift protocols. -* [Kafka](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/kafkareceiver) - Receive spans from Kafka formatted with OpenTelemetry formatting +* [Kafka](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/kafkareceiver) - Accepts spans from Kafka in various formats (OTLP, Jaeger, Zipkin). -* [Zipkin](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/zipkinreceiver) - Receive spans using Zipkin v1 or v2 protocol +* [Zipkin](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/zipkinreceiver) - Accepts spans using Zipkin v1 and v2 protocols. #### Processors -* [Batch](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/batchprocessor) - Batching spans for better efficiency +* [Batch](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/batchprocessor) - Batches spans for better efficiency. -* [Tail Sampling](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor) - Sampling after traces is complete +* [Tail Sampling](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor) - Supports advanced post-collection sampling. -* [Memory Limiter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/memorylimiterprocessor) - Control memory usage of collector +* [Memory Limiter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/memorylimiterprocessor) - Supports backpressure when the collector is overloaded. + +* [Attributes](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/attributesprocessor) - Allows filtering, rewriting, and enriching spans with attributes. Can be used to redact sensitive data, reduce data volume, or attach environment information. -* [Attributes](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/attributesprocessor) - Filtering spans based on attributes to redact or reduce data volume - #### Exporters -* [OTLP HTTP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter) - Send data via OTLP over HTTP +* [OTLP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlpexporter) - Send data in OTLP format via gRPC. -* [OTLP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlpexporter) - Send data over OTLP via gRPC +* [OTLP HTTP](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter) - Sends data in OTLP format over HTTP. -* [Kafka](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/kafkaexporter/) - Send data to Kafka +* [Kafka](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/kafkaexporter/) - Sends data to Kafka in various formats (OTLP, Jaeger, Zipkin). -* [Prometheus](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusexporter) - Send metrics to Prometheus +* [Prometheus](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusexporter) - Sends metrics to Prometheus. -* [Debug](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/debugexporter) - Debugging tool for pipelines +* [Debug](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/debugexporter) - Debugging tool for pipelines. #### Connectors -* [Span Metrics](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/connector/spanmetricsconnector/) - Convert span data to metrics +* [Span Metrics](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/connector/spanmetricsconnector/) - Generates metrics from span data. -* [Forward](https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/forwardconnector/) - Redirect telemetry between pipelines in the collector (ex: span to metric / span to log) +* [Forward](https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/forwardconnector/) - Redirects telemetry between pipelines in the collector (ex: span to metric / span to log) #### Extensions -* [Jaeger Storage](https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger/internal/extension/jaegerstorage) - Extensible storage for Jaeger using V1 APIs - -* [Health Check v2](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/healthcheckv2extension) - Check the health of the collector +* [Health Check v2](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/healthcheckv2extension) - Supports health checks. -* [zPages](https://github.com/open-telemetry/opentelemetry-collector/tree/main/extension/zpagesextension) - Debugging tool for the collector \ No newline at end of file +* [zPages](https://github.com/open-telemetry/opentelemetry-collector/tree/main/extension/zpagesextension) - Exposes internal state of the collector for debugging. diff --git a/static/img/architecture-v2-binary.png b/static/img/architecture-v2-binary.png index 771cb1eb..fff0d302 100644 Binary files a/static/img/architecture-v2-binary.png and b/static/img/architecture-v2-binary.png differ