Skip to content

Commit

Permalink
Apply suggestions from initial review
Browse files Browse the repository at this point in the history
Co-authored-by: Severin Neumann <[email protected]>
  • Loading branch information
tiffany76 and svrnm authored Feb 21, 2024
1 parent 87e96b2 commit e09a8bf
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions content/en/docs/collector/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Architecture
weight: 28
# prettier-ignore
cSpell:ignore: # TODO: Add keywords to ignore.
cSpell:ignore: fanoutconsumer probabilisticsampler spanmetrics zpages
---

OpenTelemetry Collector is an executable that can receive telemetry data,
Expand Down Expand Up @@ -70,12 +70,12 @@ A pipeline configuration typically looks like this:
service:
pipelines: # section that can contain multiple subsections, one per pipeline
traces: # type of the pipeline
receivers: [otlp, jaeger, zipkin]
receivers: [otlp, zipkin]
processors: [memory_limiter, batch]
exporters: [otlp, jaeger, zipkin]
exporters: [otlp, zipkin]
```
The above example defines a pipeline for the traces type of telemetry data,
The above example defines a pipeline for the traces type of telemetry data,
with three receivers, two processors, and three exporters.
For details of config file format see
Expand Down Expand Up @@ -105,7 +105,7 @@ service:
traces/2: # another pipeline of “traces” type
receivers: [otlp]
processors: [batch]
exporters: [opencensus]
exporters: [otlp]
```
In the above example, `otlp` receiver will send the same data to pipeline
Expand All @@ -118,19 +118,25 @@ When the Collector loads this config, the result will look like this diagram

<!--TODO: Add Receivers image via Mermaid.-->

> Important: When the same receiver is referenced in more than one pipeline, the
> Collector creates only one receiver instance at runtime that sends the data to
> a fan out consumer. The fan out consumer in turn sends the data to the first
> processor of each pipeline. The data propagation from receiver to the fan out
> consumer and then to processors is completed using a synchronous function
> call. This means that if one processor blocks the call, the other pipelines
> attached to this receiver are blocked from receiving the same data, and the
> receiver itself stops processing and forwarding newly received data.

{{% alert title="Important" color="warning" %}}

When the same receiver is referenced in more than one pipeline, the
Collector creates only one receiver instance at runtime that sends the data to
a fan out consumer. The fan out consumer in turn sends the data to the first
processor of each pipeline. The data propagation from receiver to the fan out
consumer and then to processors is completed using a synchronous function
call. This means that if one processor blocks the call, the other pipelines
attached to this receiver are blocked from receiving the same data, and the
receiver itself stops processing and forwarding newly received data.

{{% /alert %}}


### Exporters

Exporters typically forward the data they get to a destination on a network, but
they can also send the data elsewhere. For example, `logging` exporter writes
they can also send the data elsewhere. For example, `debug` exporter writes
the telemetry data to the logging destination.

The configuration allows for multiple exporters of the same type, even in the
Expand Down

0 comments on commit e09a8bf

Please sign in to comment.