> For the complete documentation index, see [llms.txt](https://ilogtail.gitbook.io/ilogtail-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ilogtail.gitbook.io/ilogtail-docs/pre-release/plugins/chu-li-cha-jian/processors.md).

# 什么是处理插件

## 概述

处理插件用于对采集到的数据进行解析、过滤和加工。LoongCollector 提供了三种处理模式，以满足不同场景的数据处理需求：

* 原生插件(C++)
* 扩展插件(Golang)
* SPL处理

这三种处理模式可以灵活组合使用，通过统一的 Event 数据模型，支持处理包括日志、指标、追踪、事件、性能剖析等多种可观测数据。

## 介绍

### 原生插件

* 采用C++实现，性能最优，资源开销极低
* 提供常用的数据处理算子
* 适用于大部分标准的数据处理场景
* 推荐作为首选的处理方案

### 扩展插件

* 采用Golang实现，性能和资源开销适中
* 支持更丰富的处理功能
* 开发门槛低，易于定制开发
* 适用于复杂的数据处理场景

### SPL处理

* 基于C++实现的列式计算
* 采用向量化执行，性能优异
* 提供全面的数据处理算子
* 支持**流水线**式处理，可以灵活组合处理逻辑
* 通过配置即可完成复杂数据处理，无需编码

## 特性对比

| 类型    | 实现语言   | 性能特点                  | 功能特点                          | 开发难度                     |
| ----- | ------ | --------------------- | ----------------------------- | ------------------------ |
| 原生插件  | C++    | <p>性能最优<br>资源开销极低</p> | <p>常用算子<br>标准处理场景</p>         | <p>中等<br>需要C++开发能力</p>   |
| 扩展插件  | Golang | <p>性能适中<br>资源开销较低</p> | <p>丰富算子<br>支持复杂处理</p>         | <p>较低<br>Golang开发门槛低</p> |
| SPL处理 | C++    | <p>性能优异<br>向量化执行</p>  | <p>算子全面<br>流水线式处理<br>配置驱动</p> | <p>极低<br>仅需编写SPL语句</p>   |

## 使用约束与限制

### 原生处理插件支持的输入插件

下表列出了可以与原生处理插件组合使用的输入插件：

| 输入插件                                                                                                                                      | 说明            |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| [`input_container_stdio`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-container-stdio.md)         | 容器标准输出插件      |
| [`input_file`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-file.md)                               | 文本日志输入插件      |
| [`input_file_security`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-file-security.md)             | 文件安全监控插件      |
| [`input_forward`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-forward.md)                         | 转发输入插件        |
| [`input_host_meta`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-host-meta.md)                     | 主机元数据采集       |
| [`input_host_monitor`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-host-monitor.md)               | 主机监控数据采集      |
| [`input_internal_alarms`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-internal-alarms.md)         | 自监控告警         |
| [`input_internal_metrics`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-internal-metrics.md)       | 自监控指标         |
| [`input_network_observer`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-network-observer.md)       | eBPF 网络可观测    |
| [`input_network_security`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-network-security.md)       | eBPF 网络安全     |
| [`input_process_security`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-process-security.md)       | eBPF 进程安全     |
| [`input_prometheus`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-prometheus.md)                   | Prometheus 抓取 |
| [`input_static_file_onetime`](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/yuan-sheng-shu-ru-cha-jian/input-static-file-onetime.md) | 一次性文件采集       |

上表按 **Type** 字典序排列。更多输入插件说明见[输入插件文档](/ilogtail-docs/pre-release/plugins/shu-ru-cha-jian/inputs.md)。

### 插件组合规则

LoongCollector支持以下两种处理插件组合方式：

#### 1. 单一插件模式

* **原生插件模式**：
  * 组合方式：仅使用原生处理插件
  * 限制： 仅支持原生输入插件
* **扩展插件模式**：
  * 组合方式：仅使用扩展处理插件
  * 支持所有类型输入插件

#### 2. 级联模式

* **组合方式**： 原生处理插件后接扩展处理插件
* **限制条件**：
  * 仅支持原生输入插件
  * 原生处理插件必须位于扩展处理插件之前

## 选型建议

* 追求性能： 优先使用原生插件
* 处理复杂数据： 选择SPL处理
* 需要定制开发： 使用扩展插件
* 混合处理场景： 采用级联模式
