什么是处理插件

概述

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

  • 原生插件(C++)

  • 扩展插件(Golang)

  • SPL处理

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

介绍

原生插件

  • 采用C++实现,性能最优,资源开销极低

  • 提供常用的数据处理算子

  • 适用于大部分标准的数据处理场景

  • 推荐作为首选的处理方案

扩展插件

  • 采用Golang实现,性能和资源开销适中

  • 支持更丰富的处理功能

  • 开发门槛低,易于定制开发

  • 适用于复杂的数据处理场景

SPL处理

  • 基于C++实现的列式计算

  • 采用向量化执行,性能优异

  • 提供全面的数据处理算子

  • 支持管道式处理,可以灵活组合处理逻辑

  • 通过配置即可完成复杂数据处理,无需编码

特性对比

类型
实现语言
性能特点
功能特点
开发难度

原生插件

C++

性能最优 资源开销极低

常用算子 标准处理场景

中等 需要C++开发能力

扩展插件

Golang

性能适中 资源开销较低

丰富算子 支持复杂处理

较低 Golang开发门槛低

SPL处理

C++

性能优异 向量化执行

算子全面 管道式处理 配置驱动

极低 仅需编写SPL语句

使用约束与限制

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

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

输入插件
说明

文本日志输入插件

一次性文件采集插件

容器标准输出插件

eBPF网络观测插件

文件安全监控插件

网络观测插件

网络安全监控插件

进程安全监控插件

更多输入插件说明请参考输入插件文档

插件组合规则

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

1. 单一插件模式

  • 原生插件模式

    • 组合方式:仅使用原生处理插件

    • 限制: 仅支持原生输入插件

  • 扩展插件模式

    • 组合方式:仅使用扩展处理插件

    • 支持所有类型输入插件

2. 级联模式

  • 组合方式: 原生处理插件后接扩展处理插件

  • 限制条件

    • 仅支持原生输入插件

    • 原生处理插件必须位于扩展处理插件之前

选型建议

  • 追求性能: 优先使用原生插件

  • 处理复杂数据: 选择SPL处理

  • 需要定制开发: 使用扩展插件

  • 混合处理场景: 采用级联模式

Last updated