Explorar o código

feat(edgex): finalize v2 support

Signed-off-by: ngjaying <ngjaying@gmail.com>
ngjaying %!s(int64=3) %!d(string=hai) anos
pai
achega
71c7d9d409

+ 9 - 1
docs/en_US/edgex/edgex_meta.md

@@ -28,6 +28,14 @@ Similar to ``Event``, ``Reading`` also has some metadata (ID, DeviceName... etc)
       - ... // The same as in reading[0]
       - ...
     - reading [n] ...
+  
+### Breaking changes from EdgeX v1
+
+If upgrading from eKuiper versions v1.2.0 and before which integrates with EdgeX v1, there will be some breaking changes of the meta datas due to the refactor of EdgeX v2.
+
+1. The metadata `Pushed`, `Created` and `Modified` for both events and readings are removed. 
+2. The metadata `Device` for both events and readings are renamed to `DeviceName`.
+3. The metadata `Name` of readings is renamed to `ResourceName`.
 
 ## EdgeX data model in eKuiper
 
@@ -41,7 +49,7 @@ Secondly, one message is published to message bus as in below.
 
 - The device name is ``demo`` with green color
 - Reading name ``temperature`` & ``Humidity`` with red color. 
-- It has some ``metadata`` that is not necessary to "visible", but it probably will be used during data analysis, such as ``DeviceName`` field in ``Event`` structure. eKuiper saves these values into message tuple named metadata, and user can get these values during analysis.
+- It has some ``metadata`` that is not necessary to "visible", but it probably will be used during data analysis, such as ``DeviceName`` field in ``Event`` structure. eKuiper saves these values into message tuple named metadata, and user can get these values during analysis. **Notice that, metadata name `DeviceName` was renamed from `Device` in EdgeX v2.**
 
 <img src="bus_data.png" style="zoom:50%;" />
 

+ 7 - 0
docs/en_US/edgex/edgex_rule_engine_tutorial.md

@@ -38,6 +38,13 @@ EdgeX uses [message bus](https://github.com/edgexfoundry/go-mod-messaging) to ex
 
 ![](./arch_light.png)
 
+## Migrate to EdgeX V2
+
+Since eKuiper v1.2.1, we will only support EdgeX v2(Ireland and later). There are several breaking changes to migrate to the new combintion.
+
+1. EdgeX source does not rely on `Core contract Service` anymore. Users can remove the `serviceServer` property in the `edgex.yaml` configuration.
+2. [Breaking changes in metadata](./edgex_meta.md#breaking-changes-from-edgex-v1). For example, metadata `Device` is now renamed to `DeviceName`.
+
 ## Start to use
 
 In out tutorial, we will use [Random Integer Device Service](https://github.com/edgexfoundry/device-random) which is shipped in official EdgeX release, and run rules against the data generated by this sample device service.

+ 9 - 1
docs/zh_CN/edgex/edgex_meta.md

@@ -29,6 +29,14 @@
       - ...
     - reading [n] ...
 
+### 突破性变化
+
+由于 EdgeX v2 重构了消息元数据,从 eKuiper v1.2.0 之前的版本升级的用户需要注意元数据的突破性变化。
+
+1. ``Event`` 和 ``Reading`` 中移除了元数据 `Pushed`, `Created` 和 `Modified` 。
+2. `Event`` 和 ``Reading`` 中的元数据 `Device` 改名为 `DeviceName` 。
+3. `Reading`` 中的元数据 `Name` 改名为 `ResourceName` 。
+
 ## eKuiper 中的 EdgeX 数据模型
 
 那么在 eKuiper 中, EdgeX 数据是如何被管理的?让我们来看个例子。
@@ -41,7 +49,7 @@
 
 - Device name 为 ``demo``,以绿色高亮标示
 - Reading 名称为 ``temperature`` & ``Humidity`` ,用红色高亮标示
-- 这里有些 ``元数据`` 是没有必要「可见」的,但是这些值在分析的时候可能会被用到,例如``Event`` 结构体中的 ``DeviceName`` 字段。eKuiper 将这些值保存在 eKuiper 消息中的名为 metadata 的字段中,用户在分析阶段可以获取到这些值。
+- 这里有些 ``元数据`` 是没有必要「可见」的,但是这些值在分析的时候可能会被用到,例如``Event`` 结构体中的 ``DeviceName`` 字段。eKuiper 将这些值保存在 eKuiper 消息中的名为 metadata 的字段中,用户在分析阶段可以获取到这些值。**需要注意的是, EdgeX v2 中元数据 `Device` 已重命名为 `DeviceName` 。**
 
 <img src="bus_data.png" style="zoom:50%;" />
 

+ 7 - 0
docs/zh_CN/edgex/edgex_rule_engine_tutorial.md

@@ -38,6 +38,13 @@
 
 ![](./arch_light.png)
 
+## 迁移到 EdgeX V2
+
+eKuiper v1.2.1 之后的版本将仅支持 EdgeX v2 ( Ireland 及之后的版本 ),并引入以下突破性变化。
+
+1. EdgeX 源不再依赖 `Core contract Service` 。用户可以从配置文件 `edgex.yaml` 中移除属性 `serviceServer` 的相关配置。
+2. [元数据中的突破性变化](./edgex_meta.md#突破性变化)。例如,元数据 `Device` 重命名为 `DeviceName` 。
+
 ## 运行 EdgeX Docker 实例
 
 打开 [EdgeX compose 项目](https://github.com/edgexfoundry/edgex-compose),并且下载 Ireland 版本的 Docker compose file,然后启动所有的 EdgeX 容器。

+ 2 - 2
extensions.mod

@@ -6,8 +6,8 @@ require (
     github.com/benbjohnson/clock v1.0.0
     github.com/buger/jsonparser v0.0.0-20191004114745-ee4c978eae7e
     github.com/eclipse/paho.mqtt.golang v1.3.5
-    github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100
-    github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16
+    github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0
+    github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1
     github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect
     github.com/gdexlab/go-render v1.0.1
     github.com/go-yaml/yaml v2.1.0+incompatible

+ 3 - 0
extensions.sum

@@ -29,8 +29,11 @@ github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7j
 github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
 github.com/edgexfoundry/go-mod-core-contracts v0.1.80/go.mod h1:QcFaPjN3PIadXlL4hZHmydwCDR+yt7T9BycQCimHvYE=
 github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
+github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
 github.com/edgexfoundry/go-mod-messaging v0.1.30/go.mod h1:5/82RY1fkf7yRU+Gxvuk/4jbKXPMOuRTDfkFTJxlF3Y=
 github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
+github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0/go.mod h1:GNUQrvyN0gJd8C5d/7q7LcRjJYZqrceYj6/OmXI33O0=
+github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
 github.com/emqx/kuiper v0.0.0-20210528134227-7e6a6a028a6f/go.mod h1:Cv3+JK88Uv8CVKNQyRLKaFoZz9pPdhuDTZ2nSz/UiOU=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=

+ 3 - 3
go.mod

@@ -6,8 +6,8 @@ require (
 	github.com/benbjohnson/clock v1.0.0
 	github.com/buger/jsonparser v0.0.0-20191004114745-ee4c978eae7e
 	github.com/eclipse/paho.mqtt.golang v1.3.5
-	github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100
-	github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16
+	github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0
+	github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1
 	github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect
 	github.com/gdexlab/go-render v1.0.1
 	github.com/go-yaml/yaml v2.1.0+incompatible
@@ -39,4 +39,4 @@ require (
 	gopkg.in/ini.v1 v1.62.0
 )
 
-go 1.16
+go 1.16

+ 5 - 4
go.sum

@@ -29,16 +29,17 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/eclipse/paho.mqtt.golang v1.3.5 h1:sWtmgNxYM9P2sP+xEItMozsR3w0cqZFlqnNN1bdl41Y=
 github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
-github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100 h1:UK66Of1F6ynMRMgMLyT9iPYB5x9nRvfGS98Cwdcd5ww=
-github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
-github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16 h1:65fjUzeSGspDVRJ2WEIp4qNJ+NCvHgcBxg8wZd5qbt0=
-github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
+github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0 h1:tvfovdyoHOb392L59hiuA90awiXLX5IR3HOgbcWZkVQ=
+github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
+github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1 h1:8nT3CiPLIft5RmR+vbmXBW9Kbz7TqPZ6C8QuQ6TTn6w=
+github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 h1:Ghm4eQYC0nEPnSJdVkTrXpu9KtoVCSo1hg7mtI7G9KU=
 github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw=
+github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fxamacker/cbor/v2 v2.2.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
 github.com/gdexlab/go-render v1.0.1 h1:rxqB3vo5s4n1kF0ySmoNeSPRYkEsyHgln4jFIQY7v0U=

+ 1 - 1
tools/migration/go.mod

@@ -3,7 +3,7 @@ module github.com/emqx/kuiper/tools/migration
 go 1.16
 
 require (
-	github.com/emqx/kuiper v0.0.0-20210528134227-7e6a6a028a6f
+	github.com/emqx/kuiper v0.0.0
 	github.com/patrickmn/go-cache v2.1.0+incompatible
 )
 

+ 2 - 2
tools/migration/go.sum

@@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
-github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0-dev.100/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
-github.com/edgexfoundry/go-mod-messaging/v2 v2.0.0-dev.16/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
+github.com/edgexfoundry/go-mod-core-contracts/v2 v2.0.0/go.mod h1:pfXURRetgIto0GR0sCjDrfa71hqJ1wxmQWi/mOzWfWU=
+github.com/edgexfoundry/go-mod-messaging/v2 v2.0.1/go.mod h1:bLKWB9yeOHLZoQtHLZlGwz8MjsMJIvHDFce7CcUb4fE=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=