Commit Graph

361 Commits

Author SHA1 Message Date
Thales Macedo Garitezi
1aea6b3ea7
Merge pull request #7522 from thalesmg/telemetry-revamp-part5
feat: add basic rule engine and bridge usage info to telemetry
2022-04-07 10:19:55 -03:00
Thales Macedo Garitezi
8354095e4b
feat(rules): export basic usage info for telemetry 2022-04-06 10:20:23 -03:00
EMQ-YangM
a31891e8e6 feat: enhanced rule engine error handling when json parsing error 2022-04-06 09:56:55 +08:00
Thales Macedo Garitezi
ed7035ec41
style(bridge): please elvis checks 2022-04-05 15:59:50 -03:00
ieQu1
99b3f2f83e docs(schema): Document missing records and fields 2022-04-04 23:58:43 +02:00
ieQu1
d23a88d0a9 docs(schema): Minor improvements to spelling and formatting. 2022-03-30 13:05:56 +02:00
ieQu1
ce450b7da7 docs(schema): Document the records 2022-03-30 11:53:53 +02:00
EMQ-YangM
3b43cca5bf fix: use masp:get/3 to avoid crash after match failure 2022-03-29 18:51:10 +08:00
EMQ-YangM
ccc134d061 fix(emqx_rule_api_schema): add rule events schema 2022-03-29 14:03:15 +08:00
EMQ-YangM
4791c64b73 feat: add rule event 'client.check_authz_complete' 2022-03-29 11:24:36 +08:00
EMQ-YangM
65164fb046 feat: add rule event 'client.connack' 2022-03-28 11:32:07 +08:00
JianBo He
83e16a5bc5
Merge pull request #7343 from HJianBo/fix-gw-bugs 2022-03-22 17:49:02 +08:00
EMQ-YangM
6cff53ad67 fix(rule): replace sql crlf with spaces
get around the hocon bug: error handling escape character \n
2022-03-21 19:26:06 +08:00
JianBo He
6da4592bb0 chore: fix elivs warnings 2022-03-21 18:52:41 +08:00
JianBo He
5682dcb72e fix(gw): enrich conninfo for coap&lwm2m 2022-03-21 18:17:24 +08:00
JianBo He
edb1460b56 chore(rule-engine): more safe generate even_msg content 2022-03-21 18:17:24 +08:00
Shawn
50ee6ad2e2 fix(rule): update rules without reset the metrics 2022-03-21 15:06:34 +08:00
Shawn
a892ff9006 fix(dialyzer): update the specs for the rule() 2022-03-16 10:13:16 +08:00
Shawn
93c5fa60b4 fix(rules): store rule configs to cluster config files 2022-03-16 00:39:01 +08:00
Shawn
869dc1a081 fix(rules): ensure create_at unchanged after rule is updated 2022-03-16 00:38:42 +08:00
Shawn
0b4b3a7cf0 fix(dialyzer): some bad type specs 2022-03-11 18:33:08 +08:00
Shawn
590fa1b375 fix(rule): check request body for /rule_test crashes 2022-03-11 18:13:12 +08:00
Shawn
f924b9389d fix(rule): add swagger schema for events from bridge sources 2022-03-11 14:13:14 +08:00
Shawn
5ca0d4f856 fix(rule): rename the eventname of bridge sources to $bridges/mqtt:* 2022-03-10 23:03:35 +08:00
Shawn
3ca3470844 fix(rule_events): add descs for test columns 2022-03-10 22:49:29 +08:00
Shawn
c673e55a47 fix(rule): add SQL test examples for user properties
Porting from v4.4
2022-03-10 16:01:30 +08:00
Shawn
247b14c95f fix(mqtt_bridge): refine the message format from a mqtt bridge source 2022-03-10 15:57:33 +08:00
Zhongwen Deng
db584f79d6 feat: upgrade hocon to 0.25.0 to replace nullable with required. 2022-02-24 22:39:03 +08:00
Zhongwen Deng
574bbafc9b fix(schema): Ensure enum is atom or int. 2022-02-24 15:36:04 +08:00
Zaiming (Stone) Shi
1be3eb1446 chore: rename EMQX Broker to just EMQX 2022-02-19 12:51:34 +01:00
k32
5638bcb92b docs: Fix typos 2022-02-17 23:22:31 +01:00
Zaiming (Stone) Shi
0528262705 chore(app.src): EMQ X -> EMQX in .app.src files 2022-02-16 17:51:45 +01:00
Zaiming (Stone) Shi
b3d9605722 chore(conf): EMQ X -> EMQX in conf files 2022-02-16 17:50:41 +01:00
Zaiming (Stone) Shi
667d66eb1e docs(README): EMQ X -> EMQX 2022-02-15 16:19:26 +01:00
zhongwencool
f5415589e9 chore(schema): use emqx_schema:qos() instead of union integer. 2022-02-11 10:09:59 +08:00
Shawn
e6997dc1ce
Merge pull request #6942 from terry-xiaoyu/hook_delivery_drop
Hook delivery drop
2022-02-09 18:28:56 +08:00
Shawn
b69dca4f08 feat(rule): add testcase for '/delivery_dropped' 2022-02-08 20:37:40 +08:00
Shawn
b2f027bcf7 feat(rule): add 'delivery.dropped' hook for rules 2022-02-08 10:32:25 +08:00
Shawn
261e9929b6 fix(rule): deny POST empty rule ids 2022-02-08 09:57:44 +08:00
Zaiming (Stone) Shi
f7703c906e refactor: move plain_check impl to emqx_hocon 2022-01-29 10:16:55 +01:00
k32
052bd9081d docs(schema): Fix typos in the schema files 2022-01-27 22:39:19 +01:00
Zaiming (Stone) Shi
d6f7ffec3c
Merge pull request #6881 from zmstone/refactor-upgrade-hocon-0.23.0
refactor: upgrade to hocon 0.23.0
2022-01-27 15:48:23 +01:00
Kian-Meng Ang
fc92e4c8bf docs: fix typos 2022-01-27 12:29:38 +01:00
Zaiming (Stone) Shi
252d7e85d9 refactor: call new hocon apis 2022-01-27 00:23:08 +01:00
Zaiming (Stone) Shi
2105d1f22b test: call ct helpers to load config 2022-01-25 11:50:18 +01:00
k32
6e3b05d665 refactor(emqx_plugin): Decorate RPCs 2022-01-18 15:25:34 +01:00
Shawn
8cee9a9e47 fix(rule): compare to null variables should return false 2022-01-17 14:17:49 +08:00
JimMoen
82e3565344 chore: major mode file variable for Emacs 2022-01-13 15:53:47 +08:00
Shawn
2a2a00e0ad fix(rule): remove rules from all nodes in the cluster 2022-01-11 14:44:08 +08:00
Shawn
72d55c8c0d fix(rules): improve the names of the metrics 2022-01-07 09:35:00 +08:00
Shawn
67a60e1153 refactor(rule): add more metrics for rule and bridges 2022-01-07 09:34:54 +08:00
Zaiming (Stone) Shi
9f7b513a3f chore: fix copyright update script to include more files 2022-01-06 08:44:35 +01:00
Zaiming (Stone) Shi
63167cea70 chore: update copyright 2022-01-05 20:55:00 +01:00
Zaiming (Stone) Shi
2898fa76e1 Merge remote-tracking branch 'origin/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-03 11:39:06 +01:00
Shawn
657ecef67b fix(resource): don't crash on resource stopped 2021-12-31 20:57:34 +08:00
Shawn
e299d8d138 fix(rule): rules not triggered after the ingress mqtt bridge received some msg 2021-12-31 15:47:03 +08:00
Shawn
94a5965560 fix(rule): dead lock when update configs for rules 2021-12-31 00:03:03 +08:00
Shawn
a42ab3d9da fix(rule): use emqx_conf:update/3 to make changes to all nodes 2021-12-31 00:03:03 +08:00
zhongwencool
4b6bba11eb feat(trace): struct log for trace 2021-12-29 00:26:54 +08:00
Thales Macedo Garitezi
0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII 2021-12-28 11:28:40 -03:00
zhongwencool
668180388c feat(trace): replace logger_formatter by emqx_trace_formatter 2021-12-27 14:40:40 +08:00
Thales Macedo Garitezi
34d6dbca61
chore(mix): simplify build by using rebar3 for umbrella apps
By treating the apps in the umbrella as dependencies to be managed and
built by rebar3, we can simplify the maintenance of the release, at
the cost of increased build times: using Mix as before, it could track
changed files better than using rebar.  But the complexity and
possibility of discrepancies make it using rebar much more compelling.
2021-12-22 09:40:01 -03:00
Shawn
cd4227b851 fix(rules): don't show the module name 'emqx_rule_outputs' in outputs 2021-12-22 10:26:22 +08:00
Shawn
9b4b3d2e8c fix(rules): make the 'name' field of POST /rules mandatory 2021-12-22 10:26:22 +08:00
Shawn
5f050b149b fix(rules): the schema for unsubscribe is messing from rule_test API 2021-12-22 10:26:22 +08:00
Thales Macedo Garitezi
917575de5a
chore(mix): minimal elixir mix release build
This commit enables a minimal working build of EMQX release using
Mix.  However, to properly start the release, several configuration
steps are still missing.  A `mix_release.sh` script does a few hacks
to get the release built with Mix to start properly, by first assuming
that `make emqx` has been run prior to the release, ran once to
generate the `app.*.config` files, and then it copies that and some
other files to the expected places.

Also, `emqx_telemetry` hangs the start procedure because it thinks
it's in an official release and tries to make a request.  We disable
it temporarily via config just to get a working build for now.
2021-12-21 13:51:22 -03:00
Shawn
a9c9d9d805 fix(rule): rename enabled to enable 2021-12-18 20:28:14 +08:00
Shawn
a44e18e869 fix(bridge): filter out some extra fields from the request body 2021-12-18 19:19:58 +08:00
Shawn
494c08f849 refactor(rule): add name field to request body of POST /rules 2021-12-18 06:34:44 +08:00
Zaiming (Stone) Shi
fcb7c2c70f docs: change <module> to {module} so markdown render will not crash
<module> is treated as an HTML tag
2021-12-12 19:34:29 +01:00
Shawn
affe69afd6 fix(rules): update the test cases for rule APIs 2021-12-07 09:48:47 +08:00
Shawn
416b9f8d7c refactor(rule): generate swagger from hocon schema for /rules 2021-12-07 09:48:47 +08:00
Shawn
24bded99d5 refactor(metrics): rename speed to rate in emqx_plugin_libs_metrics 2021-12-07 09:47:53 +08:00
Shawn
e07fce791f feat(connector): add examples to the swagger doc 2021-12-07 09:47:53 +08:00
Zaiming (Stone) Shi
d9a980c7e1 docs: fix config doc, avoid using <text> in doc body 2021-12-06 08:00:42 +01:00
Ilya Averyanov
ea0fa24ce5 chore(ct): remove verbose output during tests 2021-11-25 18:30:50 +03:00
Shawn
4c149f92c1 feat(bridge): support metrics for bridges 2021-11-23 09:36:10 +08:00
Shawn
a0e81226d7 fix(elvis): improve some code format 2021-11-22 19:10:00 +08:00
Shawn
9c93ea0338 feat(connector): add API for /connectors_test 2021-11-22 17:35:33 +08:00
Shawn
7d64013edd refactor(connector): add connector configs 2021-11-22 17:35:32 +08:00
Zaiming Shi
6edd862dd5 refactor: no more EMQX_ENTERPRISE compile flag
The compile flag was introduced in EQM X 4.3 series
where CE and EE code was diverged large enough which made
non-practicle to determin edition at runtime.

such approach made testing quite challenging as we'll have to
build with different compile flags inorder to run per-edition
test cases

In this commit, we try to retrieve edition info from EMQX's
description text, (put to PT for fast access) at runtime
so we can test ALL editions from a super-set edition (EE).
2021-11-20 20:41:06 +01:00
JimMoen
dcc5ae0642 test: API return code section 2021-11-15 16:30:44 +08:00
JimMoen
b3f9220d02 style: make elvis happy 2021-11-15 16:30:44 +08:00
JimMoen
106aa559e0 fix(api): DELETE success wrongly returned code 200 2021-11-15 16:30:44 +08:00
Zaiming Shi
d1abb30818 ci: fix elvis check 2021-11-04 15:27:10 +01:00
Zaiming Shi
56e2a9741f style: ensure newline at EOF for all files 2021-11-04 14:40:14 +01:00
zhongwencool
d784e63b9f
emqx_conf (#5939)
* feat(emqx_conf): move conf manager for emqx_machine to emqx_conf

* chore(emqx_conf): change emqx:get_config/2 to emqx_conf:get/2

* fix: common test failed

* fix: badmatch by typo wrong key

* fix(emqx_conf): get the wrong core nodes

* fix(emqx_conf): get core node's tnx_id not latest tnx_id

* fix: add ro_transation when copy conf file

* fix: delete debug info

* fix: change ekka_rlog to mria_rlog

* fix: remove cluster_rpc from emqx_machine.

* fix: don't call ekka:start/0 explicitly

* fix: ekka should be start in emqx_machine
2021-10-21 18:08:51 +08:00
k32
ff48322e0c chore(mria): ekka_mnesia:running_nodes -> mria:running_nodes 2021-10-18 22:04:05 +02:00
Tobias Lindahl
aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
Shawn
2e52ab9712 fix(rules): improve some code for emqx_rule_engine 2021-10-14 15:09:37 +08:00
Shawn
dce57a3f92 fix(rules): add description to the config 'ignore_sys_message'
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2021-10-14 15:09:37 +08:00
Shawn
0e7a3f89a9 feat(rules): support output functions in <<"Mod:Func">> format 2021-10-14 15:09:37 +08:00
Shawn
9c7eef5295 feat(rules): update rule_engine configs from APIs 2021-10-14 15:09:37 +08:00
Shawn
c3effca553 fix(rules): load rules from config file failed 2021-10-14 15:09:37 +08:00
Shawn
467805855d fix(rules): load rules from config file failed 2021-10-14 15:09:37 +08:00
Shawn
1ffae5d1b0 refactor(rule_engine): merge code for emqx_rule_registry and emqx_rule_engine 2021-10-14 15:09:37 +08:00
Shawn
b063b6f253 feat(rules): support configure rules in config file 2021-10-14 15:09:37 +08:00
lafirest
3524942766 fix: change all ~s in io format to ~ts
we should use unicode to replace latin1
2021-10-12 15:09:24 +08:00
zhongwencool
44a6f04a45 chore: reorganize shards position 2021-09-30 16:04:30 +08:00
Shawn
a9185f964e
fix(rules): improve specs and logs (#5821)
Co-authored-by: Zaiming Shi <zmstone@gmail.com>
2021-09-27 21:10:48 +02:00
Shawn
e2721c144c feat(bridge): support http bridge 2021-09-27 22:01:18 +08:00
Shawn
69f3cce75d feat(rules): hook on bridges events and query bridges from rules 2021-09-26 23:00:08 +08:00
Shawn
e630e23846 fix(rules): dialyer failed to analysis the emqx_rule_sqlparser:parse/1 2021-09-26 23:00:08 +08:00
Shawn
0d26e50e87 fix(rules): parse outputs failed 2021-09-26 23:00:08 +08:00
Shawn
420ccf0f51 refactor(rules): change republish as an output 2021-09-26 23:00:08 +08:00
Shawn
f33e28af6d fix(rules): update test cases for emqx_rule_engine_SUITE 2021-09-26 23:00:08 +08:00
Shawn
7bc69b129a fix(rules): update test cases for rule metrics 2021-09-26 23:00:08 +08:00
Shawn
d4f20c82e0 feat(rules): support function outputs 2021-09-26 23:00:08 +08:00
Shawn
bd081913b5 refactor(rules): remove emqx_rule_actions 2021-09-26 23:00:08 +08:00
Shawn
af295a9b71 refactor(rules): remove resources and actions 2021-09-26 23:00:08 +08:00
Shawn
b055464f6b refactor(rule): remove CLIs for rules
We will have new CLIs based on HTTP API in the future.
2021-09-26 23:00:08 +08:00
JimMoen
9c95557bfc fix(emqx_types): type spec refs does not exist file. 2021-09-17 19:28:22 +08:00
zhouzb
43ce727632 chore(gen_id): using emqx_misc:gen_id/0, /1 2021-09-16 16:51:46 +08:00
JimMoen
deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00
zhongwencool
86eb6605f1
Merge pull request #5623 from zhongwencool/cluster-call-api
feat(cluster-call): support confirm success after all mfa apply ok
2021-09-13 16:03:47 +08:00
Shawn
d46241fe2f feat(bridges): avoid clientid competition between bridges on different nodes 2021-09-10 14:21:17 +08:00
zhongwencool
0303e593c5 fix: undef function 2021-09-10 13:28:08 +08:00
zhongwencool
5a4428c53d Merge branch 'cluster-call-api' of https://github.com/zhongwencool/emqx into zhongwencool-cluster-call-api 2021-09-10 13:11:13 +08:00
Shawn
135c005467 fix(bridges): do not start any bridge by default 2021-09-10 11:43:03 +08:00
Shawn
eb8822ce41 feat(bridges): start one mqtt bridge worker for each in/out channel 2021-09-10 11:43:03 +08:00
Shawn
1dae970cd3 refactor(rule): move emqx_rule_utils.erl -> emqx_plugin_libs_rule.erl 2021-09-10 11:43:03 +08:00
Zaiming Shi
ec13463f4a refactor(schema): prepare for hocon schema doc generation 2021-09-03 11:02:31 +02:00
zhongwencool
ee2fccac02 fix: don't run mutil cluster-call on one transaction 2021-09-02 14:03:46 +08:00
Zaiming Shi
5165fd6b30 refactor(schema): implement new hocon_schema callbacks 2021-08-30 09:56:03 +08:00
zhongwencool
73238ed81f feat: emqx_resource support cluster_call 2021-08-26 17:23:39 +08:00
zhongwencool
e5129ead6d fix(CI): Error detected: 'Invalid reference to group api in emqx_rule_engine_SUITE:all/0' 2021-08-26 17:17:47 +08:00
DDDHuang
8125ec7d08
feat: topic metrics api (#5520) 2021-08-24 10:52:18 +08:00
k32
9c74fa42a5 chore(rlog): Use the new method of creating shards 2021-08-21 17:47:53 +02:00
Shawn
f3efc89192
refactor(config): replace all ':' with '=' in the *.conf (#5531) 2021-08-19 19:57:42 +08:00
Shawn
e8e95d39ef
refactor(config): move emqx_config:get/get_raw to emqx:get_config/get_raw_config (#5517) 2021-08-18 14:52:57 +08:00
turtleDeng
4dc5772103
chore(rule-metrics): remove hot upgrade code change 2021-08-17 09:15:27 +08:00
Zaiming Shi
b10fb4e95d refactor: unify all io:format calls to use the same macro 2021-08-01 09:36:59 +02:00
Zaiming Shi
5d59ac1f02 refactor(logging): delete log headers from all modules 2021-08-01 09:36:59 +02:00
Turtle
9e97de04c9 chore(plugins): delete emqx_plugins module attributes 2021-07-30 14:32:01 +08:00
Shawn
0704cbc986 refactor(config): change mqtt.session_expiry_interval to ms 2021-07-23 17:06:28 +08:00
DDDHuang
c11a8c6db6 refactor: clients api; status api; adapter minirest v1
The serious influence:

authn:
    api
authz:
    api; api test suit
dashboard:
    all closed
lwm2m:
    api;
modules:
    api(api_topic_metrics, modules_api); test suit(emqx_modules_SUITE)
prometheus:
    api
retainer:
    api; api test suit
rule_engine:
    api: api test suit
telemetry:
    api
2021-07-09 18:09:07 +08:00
k32
73ec8c47cc chore(rule_engine): Add an RLOG shard 2021-06-28 20:29:08 +02:00
Turtle
434beef3ad feat(rule-engine): Update the configuration file to hocon 2021-06-28 14:51:15 +08:00
Turtle
54aeacee14 feat(rule-engine): update the configuration file to hocon 2021-06-28 14:51:15 +08:00
Shawn
8e08e83090 fix(appup): relup for emqx_rule_registry failed 2021-06-28 11:41:53 +08:00
Shawn
c1b2163362 feat(rules): remove stats update from rule_engine_registry (#5029) 2021-06-28 11:41:53 +08:00
Shawn
a610c3d1f3 fix(rule): delete resource failed when searching dependent rules (#4996) 2021-06-28 11:40:51 +08:00
Zaiming Shi
4ee6c82714 test(emqx_rule_engine_SUITE): delegate app start to ct-helper (2.0.0) 2021-06-07 09:09:28 +02:00
z8674558
a9efdaeacd fix(emqx_rule_engine_SUITE): use emqx_ct_helpers:read_schema_configs 2021-06-01 17:06:09 +09:00
z8674558
31cbb7aa97 Merge branch 'master' of github.com:emqx/emqx into merge-master 2021-05-25 12:50:50 +09:00
k32
1e562d4bc6 chore(rule_engine): Don't import alias/1 BIF
Fixes: #4847
2021-05-22 01:40:07 +02:00
Shawn
4cd056cab5
fix(rule_engine): update status to false when refresh resource failed (#4821)
* fix(rule_engine): update status to false when refresh resource failed

* fix(dialyzer): ignore import_modules/1 created fun has no local return

* fix(appup): update appup for rule engine
2021-05-17 17:59:01 +08:00
Zaiming Shi
4577f6653c fix(emqx_rule_engine): add appup 2021-05-14 05:41:00 +09:00
Turtle
a58357cfe3 feat(rule_engine): rule sql add null function 2021-05-14 05:41:00 +09:00
Zaiming Shi
ded494f544 fix(emqx_rule_engine): add appup 2021-05-11 14:25:46 +02:00