除了核心运行时和 REST API ,其他功能都可通过 go build constraints 在编译时打开或者关闭。用户可编译自定义的,仅包含所需功能的二进制包从而减少包的大小,以便能够部署在资源敏感的环境中。
功能 | Build Tag | 描述 |
---|---|---|
核心 | core | eKuiper 的核心运行时。 包括流/表/规则的处理器和 REST API ,配置管理,SQL 解析器,规则运行时等。 |
CLI | rpc | CLI 服务端 |
EdgeX Foundry 整合 | edgex | 内置的 edgeX source, sink 和共享连接支持 |
原生插件 | plugin | 原生插件运行时,REST API和CLI API等 |
Portable 插件 | plugin | Portable 插件运行时,REST API和CLI API等 |
外部服务 | service | 外部服务运行时,REST API和CLI API等 |
UI 元数据API | ui | 元数据的 REST API,通常由 UI 端消费 |
Prometheus 指标 | prometheus | 支持发送指标到 prometheus 中 |
扩展模板函数 | template | 支持除 go 语言默认的模板函数之外的扩展函数,主要来自 sprig |
有模式编解码 | schema | 支持模式注册及有模式的编解码格式,例如 protobuf |
Makefile 里已经提供了三种功能集合:标准,edgeX和核心。标准功能集合包含除了 EdgeX 之外的所有功能。edgeX 功能集合包含了所有的功能;而核心功能集合近包含最小的核心功能。可以通过以下命令,分别编译这三种功能集合:
# 标准
make
# EdgeX
make build_with_edgex
# 核心
make build_core
功能选择通常应用在资源受限的目标环境中。而该环境一般不太适合运行 docker 容易。因此,我们仅提供包含标准及 edgeX 功能集合的 docker 镜像。
若需要自定义功能选择,用户需要自行编译源码。其语法为:
go build --tags "<FEATURE>"
例如,编译带有原生插件功能的核心包,编译命令为:
go build --tags "core plugin"
建议用户以默认 Makefile 为模板,在里面更新编译命令,使其选择所需的 tags ,然后采用 make 命令进行编译。