LoongCollector

1758
下载
LoongCollector 源自阿里云可观测性团队所开源的 iLogtail 项目,在继承了 iLogtail 强大的日志采集与处理能力的基础上,进行了全面的功能升级与扩展。从原来单一日志场景,逐步扩展为可观测数据采集、本地计算、服务发现的统一体。 LoongCollector 是一款集卓越性能、超强稳定性和灵活可编程性于一身的数据采集器,专为构建下一代可观测 Pipeline 设计。愿景是:打造业界领先的“统一可观测 Agent(Unified Observability Agent)”与“端到端可观

如何开发扩展Extension插件


Extension 插件可以用来注册自定义的能力和接口实现,这些能力和接口实现,可以在其他插件(input、processor、aggregator、flusher)中引用。

Extension 接口定义

Extension 插件的作用是提供一个通用的注册特定能力的方式(通常为特定接口的实现),Extension 被注册后,在pipeline中的其他插件内可以被依赖并type-cast成特定的接口。

  • Description: 插件描述
  • Init: 插件初始化接口,对于 Extension 来讲,可以是任何其所提供的能力的必要的初始化动作
  • Stop: 停止插件,比如断开与外部系统交互的连接等
type Extension interface {
// Description returns a one-sentence description on the Extension
Description() string
// Init called for init some system resources, like socket, mutex...
Init(Context) error
// Stop stops the services and release resources
Stop() error
}

Extension 开发

Extension 的开发分为以下步骤:

  1. 创建Issue,描述开发插件功能,会有社区同学参与讨论插件开发的可行性,如果社区review 通过,请参考步骤2继续进行。
  2. 实现 Extension 接口(注:这里除实现上述通用的Extension接口外,还应实现该 Extension 希望提供的能力对应的接口方法),这里我们使用样例模式进行介绍,如 extension/basicauth 这个 Extension 实现了 extensions.ClientAuthenticator 这个接口。
  3. 通过init将插件注册到Extensions,Extension 插件的注册名(即json配置中的plugin_type)必须以”ext_“开头,详细样例请查看extension/basicauth
  4. 将插件加入插件引用配置文件common配置节, 如果仅运行于指定系统,请添加到linuxwindows配置节.
  5. 进行单测或者E2E测试,请参考如何使用单测如何使用E2E测试.
  6. 使用 make lint 检查代码规范。
  7. 提交Pull Request。

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