Xuefeng Tan 9e8ce6b72a perf: reduce data duplication (#2050) 1 ano atrás
..
conf 9e8ce6b72a perf: reduce data duplication (#2050) 1 ano atrás
etc 43d60d13e1 feat(tool): for ekuiper kubernetes tool, add options for log pint location (#915) 3 anos atrás
sample 624bfaf834 feat(tool):Can 【tools/kubernetes】support update rule ? #650 (#659) 4 anos atrás
util 0b684afca8 fix: correctly concatenate ipv6 addr (#2034) 1 ano atrás
README-CN.md ea39fef916 doc(tools): add quick start for k8s tool 2 anos atrás
README.md ea39fef916 doc(tools): add quick start for k8s tool 2 anos atrás
go.mod a4234be0cf chore: upgrade go version to 1.20 (#1732) 2 anos atrás
go.sum 2dd81a286a build: add kubernetes tools to workspace 2 anos atrás
main.go c6ad75afac style: sort go imports (#1844) 1 ano atrás

README-CN.md

1 程序说明及其配置:

1.1 程序说明:

本程序用于监控并处理命令文件夹中的文件。当程序发现命令文件夹下存在新创建的文件或已更新的文件时,程序将加载这些文件并执行文件中的命令,之后程序将处理过的文件名记录在命令文件夹同级目录的 .history 文件中。 .history 的数据格式如下:

[
  {
        "name":"sample.json",	//已处理过文件的文件名
        "loadTime":1594362344 //处理文件时的时间戳
    }]

1.2 快速开始

本程序提供了 docker image lfedge/ekuiper-kubernetes-tool。建议作为 eKuiper docker container 的边车部署。

docker run lfedge/ekuiper-kubernetes-tool:$tag

1.3 命令文件格式及含义:

字段 是否必填 类型 释义
commands 必填 array 命令集合
url 必填 string http请求路径
method 必填 string http请求方法
description 选填 string 操作描述
data 创建时必填 json obj 创建内容

1.4 配置文件格式及含义:

port: 9081  //eKuiper 端口
timeout: 500  //执行一条命令超时时间(单位:毫秒)
intervalTime: 60  //隔多久检查一次命令文件夹(单位:秒)
ip: "127.0.0.1" //eKuiper ip地址
consoleLog: true //是否需要打印log到console上
fileLog: true   //是否需要打印log到log文件中,如果需要,log将会打印到logPath指定文件中
logPath: "./log/kubernetes.log" //日志保存路径
commandDir: "./sample/" //命令文件夹路径

1.5 编译程序:

执行 go build -o tools/kubernetes/kubernetes tools/kubernetes/main.go 命令即可生成 kubernetes 程序。

2 流的操作示例

2.1 创建流 stream1

{
    "commands":[
        {
            "url":"/streams",
            "description":"create stream1",
            "method":"post",
            "data":{
                "sql":"create stream stream1 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
            }
        }]
}

2.2 显示流列表

{
    "commands":[
        {
            "url":"/streams",
            "description":"list stream",
            "method":"get"
        }]
}

2.3 获取流 stream1

{
    "commands":[
        {
            "url":"/streams/stream1",
            "description":"get stream1",
            "method":"get"
        }]
}

2.4 删除流 stream1

{
    "commands":[
        {
            "url":"/streams/stream1",
            "description":"del stream1",
            "method":"delete"
        }]
}

3 规则的操作示例

3.1 创建规则 rule1

{
    "commands":[
        {
            "url":"/rules",
            "description":"create rule1",
            "method":"post",
            "data":{
                "id":"rule1",
                "sql":"SELECT * FROM stream1",
                "actions":[
                    {
                        "log":{
                        }
                    }]
            }
        }]
}

3.2 显示规则列表

{
    "commands":[
        {
            "url":"/rules",
            "description":"list rule",
            "method":"get"
        }]
}

3.3 获取规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1",
            "description":"get rule1",
            "method":"get"
        }]
}

3.4 删除规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1",
            "description":"del rule1",
            "method":"delete"
        }]
}

3.5 停止规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1/stop",
            "description":"stop rule1",
            "method":"post"
        }]
}

3.6 启动规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1/start",
            "description":"start rule1",
            "method":"post"
        }]
}

3.7 重启规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1/restart",
            "description":"restart rule1",
            "method":"post"
        }]
}

3.8 替换并重启规则 rule1

{
    "commands":[
        {
            "url":"/rules/rule1",
            "description":"update rule1",
            "method":"put",
            "data":{
                "id":"rule1",
                "sql":"SELECT * FROM stream1",
                "actions":[
                    {
                        "log":{
                        }
                    }]
            }
        }]
}

3.9 显示规则 rule1 的状态

{
    "commands":[
        {
            "url":"/rules/rule1/status",
            "description":"get rule1 status",
            "method":"get"
        }]
}

4 多命令集合示例:

{
    "commands":[
        {
            "url":"/streams",
            "description":"create stream1",
            "method":"post",
            "data":{
                "sql":"create stream stream1 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
            }
        },
        {
            "url":"/streams",
            "description":"create stream2",
            "method":"post",
            "data":{
                "sql":"create stream stream2 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
            }
        },
        {
            "url":"/streams",
            "description":"list stream",
            "method":"get"
        },
        {
            "url":"/streams/stream1",
            "description":"get stream1",
            "method":"get"
        },
        {
            "url":"/streams/stream2",
            "description":"del stream2",
            "method":"delete"
        },
        {
            "url":"/rules",
            "description":"create rule1",
            "method":"post",
            "data":{
                "id":"rule1",
                "sql":"SELECT * FROM stream1",
                "actions":[
                    {
                        "log":{
                        }
                    }]
            }
        },
        {
            "url":"/rules",
            "description":"create rule2",
            "method":"post",
            "data":{
                "id":"rule2",
                "sql":"SELECT * FROM stream1",
                "actions":[
                    {
                        "log":{
                        }
                    }]
            }
        },
        {
            "url":"/rules",
            "description":"list rule",
            "method":"get"
        },
        {
            "url":"/rules/rule1",
            "description":"get rule1",
            "method":"get"
        },
        {
            "url":"/rules/rule2",
            "description":"del rule2",
            "method":"delete"
        },
        {
            "url":"/rules/rule1/stop",
            "description":"stop rule1",
            "method":"post"
        },
        {
            "url":"/rules/rule1/start",
            "description":"start rule1",
            "method":"post"
        },
        {
            "url":"/rules/rule1/restart",
            "description":"restart rule1",
            "method":"post"
        },
        {
            "url":"/rules/rule1/status",
            "description":"get rule1 status",
            "method":"get"
        }]
}