How alibaba/loongcollector works
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: CollectionPipeline.cpp Collection pipeline · PipelineConfigWatcher.cpp Config watcher · CollectionPipelineManager.cpp Pipeline manager · TaskPipelineManager.cpp Task manager
Components 19
Configuration and management
- Config watcher
core/config/watcher/PipelineConfigWatcher.cpp - Pipeline manager
core/collection_pipeline/CollectionPipelineManager.cpp - Task manager
core/task_pipeline/TaskPipelineManager.cpp
Telemetry collection
- File collection
core/file_server/FileServer.cpp - Host metrics
core/host_monitor/HostMonitorInputRunner.cpp - eBPF telemetry
core/ebpf/EBPFServer.cpp - Container discovery
core/container_manager/ContainerManager.cpp
Event processing
- Collection pipeline
core/collection_pipeline/CollectionPipeline.cpp - Event groups
core/models/PipelineEventGroup.cpp - Routing
core/collection_pipeline/route/Router.cpp - Pipeline queues
core/collection_pipeline/queue/ProcessQueueManager.cpp - Task pipeline
core/task_pipeline/TaskPipelineManager.cpp
Export and plugins
- Native flushers
core/plugin/flusher/sls/FlusherSLS.cpp - Go plugins
pluginmanager/plugin_manager.go - gRPC forwarding
core/forward/GrpcInputManager.cpp
Agent operations
- Self-monitoring
core/monitor/Monitor.h - Alarms
core/monitor/AlarmManager.h
Other components
- Operator
- Telemetry destination
Connections 19
- Operator → Config watcher: provides config
- Config watcher → Pipeline manager: updates pipelines
core/config/watcher/PipelineConfigWatcher.cpp - Config watcher → Task manager: updates tasks
core/config/watcher/PipelineConfigWatcher.cpp - Pipeline manager → Collection pipeline: builds pipelines
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
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
core/collection_pipeline/CollectionPipelineManager.cpp