iLogtail

1756
下载
iLogtail 是阿里云日志服务(Log Service)中的一款高性能、可扩展的日志采集工具。它被设计用于实时收集、解析和传输各类日志数据,支持多种数据源和复杂的日志处理场景,广泛应用于分布式系统、Web 服务器、应用程序等环境中的日志管理。

如何开发Processor插件


Processor 插件对输入数据进行二次加工,以下将从接口定义与案例2方面指导如何开发Processor 插件

Processor 接口定义

Processor 插件接口方法非常容易理解,除 Init/Description 这两个标准方法外,只有一个 ProcessLogs 接口,它的输入输出都是 []*Log,即接受一个 Log 列表,经过处理后返回一个 Log 列表。很自然地,processor 插件实例之间通过此接口构成了一个串行的处理链。

// Processor also can be a filter
type Processor interface {
// Init called for init some system resources, like socket, mutex...
Init(Context) error
// Description returns a one-sentence description on the Input
Description() string
// Apply the filter to the given metric
ProcessLogs(logArray []*protocol.Log) []*protocol.Log
}

Processor 开发

Processor 的开发分为以下步骤:

  1. 创建Issue,描述开发插件功能,会有社区同学参与讨论插件开发的可行性,如果社区review 通过,请参考步骤2继续进行。
  2. 实现Processor 接口,这里我们使用样例模式进行介绍,详细样例请查看processor/addfields,你可以使用 example.json 试验此插件功能。
  3. 通过init将插件注册到Processors,Processor插件的注册名(即json配置中的plugin_type)必须以”processor_“开头,详细样例请查看processor/addfields
  4. 将插件加入插件引用配置文件common配置节, 如果仅运行于指定系统,请添加到linuxwindows配置节.
  5. 进行单测或者E2E测试,请参考如何使用单测如何使用E2E测试.
  6. 使用 make lint 检查代码规范。
  7. 提交Pull Request。

Processor 准入性能规范

基础case参考:512随机字符作为内容,完整执行一次processor中的逻辑。

处理速度准入条件:4w/s。


observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32