Skip to content

Collector Pipelines and Connectors: OTCA practice questions

A pipeline is the path telemetry takes through the Collector, from reception through optional processing to export. Each pipeline has a data type, which is traces, metrics or logs, and the type is part of the pipeline identifier, as in metrics or metrics/internal. Every receiver, processor and exporter used in a pipeline has to support that type.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Collector Pipelines and Connectors covers in OTCA

A pipeline is the path telemetry takes through the Collector, from reception through optional processing to export. Each pipeline has a data type, which is traces, metrics or logs, and the type is part of the pipeline identifier, as in metrics or metrics/internal. Every receiver, processor and exporter used in a pipeline has to support that type. If one does not, the Collector reports a signal-not-supported error when it loads the configuration, so the mistake surfaces at startup rather than at runtime.

Inside a pipeline, data from all listed receivers flows into the first processor, then through each processor in the order written, and the last processor hands it to the exporters. That hand-off is a fan-out: every exporter receives its own copy of every data element. A processor may also drop data, which is how sampling and filtering work. The batch processor guidance adds an ordering rule: put memory_limiter first and batch after any sampling, so batching happens after data has been dropped.

Sharing components across pipelines follows different rules for each kind. A receiver listed in several pipelines runs as a single instance that feeds a fan-out consumer, and the hand-off is a synchronous call. If a processor in one of those pipelines blocks, the other pipelines stop receiving that receiver's data and the receiver stops accepting new data. Exporters can likewise be shared, and several pipelines can send to the same exporter. Processors are never shared: each pipeline that references a processor gets its own instance with its own state, built from the same configuration. A single pipeline must not list the same processor twice.

Connectors link pipelines. A connector is listed as an exporter at the end of one pipeline and as a receiver at the start of another, and the two sides may carry the same or different signal types. Each connector supports only specific pairs. The count connector turns spans, metrics or logs into count metrics. If the traces pipeline exports only to count, the original spans go nowhere unless you also add a trace exporter. The span metrics connector, now typed span_metrics with spanmetrics kept as a deprecated name, consumes traces and emits request, error and duration metrics. The forward connector has no settings and simply merges or forks pipelines of one type. The routing connector sends data to different pipelines based on OTTL conditions. By default a match moves data to the target and removes it from later routes, while the copy action leaves it available to later routes, and default_pipelines catch anything that matches nothing.

Seen together, these rules explain most pipeline designs: receivers fan data into pipelines, processors shape it in order, exporters each get a copy, and connectors let one pipeline's output become another pipeline's input.

Key points

  • A pipeline has one data type, and components that do not support it fail at configuration load.
  • Processors run in listed order and every exporter receives a copy of each data element.
  • A shared receiver is one instance with a synchronous fan-out, so a blocked processor stalls all its pipelines.
  • Each pipeline gets its own instance of a referenced processor, with separate state.
  • Connectors act as an exporter in one pipeline and a receiver in another, for example count, span_metrics, forward and routing.

Three sample questions

17 OTCA questions on Collector Pipelines and Connectors, 17 with explanations. How practice works

Question 1

You have a single receiver configured in your OpenTelemetry Collector that needs to send telemetry data to two separate trace pipelines. How can you achieve this configuration?
  1. A.Define two separate receiver instances with different names.
  2. B.Use a processor to duplicate the telemetry data to multiple pipelines.
  3. C.List the same receiver in both pipelines under service.pipelines.
  4. D.Configure the receiver to export to multiple exporters within a single pipeline.

Correct answer: C

The Collector architecture page says "it is also possible to configure the same receiver to send the same received data to multiple pipelines. This can be done by listing the same receiver in the receivers key of several pipelines". The configuration page adds that a receiver can be used in more than one pipeline. Why the other options are wrong. "Define two separate receiver instances with differ…": two receiver instances would need two listening endpoints; one receiver can feed several pipelines directly. "Use a processor to duplicate the telemetry data to…": processors work inside one pipeline; fan-out to several pipelines comes from listing the receiver in each. "Configure the receiver to export to multiple expor…": several exporters in one pipeline send to several destinations, but it is still one pipeline, not two.

Sources: OpenTelemetry docs: Collector architecture, OpenTelemetry docs: Collector configuration

Question 2

Your distributed application emits logs, traces, and metrics using various legacy libraries. You want to achieve a unified observability pipeline without altering existing log formats. Which OpenTelemetry component should you configure to map and process these diverse telemetry signals uniformly?
  1. A.Implement the OpenTelemetry API directly in each service.
  2. B.Configure the Collector to ingest and map the different signals.
  3. C.Use the OpenTelemetry SDK to replace all legacy libraries.
  4. D.Set up separate backends for logs, traces and metrics without using OpenTelemetry.

Correct answer: B

The Collector page says it "offers a vendor-agnostic implementation of how to receive, process and export telemetry data", supports open source data formats such as Jaeger, Prometheus and Fluent Bit, and "removes the need to run, operate, and maintain multiple agents/collectors". Receivers ingest each legacy format and pipelines process all signals the same way, without changing the applications. Why the other options are wrong. "Implement the OpenTelemetry API directly in each s…": rewriting every service against the API is exactly the code change the scenario wants to avoid. "Use the OpenTelemetry SDK to replace all legacy li…": replacing every legacy library is the opposite of keeping existing formats unchanged. "Set up separate backends for logs, traces and metr…": separate backends without a common pipeline do not unify anything.

Sources: OpenTelemetry docs: Collector, OpenTelemetry docs: Collector configuration

Question 3

In the OpenTelemetry Collector, what determines the order in which processing operations are applied to telemetry data?
  1. A.The priority level assigned to each processor.
  2. B.The type of telemetry data being processed.
  3. C.The sequence in which processors are added to a pipeline.
  4. D.The alphabetical order of processor names in the configuration file

Correct answer: C

The Collector configuration page says "the order of processors dictates the order in which data is processed" in a pipeline. The architecture page describes a pipeline as receivers, then "A series of optional processors that get the data from receivers and process it", then exporters. Why the other options are wrong. "The priority level assigned to each processor.": Collector processors have no priority setting. "The type of telemetry data being processed.": the data type decides which pipelines exist, not the order of processors within one. "The alphabetical order of processor names in the c…": the order comes from the pipeline's processors list, not from processor names.

Sources: OpenTelemetry docs: Collector configuration, OpenTelemetry docs: Collector architecture

Practice this topic

Focus mode keeps every question on Collector Pipelines and Connectors until you leave it. 10 free guest answers, then a free account; no credit card.

Or open OTCA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

Can a processor be shared so two pipelines see the same state?

No. The architecture docs say processors are never shared between pipelines; each pipeline gets its own instance even when it references the same processor key.

What does the routing connector do with a record that matches a route when no action is set?

The default action is move, so the record goes to that route and is not evaluated by later routes.