OpenTelemetry Collector Public Repo System Review Graph

The OpenTelemetry Collector routes telemetry through configurable receivers, processors, connectors, extensions, and exporters.

Depth: deep Systems: 6 Artifacts: 8 Gates: 4 Workflows: 6

Bigger Picture

This example shows how to map a component pipeline repo. The system is a configurable telemetry service: configuration declares pipelines, receivers ingest signals, processors transform or batch them, connectors can bridge pipelines, exporters send telemetry onward, extensions add service capabilities, and service orchestration manages startup, shutdown, and observability.

Source Links

Report Registers

Coverage Register

AreaCountWhat It MeansReviewer Use
Systems6Bounded contexts, services, subsystems, or product surfaces.Use this to see whether the report maps the main operating areas.
Artifacts8Inspectable files, APIs, tables, dashboards, reports, or outputs.Use this to trace where system claims can be inspected.
Schemas/contracts6Public or sanitized contracts for artifacts and handoffs.Use this to rebuild examples without touching private data.
Decision gates4Rules that advance, wait, block, or require human review.Use this to find where the system controls action.
Workflows6Lifecycle steps from input to output.Use this to follow what happens end to end.
Graph edges51Explicit and derived relationships between manifest nodes.Use this to audit connectivity and missing relationships.
Child maps0Linked subsystem maps for large repositories.Use this to drill into a map-of-maps instead of one flat report.
Blueprint sections0Source-evidence-backed operating flows.Use this to review deep behavior claims with proof anchors.
Blueprint evidence rows0Source paths, symbols, roles, and proof levels.Use this to verify whether blueprint claims are source-backed.
Source links3External or public references used by the report.Use this to confirm the report's public evidence base.
Known boundaries4Open limits, unproven claims, redactions, or scope exclusions.Use this to avoid treating the report as stronger than it is.
Review questions5Questions a maintainer, auditor, or agent should answer next.Use this as the human follow-up queue.
Rebuild phases2Documented commands or phases for reproducing the report.Use this to regenerate or verify the report locally.

Evidence Register

EvidenceKindCoverageProofReviewer Use
GitHub repositorysource linkwhole reportdeclaredPrimary public source used for repo identity and source paths.
OpenTelemetry Collector documentationsource linkwhole reportdeclaredPublic docs for collector concepts and configuration.
OpenTelemetry projectsource linkwhole reportdeclaredPublic project context for telemetry standards.
receiver/source_directorycollectorsafe_to_shareDefines receiver interfaces, helpers, and built-in receiver components.
processor/source_directorycollectorsafe_to_shareDefines processors that transform, batch, limit, or otherwise mediate telemetry.
exporter/source_directorycollectorsafe_to_shareDefines exporters and exporter helper behavior.
connector/source_directorycollectorsafe_to_shareDefines connectors that can route telemetry between pipelines.
extension/source_directorycollectorsafe_to_shareDefines service extensions such as auth, zpages, memory limiters, and capabilities.
service/source_directorycollectorsafe_to_shareCoordinates configuration, pipelines, component lifecycle, telemetry, and host capabilities.
confmap/source_directorycollectorsafe_to_shareLoads and resolves configuration maps and providers.
docs/public_docsdocssafe_to_shareDocuments collector behavior, proposals, and images.
CollectorConfigconfiguration_contractreceivers, processors, exporters, service.pipelinescontract declaredDeclares which components exist and how telemetry flows through pipelines.
ReceiverContractcomponent_contractcomponent_id, signal_type, endpoint, start_statuscontract declaredDescribes an ingest component that accepts telemetry.
ProcessorContractcomponent_contractcomponent_id, signal_type, transform_policy, failure_policycontract declaredDescribes transformation, batching, filtering, memory, or enrichment behavior.
ExporterContractcomponent_contractcomponent_id, destination, retry_policy, queue_policycontract declaredDescribes where telemetry is sent and how failures are handled.
TelemetryBatchdata_contractsignal_type, resource_attrs, scope, recordscontract declaredRepresents telemetry moving through a pipeline.
ComponentStatushealth_contractcomponent_id, status, error, observed_atcontract declaredRepresents component lifecycle and health state.

Gap Register

GapAreaStatusBoundaryNext Step
Known boundarywhole reportopenThis is a public educational map, not an official OpenTelemetry maintainer audit.Accept the boundary or add evidence that closes it.
Known boundarywhole reportopenIt maps the collector architecture at a high level, not every component or distribution.Accept the boundary or add evidence that closes it.
Known boundarywhole reportopenReal enterprise reviews should use fake or redacted telemetry payloads.Accept the boundary or add evidence that closes it.
Known boundarywhole reportopenA full audit should inspect exact config, component versions, tests, runtime metrics, and deployment policy.Accept the boundary or add evidence that closes it.
System truth boundaryConfiguration SystemreviewConfiguration describes desired telemetry flow; startup gates decide whether it can run.Inspect this boundary before making stronger behavior claims.
System truth boundaryReceiver LayerreviewA receiver only starts when configuration and lifecycle checks pass.Inspect this boundary before making stronger behavior claims.
System truth boundaryProcessor LayerreviewProcessor behavior is bounded by pipeline order and configuration.Inspect this boundary before making stronger behavior claims.
System truth boundaryConnector And Extension LayerreviewConnectors and extensions can change topology or service behavior; they must start cleanly.Inspect this boundary before making stronger behavior claims.
System truth boundaryExporter LayerreviewDelivery depends on destination, queue, retry, and failure policy.Inspect this boundary before making stronger behavior claims.
System truth boundaryService OrchestratorreviewThe service can expose health and telemetry, but configured components determine data path.Inspect this boundary before making stronger behavior claims.
Blueprint not declaredwhole reportoptionalNo source-backed blueprint sections were declared.Add blueprint sections when the report needs source-level proof.

Action Register

ActionOwnerStatusTriggerExpected Output
Review questionmaintainer / auditoropenHow does configuration become a running telemetry pipeline?Answer from source, tests, docs, logs, or maintainer knowledge.
Review questionmaintainer / auditoropenWhich gates prevent invalid config or failed components from processing telemetry?Answer from source, tests, docs, logs, or maintainer knowledge.
Review questionmaintainer / auditoropenWhere are backpressure, memory, queue, retry, and delivery policies enforced?Answer from source, tests, docs, logs, or maintainer knowledge.
Review questionmaintainer / auditoropenHow can a reviewer audit topology without seeing customer telemetry payloads?Answer from source, tests, docs, logs, or maintainer knowledge.
Review questionmaintainer / auditoropenWhich component health and service telemetry artifacts would prove runtime behavior?Answer from source, tests, docs, logs, or maintainer knowledge.
Resolve boundarymaintainer / auditoropenThis is a public educational map, not an official OpenTelemetry maintainer audit.Accept as scope or add proof that closes it.
Resolve boundarymaintainer / auditoropenIt maps the collector architecture at a high level, not every component or distribution.Accept as scope or add proof that closes it.
Resolve boundarymaintainer / auditoropenReal enterprise reviews should use fake or redacted telemetry payloads.Accept as scope or add proof that closes it.
Resolve boundarymaintainer / auditoropenA full audit should inspect exact config, component versions, tests, runtime metrics, and deployment policy.Accept as scope or add proof that closes it.
Rebuild phasemaintainer / agentrepeatablevalidateCheck the OpenTelemetry Collector public repo manifest.
Rebuild phasemaintainer / agentrepeatablebuildGenerate the OpenTelemetry Collector system review report.

Lifecycle Map

flowchart LR
  load_configuration["Load Configuration"]
  start_components["Start Components"]
  receive_telemetry["Receive Telemetry"]
  process_telemetry["Process Telemetry"]
  route_or_export["Route Or Export"]
  observe_collector["Observe Collector"]
  load_configuration --> start_components["Start Components"]
  start_components --> receive_telemetry["Receive Telemetry"]
  receive_telemetry --> process_telemetry["Process Telemetry"]
  process_telemetry --> route_or_export["Route Or Export"]
  route_or_export --> observe_collector["Observe Collector"]

Artifact And Schema Map

flowchart LR
  system_configuration_system["Configuration System"]
  system_configuration_system --> artifact_confmap_tree["Configuration Map Tree"]
  artifact_confmap_tree --> schema_CollectorConfig["CollectorConfig"]
  system_configuration_system --> artifact_service_tree["Service Tree"]
  artifact_service_tree --> schema_CollectorConfig["CollectorConfig"]
  system_receiver_layer["Receiver Layer"]
  system_receiver_layer --> artifact_receiver_tree["Receiver Tree"]
  artifact_receiver_tree --> schema_ReceiverContract["ReceiverContract"]
  system_processor_layer["Processor Layer"]
  system_processor_layer --> artifact_processor_tree["Processor Tree"]
  artifact_processor_tree --> schema_ProcessorContract["ProcessorContract"]
  system_connector_extension_layer["Connector And Extension Layer"]
  system_connector_extension_layer --> artifact_connector_tree["Connector Tree"]
  artifact_connector_tree --> schema_TelemetryBatch["TelemetryBatch"]
  system_connector_extension_layer --> artifact_extension_tree["Extension Tree"]
  artifact_extension_tree --> schema_ComponentStatus["ComponentStatus"]
  system_exporter_layer["Exporter Layer"]
  system_exporter_layer --> artifact_exporter_tree["Exporter Tree"]
  artifact_exporter_tree --> schema_ExporterContract["ExporterContract"]
  system_service_orchestrator["Service Orchestrator"]
  system_service_orchestrator --> artifact_service_tree["Service Tree"]
  artifact_service_tree --> schema_CollectorConfig["CollectorConfig"]
  system_service_orchestrator --> artifact_docs_tree["Docs Tree"]
  artifact_docs_tree --> schema_CollectorConfig["CollectorConfig"]

Gate Map

flowchart LR
  gate_config_validation_gate{"Configuration Validation Gate"}
  gate_config_validation_gate --> out_config_validation_gate_valid_config["valid_config"]
  gate_config_validation_gate --> out_config_validation_gate_config_error["config_error"]
  gate_component_lifecycle_gate{"Component Lifecycle Gate"}
  gate_component_lifecycle_gate --> out_component_lifecycle_gate_component_started["component_started"]
  gate_component_lifecycle_gate --> out_component_lifecycle_gate_component_failed["component_failed"]
  gate_backpressure_gate{"Backpressure And Memory Gate"}
  gate_backpressure_gate --> out_backpressure_gate_accept_batch["accept_batch"]
  gate_backpressure_gate --> out_backpressure_gate_drop_or_throttle["drop_or_throttle"]
  gate_export_delivery_gate{"Export Delivery Gate"}
  gate_export_delivery_gate --> out_export_delivery_gate_exported["exported"]
  gate_export_delivery_gate --> out_export_delivery_gate_retry["retry"]
  gate_export_delivery_gate --> out_export_delivery_gate_failed_export["failed_export"]
  gate_config_validation_gate{"Configuration Validation Gate"} --> step_load_configuration["Load Configuration"]
  gate_component_lifecycle_gate{"Component Lifecycle Gate"} --> step_start_components["Start Components"]
  gate_component_lifecycle_gate{"Component Lifecycle Gate"} --> step_receive_telemetry["Receive Telemetry"]
  gate_backpressure_gate{"Backpressure And Memory Gate"} --> step_process_telemetry["Process Telemetry"]
  gate_export_delivery_gate{"Export Delivery Gate"} --> step_route_or_export["Route Or Export"]
  gate_component_lifecycle_gate{"Component Lifecycle Gate"} --> step_observe_collector["Observe Collector"]

Relationship Graph

flowchart TD
  configuration_system["Configuration System"] -- "declares runtime for" --> service_orchestrator["Service Orchestrator"]
  processor_layer["Processor Layer"] -- "feeds processed batches to" --> exporter_layer["Exporter Layer"]
  configuration_system["Configuration System"] -- "owns or uses" --> confmap_tree["Configuration Map Tree"]
  configuration_system["Configuration System"] -- "owns or uses" --> service_tree["Service Tree"]
  configuration_system["Configuration System"] -- "is gated by" --> config_validation_gate["Configuration Validation Gate"]
  receiver_layer["Receiver Layer"] -- "owns or uses" --> receiver_tree["Receiver Tree"]
  receiver_layer["Receiver Layer"] -- "is gated by" --> component_lifecycle_gate["Component Lifecycle Gate"]
  processor_layer["Processor Layer"] -- "owns or uses" --> processor_tree["Processor Tree"]
  processor_layer["Processor Layer"] -- "is gated by" --> backpressure_gate["Backpressure And Memory Gate"]
  processor_layer["Processor Layer"] -- "is gated by" --> component_lifecycle_gate["Component Lifecycle Gate"]
  connector_extension_layer["Connector And Extension Layer"] -- "owns or uses" --> connector_tree["Connector Tree"]
  connector_extension_layer["Connector And Extension Layer"] -- "owns or uses" --> extension_tree["Extension Tree"]
  connector_extension_layer["Connector And Extension Layer"] -- "is gated by" --> component_lifecycle_gate["Component Lifecycle Gate"]
  exporter_layer["Exporter Layer"] -- "owns or uses" --> exporter_tree["Exporter Tree"]
  exporter_layer["Exporter Layer"] -- "is gated by" --> export_delivery_gate["Export Delivery Gate"]
  exporter_layer["Exporter Layer"] -- "is gated by" --> component_lifecycle_gate["Component Lifecycle Gate"]
  service_orchestrator["Service Orchestrator"] -- "owns or uses" --> service_tree["Service Tree"]
  service_orchestrator["Service Orchestrator"] -- "owns or uses" --> docs_tree["Docs Tree"]
  service_orchestrator["Service Orchestrator"] -- "is gated by" --> config_validation_gate["Configuration Validation Gate"]
  service_orchestrator["Service Orchestrator"] -- "is gated by" --> component_lifecycle_gate["Component Lifecycle Gate"]
  config_file["config_file"] -- "feeds" --> load_configuration["Load Configuration"]
  confmap_tree["Configuration Map Tree"] -- "feeds" --> load_configuration["Load Configuration"]
  load_configuration["Load Configuration"] -- "produces" --> CollectorConfig["CollectorConfig"]
  config_validation_gate["Configuration Validation Gate"] -- "gates" --> load_configuration["Load Configuration"]
  load_configuration["Load Configuration"] -- "routes to" --> start_components["Start Components"]
  CollectorConfig["CollectorConfig"] -- "feeds" --> start_components["Start Components"]
  service_tree["Service Tree"] -- "feeds" --> start_components["Start Components"]
  start_components["Start Components"] -- "produces" --> ComponentStatus["ComponentStatus"]
  component_lifecycle_gate["Component Lifecycle Gate"] -- "gates" --> start_components["Start Components"]
  start_components["Start Components"] -- "routes to" --> receive_telemetry["Receive Telemetry"]
  external_signal["external_signal"] -- "feeds" --> receive_telemetry["Receive Telemetry"]
  ReceiverContract["ReceiverContract"] -- "feeds" --> receive_telemetry["Receive Telemetry"]
  receive_telemetry["Receive Telemetry"] -- "produces" --> TelemetryBatch["TelemetryBatch"]
  component_lifecycle_gate["Component Lifecycle Gate"] -- "gates" --> receive_telemetry["Receive Telemetry"]
  receive_telemetry["Receive Telemetry"] -- "routes to" --> process_telemetry["Process Telemetry"]
  TelemetryBatch["TelemetryBatch"] -- "feeds" --> process_telemetry["Process Telemetry"]
  ProcessorContract["ProcessorContract"] -- "feeds" --> process_telemetry["Process Telemetry"]
  process_telemetry["Process Telemetry"] -- "produces" --> TelemetryBatch["TelemetryBatch"]
  backpressure_gate["Backpressure And Memory Gate"] -- "gates" --> process_telemetry["Process Telemetry"]
  process_telemetry["Process Telemetry"] -- "routes to" --> route_or_export["Route Or Export"]
  TelemetryBatch["TelemetryBatch"] -- "feeds" --> route_or_export["Route Or Export"]
  ExporterContract["ExporterContract"] -- "feeds" --> route_or_export["Route Or Export"]
  route_or_export["Route Or Export"] -- "produces" --> exported["exported"]
  route_or_export["Route Or Export"] -- "produces" --> retry["retry"]
  route_or_export["Route Or Export"] -- "produces" --> failed_export["failed_export"]
  export_delivery_gate["Export Delivery Gate"] -- "gates" --> route_or_export["Route Or Export"]
  route_or_export["Route Or Export"] -- "routes to" --> observe_collector["Observe Collector"]
  ComponentStatus["ComponentStatus"] -- "feeds" --> observe_collector["Observe Collector"]
  export_result["export_result"] -- "feeds" --> observe_collector["Observe Collector"]
  observe_collector["Observe Collector"] -- "produces" --> service_telemetry["service_telemetry"]
  component_lifecycle_gate["Component Lifecycle Gate"] -- "gates" --> observe_collector["Observe Collector"]

Systems

Configuration System

Loads and resolves collector configuration into service pipelines.

Architecture
configuration and provider layer
Lifecycle
config file/provider -> CollectorConfig -> pipeline graph
Boundary
Configuration describes desired telemetry flow; startup gates decide whether it can run.

Receiver Layer

Accepts telemetry from external sources and injects it into pipelines.

Architecture
component ingest layer
Lifecycle
external telemetry -> receiver -> pipeline
Boundary
A receiver only starts when configuration and lifecycle checks pass.

Processor Layer

Transforms, batches, limits, or filters telemetry before export.

Architecture
pipeline transformation layer
Lifecycle
TelemetryBatch -> processor chain -> TelemetryBatch
Boundary
Processor behavior is bounded by pipeline order and configuration.

Connector And Extension Layer

Bridges pipelines and adds service-level capabilities.

Architecture
component extension layer
Lifecycle
component config -> started connector/extension -> runtime capability
Boundary
Connectors and extensions can change topology or service behavior; they must start cleanly.

Exporter Layer

Sends processed telemetry to configured destinations.

Architecture
component egress layer
Lifecycle
TelemetryBatch -> exporter -> destination
Boundary
Delivery depends on destination, queue, retry, and failure policy.

Service Orchestrator

Coordinates component lifecycle, pipelines, host capabilities, and service telemetry.

Architecture
service runtime
Lifecycle
valid config -> start components -> run pipelines -> shutdown
Boundary
The service can expose health and telemetry, but configured components determine data path.

Review Questions