# alibaba/loongcollector architecture

> Architecture diagram of the GitHub repository alibaba/loongcollector, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alibaba/loongcollector
- Repository: https://github.com/alibaba/loongcollector

## Overview

LoongCollector is a node-based observability collector. Its principal workflow is to discover or receive configuration, create collection pipelines, gather logs and other telemetry, process and route events, then export them to configured destinations. The tree also shows task pipelines, Go plugins, eBPF collection, container/Kubernetes support, and self-monitoring. Some runtime wiring is documented only at a high level in the README or visible through source-index references; those links are labeled accordingly rather than treating unsampled implementation as inspected.

Main entry points: [`core/collection_pipeline/CollectionPipeline.cpp`](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipeline.cpp) (Collection pipeline), [`core/config/watcher/PipelineConfigWatcher.cpp`](https://github.com/alibaba/loongcollector/blob/main/core/config/watcher/PipelineConfigWatcher.cpp) (Config watcher), [`core/collection_pipeline/CollectionPipelineManager.cpp`](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipelineManager.cpp) (Pipeline manager), [`core/task_pipeline/TaskPipelineManager.cpp`](https://github.com/alibaba/loongcollector/blob/main/core/task_pipeline/TaskPipelineManager.cpp) (Task manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_management["Configuration and management"]
  node_config_watch["Config watcher"]
  node_collection_manager["Pipeline manager"]
  node_task_manager["Task manager"]
end

subgraph group_collection["Telemetry collection"]
  node_file_input["File collection<br/>[FileServer.cpp]"]
  node_host_metrics["Host metrics"]
  node_ebpf["eBPF telemetry<br/>[EBPFServer.cpp]"]
  node_container_support["Container discovery"]
end

subgraph group_processing["Event processing"]
  node_pipeline["Collection pipeline"]
  node_event_group["Event groups"]
  node_routing["Routing<br/>[Router.cpp]"]
  node_queue["Pipeline queues"]
  node_task_pipeline["Task pipeline"]
end

subgraph group_export["Export and plugins"]
  node_native_outputs["Native flushers<br/>[FlusherSLS.cpp]"]
  node_go_plugins["Go plugins<br/>[plugin_manager.go]"]
  node_forwarding["gRPC forwarding"]
end

subgraph group_operations["Agent operations"]
  node_monitoring["Self-monitoring<br/>[Monitor.h]"]
  node_alarms["Alarms<br/>[AlarmManager.h]"]
end

node_operator(("Operator"))
node_destination(("Telemetry destination"))

node_operator -.->|"provides config"| node_config_watch
node_config_watch -->|"updates pipelines"| node_collection_manager
node_config_watch -->|"updates tasks"| node_task_manager
node_collection_manager -->|"builds pipelines"| node_pipeline
node_file_input -.->|"collects events"| node_pipeline
node_host_metrics -.->|"collects metrics"| node_pipeline
node_ebpf -.->|"collects telemetry"| node_pipeline
node_container_support -.->|"supports discovery"| node_file_input
node_pipeline -->|"handles events"| node_event_group
node_pipeline -->|"routes events"| node_routing
node_pipeline -.->|"queues events"| node_queue
node_task_manager -->|"builds tasks"| node_task_pipeline
node_pipeline -.->|"flushes data"| node_native_outputs
node_pipeline -.->|"supports plugins"| node_go_plugins
node_forwarding -.->|"forwards input"| node_pipeline
node_native_outputs -.->|"exports telemetry"| node_destination
node_go_plugins -.->|"exports telemetry"| node_destination
node_pipeline -.->|"reports metrics"| node_monitoring
node_collection_manager -->|"reports failures"| node_alarms

click node_config_watch "https://github.com/alibaba/loongcollector/blob/main/core/config/watcher/PipelineConfigWatcher.cpp"
click node_collection_manager "https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipelineManager.cpp"
click node_task_manager "https://github.com/alibaba/loongcollector/blob/main/core/task_pipeline/TaskPipelineManager.cpp"
click node_file_input "https://github.com/alibaba/loongcollector/blob/main/core/file_server/FileServer.cpp"
click node_host_metrics "https://github.com/alibaba/loongcollector/blob/main/core/host_monitor/HostMonitorInputRunner.cpp"
click node_ebpf "https://github.com/alibaba/loongcollector/blob/main/core/ebpf/EBPFServer.cpp"
click node_container_support "https://github.com/alibaba/loongcollector/blob/main/core/container_manager/ContainerManager.cpp"
click node_pipeline "https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipeline.cpp"
click node_event_group "https://github.com/alibaba/loongcollector/blob/main/core/models/PipelineEventGroup.cpp"
click node_routing "https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/route/Router.cpp"
click node_queue "https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/queue/ProcessQueueManager.cpp"
click node_task_pipeline "https://github.com/alibaba/loongcollector/blob/main/core/task_pipeline/TaskPipelineManager.cpp"
click node_native_outputs "https://github.com/alibaba/loongcollector/blob/main/core/plugin/flusher/sls/FlusherSLS.cpp"
click node_go_plugins "https://github.com/alibaba/loongcollector/blob/main/pluginmanager/plugin_manager.go"
click node_forwarding "https://github.com/alibaba/loongcollector/blob/main/core/forward/GrpcInputManager.cpp"
click node_monitoring "https://github.com/alibaba/loongcollector/blob/main/core/monitor/Monitor.h"
click node_alarms "https://github.com/alibaba/loongcollector/blob/main/core/monitor/AlarmManager.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_config_watch,node_collection_manager,node_task_manager toneBlue
class node_file_input,node_host_metrics,node_ebpf,node_container_support toneAmber
class node_pipeline,node_event_group,node_routing,node_queue,node_task_pipeline toneMint
class node_native_outputs,node_go_plugins,node_forwarding toneRose
class node_monitoring,node_alarms,node_operator,node_destination toneIndigo
```

## Components

### Configuration and management

- [Config watcher](https://github.com/alibaba/loongcollector/blob/main/core/config/watcher/PipelineConfigWatcher.cpp): `core/config/watcher/PipelineConfigWatcher.cpp`
- [Pipeline manager](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipelineManager.cpp): `core/collection_pipeline/CollectionPipelineManager.cpp`
- [Task manager](https://github.com/alibaba/loongcollector/blob/main/core/task_pipeline/TaskPipelineManager.cpp): `core/task_pipeline/TaskPipelineManager.cpp`

### Telemetry collection

- [File collection](https://github.com/alibaba/loongcollector/blob/main/core/file_server/FileServer.cpp): `core/file_server/FileServer.cpp`
- [Host metrics](https://github.com/alibaba/loongcollector/blob/main/core/host_monitor/HostMonitorInputRunner.cpp): `core/host_monitor/HostMonitorInputRunner.cpp`
- [eBPF telemetry](https://github.com/alibaba/loongcollector/blob/main/core/ebpf/EBPFServer.cpp): `core/ebpf/EBPFServer.cpp`
- [Container discovery](https://github.com/alibaba/loongcollector/blob/main/core/container_manager/ContainerManager.cpp): `core/container_manager/ContainerManager.cpp`

### Event processing

- [Collection pipeline](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/CollectionPipeline.cpp): `core/collection_pipeline/CollectionPipeline.cpp`
- [Event groups](https://github.com/alibaba/loongcollector/blob/main/core/models/PipelineEventGroup.cpp): `core/models/PipelineEventGroup.cpp`
- [Routing](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/route/Router.cpp): `core/collection_pipeline/route/Router.cpp`
- [Pipeline queues](https://github.com/alibaba/loongcollector/blob/main/core/collection_pipeline/queue/ProcessQueueManager.cpp): `core/collection_pipeline/queue/ProcessQueueManager.cpp`
- [Task pipeline](https://github.com/alibaba/loongcollector/blob/main/core/task_pipeline/TaskPipelineManager.cpp): `core/task_pipeline/TaskPipelineManager.cpp`

### Export and plugins

- [Native flushers](https://github.com/alibaba/loongcollector/blob/main/core/plugin/flusher/sls/FlusherSLS.cpp): `core/plugin/flusher/sls/FlusherSLS.cpp`
- [Go plugins](https://github.com/alibaba/loongcollector/blob/main/pluginmanager/plugin_manager.go): `pluginmanager/plugin_manager.go`
- [gRPC forwarding](https://github.com/alibaba/loongcollector/blob/main/core/forward/GrpcInputManager.cpp): `core/forward/GrpcInputManager.cpp`

### Agent operations

- [Self-monitoring](https://github.com/alibaba/loongcollector/blob/main/core/monitor/Monitor.h): `core/monitor/Monitor.h`
- [Alarms](https://github.com/alibaba/loongcollector/blob/main/core/monitor/AlarmManager.h): `core/monitor/AlarmManager.h`

### Other components

- **Operator**
- **Telemetry destination**

## Connections

- Operator → Config watcher: provides config
- Config watcher → Pipeline manager: updates pipelines (evidence: `core/config/watcher/PipelineConfigWatcher.cpp`)
- Config watcher → Task manager: updates tasks (evidence: `core/config/watcher/PipelineConfigWatcher.cpp`)
- Pipeline manager → Collection pipeline: builds pipelines (evidence: `core/collection_pipeline/CollectionPipelineManager.cpp`)
- File collection → Collection pipeline: collects events
- Host metrics → Collection pipeline: collects metrics
- eBPF telemetry → Collection pipeline: collects telemetry
- Container discovery → File collection: supports discovery
- Collection pipeline → Event groups: handles events
- Collection pipeline → Routing: routes events
- Collection pipeline → Pipeline queues: queues events
- Task manager → Task pipeline: builds tasks (evidence: `core/task_pipeline/TaskPipelineManager.cpp`)
- Collection pipeline → Native flushers: flushes data
- Collection pipeline → Go plugins: supports plugins
- gRPC forwarding → Collection pipeline: forwards input
- Native flushers → Telemetry destination: exports telemetry
- Go plugins → Telemetry destination: exports telemetry
- Collection pipeline → Self-monitoring: reports metrics
- Pipeline manager → Alarms: reports failures (evidence: `core/collection_pipeline/CollectionPipelineManager.cpp`)
