Commit Graph

253 Commits

Author SHA1 Message Date
JimMoen
62ecf6f545 fix(resource): keep auto_retry in disconnected state
Automatic retries should be maintained even in `disconnected` state without any state transition.
2022-08-22 02:52:06 +08:00
JimMoen
7c4ea38c06 fix(resource): make some resource opts internal
Resource options `start_after_created` and `start_timeout` are internal opts.
Not provided to users anymore.
2022-08-22 02:22:57 +08:00
JimMoen
06363e63d9 fix(influxdb): connector use a fallbacke pool_size for influxdb client 2022-08-19 15:54:19 +08:00
Shawn
9e35032d78 fix: make resume_interval defaults to health_check_interval 2022-08-16 10:09:02 +08:00
Shawn
de3a325953 fix: revert the changes in connector mysql 2022-08-16 09:06:13 +08:00
Xinyu Liu
2898966439
Merge branch 'dev/ee5.0' into resource_opts 2022-08-15 21:43:22 +08:00
Shawn
19d85d485b refactor(resource): add resource_opts level into config structure 2022-08-15 21:40:10 +08:00
Shawn
d1de262f31 fix: inc 'actions.failed' if bridge query failed 2022-08-15 17:21:14 +08:00
Shawn
665ef4142d fix: unify the health check interval 2022-08-15 17:21:14 +08:00
JimMoen
68946f1f6c feat: influxdb support async/batch_async query 2022-08-15 14:02:17 +08:00
JimMoen
594d071c05 feat(influxdb): add async callback 2022-08-12 18:26:47 +08:00
JimMoen
3678673124 fix: schema default value using raw type before convert 2022-08-12 16:38:46 +08:00
Shawn
0cdf4b47f1 feat: add more resource creation opts 2022-08-12 13:47:45 +08:00
JimMoen
3a76a50382 fix: syntax error and compile error 2022-08-11 20:58:43 +08:00
Shawn
2872f0b668 fix(bridges): support create resources with options 2022-08-11 19:11:44 +08:00
JimMoen
0f6c371760 feat(influxdb): influxdb connector add on_batch_query/3 callback 2022-08-11 18:12:41 +08:00
JimMoen
22a4ca311c feat(resource): resource batch/async/queue config schema 2022-08-11 16:59:18 +08:00
Shawn
6203a01320 feat: add inflight window to emqx_resource 2022-08-11 08:36:35 +08:00
Shawn
82550a585a fix: add test cases for query async 2022-08-10 00:45:34 +08:00
Shawn
efd6c56dd9 fix: test cases for batch query sync 2022-08-10 00:45:34 +08:00
Shawn
145ff66a9a fix: issues found by dialyzer and elvis 2022-08-10 00:45:26 +08:00
Shawn
35fe70b887 feat: support aysnc callback to connector modules 2022-08-10 00:34:35 +08:00
Shawn
75adba0781 fix: increase resource metrics using the resource id 2022-08-10 00:34:35 +08:00
Shawn
d3950b9534 fix(resource): make option 'queue_enabled' disabled by default 2022-08-10 00:34:35 +08:00
Shawn
0377d3cf61 fix: update existing testcases for new emqx_resource 2022-08-10 00:34:35 +08:00
Shawn
2fb42e4d37 refactor: create emqx_resource_worker_sup for resource workers 2022-08-10 00:34:35 +08:00
Shawn
0087b7c960 fix: remove the extra file replay.erl 2022-08-10 00:34:35 +08:00
Shawn
d8d8d674e4 feat(resource): start emqx_resource_worker in pools 2022-08-10 00:34:35 +08:00
Shawn
12904d797f feat(resource): first commit for batching/async/caching mechanism 2022-08-10 00:34:35 +08:00
DDDHuang
98b36c4681 fix: hstream db connector , TODO: start apps 2022-07-27 11:38:45 +08:00
JianBo He
a78a389206 chore: using standard log format 2022-07-01 12:06:35 +08:00
Shawn
d6ef2f7502 refactor: graceful recreate resources 2022-06-17 05:29:18 +08:00
Shawn
cc25f92273 feat: add start_after_created option to resource:create/4 2022-06-16 23:34:52 +08:00
Zaiming (Stone) Shi
2065be569e fix(emqx_cluster_rpc): fail fast on stale state
Due to:

* Cluster RPC MFA is not idempotent!
* There is a lack of rollback for callback's side-effects

For instance, when two nodes try to add a cluster-singleton
concurrently, one of them will have to wait for the table lock
then try to catch-up, then try to apply MFA.
The catch-up will have the singleton created, but the initiated
initiated multicall apply will fail causing the commit to rollback,
but not to 'undo' the singleton creation.
Later, the retries will fail indefinitely.
2022-06-12 20:18:48 +02:00
Shawn
b7f27157e5 fix: also alarm resource down when start resource failed 2022-06-01 15:41:55 +08:00
Shawn
88ca25c60c fix(resource): fast return when starting a unavailable resource 2022-06-01 08:24:53 +08:00
Shawn
9f69e3cad6 fix(resource): discard dry_run resource down alarm 2022-06-01 08:24:53 +08:00
Shawn
d37a66e9b8 fix(test): update test cases for emqx_resource:health_check/1 2022-05-31 10:14:37 +08:00
Shawn
1054c364ad refactor(resource): improve health check and alarm it if resource down 2022-05-31 01:40:40 +08:00
EMQ-YangM
b5addf7e05 fix: log all ignore events 2022-05-16 15:08:03 +08:00
EMQ-YangM
bbbfea1b5b fix: ignore all other events 2022-05-16 15:08:03 +08:00
EMQ-YangM
1a1c82932a fix: when connecting health check failed, update status. 2022-05-16 10:47:20 +08:00
Chris
93799e3ac6 refactor: delete now unused emqx_resource modules 2022-05-16 09:54:26 +08:00
Xinyu Liu
c4fd31ae25
Merge pull request #7916 from emqx/EMQX-4204-auto-timer-based-retry-when-in-disconnected-state
feat: add auto_retry for disconnected state in resource manager
2022-05-16 09:34:08 +08:00
JianBo He
3f59650e4b
Merge pull request #7944 from EMQ-YangM/fix_bridge_status
fix: restart resource should not clear metrics
2022-05-16 09:16:12 +08:00
Zaiming (Stone) Shi
c355c40ea8 refactor: call emqx_alarm:ensure_deactivated everywhere 2022-05-13 16:02:55 +02:00
Chris
6574c33797 feat: add auto_retry for disconnected state in resource manager 2022-05-13 11:19:39 +02:00
EMQ-YangM
d5c416736b fix: restart resource should not clear metrics 2022-05-13 16:05:41 +08:00
JimMoen
a5ddc5390f refactor(resource): add resource recreate fun with empty opts 2022-05-12 14:19:56 +08:00
Chris
0b3e30e813 feat: isolate resource manager processes 2022-05-09 13:24:34 +02:00
EMQ-YangM
c52b464b3c fix: check process alive before health check 2022-04-29 17:34:26 +08:00
EMQ-YangM
1bf33f75cc fix: set resource status disconnected 2022-04-29 17:05:12 +08:00
Zaiming (Stone) Shi
4e65322667 refactor: move emqx_plugin_libs_metrics to emqx app
because it can not depend on other apps
2022-04-29 12:41:36 +08:00
DDDHuang
132b37813c refactor: code format emqx_connector emqx_resource 2022-04-28 15:32:47 +08:00
DDDHuang
667da90e52 refactor: resource instance do_create_dry_run 2022-04-28 15:32:41 +08:00
DDDHuang
2a2308bbf8 refactor: resource check & connector status 2022-04-28 15:32:35 +08:00
DDDHuang
a50980c496 fix: disconnected status in auto_reconnect = false 2022-04-28 09:47:36 +08:00
Zaiming (Stone) Shi
02c3f87b31 style: reformat all remaining apps 2022-04-27 15:51:18 +02:00
Shawn
94e24c2621 refactor: move ssl file handling from resources to bridges 2022-04-27 11:59:15 +08:00
Zaiming (Stone) Shi
f42a5b90df Revert "feat: isolate resource manager processes"
This reverts commit 40cca58d4f.
2022-04-26 16:13:38 +02:00
Chris
40cca58d4f feat: isolate resource manager processes 2022-04-26 13:28:29 +02:00
Shawn
19630e9a99 feat: save ssl cert files for data bridges 2022-04-21 09:00:06 +08:00
Shawn
3ce969fd79 refactor: always recreate resources no matter it is connected or not 2022-04-20 11:43:05 +08:00
Shawn
278e9145b0 fix: go to different resource instance when health check 2022-04-19 23:00:34 +08:00
EMQ-YangM
8f06a9ec62 feat: impl resource reset_metrics 2022-04-11 10:25:48 +08:00
EMQ-YangM
9a2d70f98e fix(emqx_resource): remove extra space 2022-03-25 18:26:18 +08:00
EMQ-YangM
6b662d87ba fix(emqx_resource): fix dialyzer warning 2022-03-25 18:15:23 +08:00
EMQ-YangM
bb12378806 fix(emqx_resource_instance): improve the pattern match of the function call_health_check 2022-03-25 17:35:55 +08:00
zhongwencool
3414e0b601 feat(plugin): http api 2022-03-11 15:55:02 +08:00
Shawn
1d023b541f refactor(connnector): rename waiting_connect_complete -> wait_for_resource_ready
Rename the option to wait_for_resource_ready and defaults to 5s.
2022-03-10 10:46:57 +08:00
EMQ-YangM
583624fb8d fix(emqx_authn): fix test suite 2022-03-09 13:53:05 +08:00
EMQ-YangM
db0e9e3358 fix(emqx_resource_instance): fix dialyzer warning 2022-03-08 14:09:39 +08:00
EMQ-YangM
f29877bb6a fix(emqx_resource): remove create_opts async_create 2022-03-08 14:09:39 +08:00
EMQ-YangM
bf57bf717c feat(emqx_resource_instance): add wait_connected Opts 2022-03-08 14:09:14 +08:00
EMQ-YangM
376c9ee261 refactor(emqx_resource): change the status of emqx_resource to 'connected/connecting/disconnecting' 2022-02-25 15:02:41 +08:00
EMQ-YangM
df57daaabb refactor(emqx_resource): improve grouping strategy for emqx_resource_instance 2022-02-11 18:36:55 +08:00
Chris
c2772fdd09 refactor: remove unused/old functions 2022-02-09 10:14:13 +01:00
EMQ-YangM
3b3f3fed76 refactor(emqx_resource_instance): add function create_default_checker 2022-02-07 17:49:51 +08:00
EMQ-YangM
8976e25b7a fix(emqx_resource_instance): create health_check process when create resources synchronously 2022-02-07 17:49:51 +08:00
Zaiming (Stone) Shi
f7703c906e refactor: move plain_check impl to emqx_hocon 2022-01-29 10:16:55 +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
cf1f19258e refactor(emqx_resource): catch only hocon throw exceptions 2022-01-27 00:23:08 +01:00
Zaiming (Stone) Shi
252d7e85d9 refactor: call new hocon apis 2022-01-27 00:23:08 +01:00
EMQ-YangM
cb9f14f658 feat(emqx_resource_health_check): add timeout params to health_check_timeout_checker 2022-01-25 14:54:40 +08:00
EMQ-YangM
11f76db67d fix(emqx_resource_validator): remove unused code 2022-01-24 16:11:32 +08:00
EMQ-YangM
40b73fb199 fix(emqx_resource_api): remove unused module 2022-01-24 16:11:32 +08:00
Yang Miao
b528862c67
Merge branch 'master' into health_check_timeout 2022-01-24 14:48:55 +08:00
EMQ-YangM
8506bed489 fix(emqx_resource_health_check): link heath_check, health_check_timeout_checker 2022-01-24 10:18:18 +08:00
Ilya Averyanov
acc4ad0542 fix(emqx_resource): fix resource leakage 2022-01-21 22:50:30 +03:00
k32
542c9a2b68 refactor(emqx_resource): Decorate RPCs 2022-01-19 22:00:34 +01:00
EMQ-YangM
fd7e0c800a feat(emqx_resource_health_check): add timeout to single health_check 2022-01-19 16:45:56 +08:00
Shawn
67a60e1153 refactor(rule): add more metrics for rule and bridges 2022-01-07 09:34:54 +08:00
Shawn
78aa0abd3d fix(metrics): update the calls to emqx_plugin_libs_metrcis module 2022-01-07 09:34:48 +08:00
Shawn
ab5ad22b1d fix(metrics): update the calls to emqx_plugin_libs_metrcis module 2022-01-07 09:34:41 +08:00
Zaiming (Stone) Shi
63167cea70 chore: update copyright 2022-01-05 20:55:00 +01:00
Zaiming (Stone) Shi
7b478817bd test: test authz against 'single' mogodb 2022-01-04 00:54:09 +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
11736dc1d7 fix(bridge): check health immediately after updated 2022-01-02 22:45:32 +08:00
Shawn
a64b29ff76 fix(resource): re-create the helth checker if already exists 2022-01-02 20:36:30 +08:00
Shawn
e1ab331a30 refactor(resource): support async create mode 2022-01-02 20:20:39 +08:00
Shawn
2277b75b2f refactor(resource): improve the process starting/stopping resource instances 2022-01-02 17:14:02 +08:00
Shawn
95340b7baa
Merge pull request #6564 from EMQ-YangM/beta3
feat(emqx_resource): add health_ckeck process
2022-01-02 12:46:22 +08:00
Shawn
657ecef67b fix(resource): don't crash on resource stopped 2021-12-31 20:57:34 +08:00
EMQ-YangM
c7693246fe feat(emqx_resource): add health_ckeck process, it will periodically perform health checks, and print error logs and generate alarms when the checks fail. 2021-12-30 21:53:51 -08:00
Shawn
ea2d4674df fix(resource): metrics were cleared after updating the resource 2021-12-31 00:03:03 +08:00
Shawn
9d733c2ec5 fix(resource): typos on restart a resource 2021-12-30 23:48:41 +08:00
Shawn
d11cf6ad64 fix(bridges): store connector name and bridge name to config files 2021-12-30 23:48:41 +08:00
Thales Macedo Garitezi
11c169501e
chore(mix): fix app dependencies and reboot apps (emqx_conf)
While declaring `emqx_conf` as an application dependency of
`emqx_resource` worked for releases, it messed up the startup
relationship during tests.  Since only removing `emqx_conf` from the
`applications` key in `emqx_resource` breaks the list of apps that
need to be rebooted on config changes (since `emqx_conf` is not on any
apps dependencies list, it was not being added to the final
topologically sorted list), we now always add it as a vertex to ensure
its presence there.  This (apparently) makes the rebar3 release, the
mix release and test runs behave normally.
2021-12-23 13:48:28 -03: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
a879ec0f3a feat(resource): add option 'force_create' to emqx_resource:create/4 2021-12-20 10:26:27 +08:00
Shawn
a44e18e869 fix(bridge): filter out some extra fields from the request body 2021-12-18 19:19:58 +08:00
Shawn
11e8e0db69 fix(bridge): stop http failed due to econnrefused 2021-12-18 15:33:25 +08:00
Shawn
29ad6d215e feat(resource): add metrics to emqx_resource 2021-11-23 10:04:31 +08:00
Ilya Averyanov
071c2c99e8 refactor(authn resources): add emqx_resource and emqx_authn tests 2021-11-22 21:08:04 +03:00
Shawn
9c93ea0338 feat(connector): add API for /connectors_test 2021-11-22 17:35:33 +08:00
Zaiming Shi
56e2a9741f style: ensure newline at EOF for all files 2021-11-04 14:40:14 +01:00
zhanghongtong
2307bdd868 fix(emqx_resource): fix InstId type error 2021-10-25 13:43:28 +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
zhouzb
ddfc010fdb fix(resource): fix undefined function 2021-09-16 16:53:43 +08:00
JimMoen
deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00
Shawn
304c5613ac refactor(resource): rename the emqx_resource:update/4 to recreate/4 2021-09-15 17:46:42 +08:00
zhongwencool
c1c24af002 fix: dialyzer warning 2021-08-27 10:09:26 +08:00
zhongwencool
73238ed81f feat: emqx_resource support cluster_call 2021-08-26 17:23:39 +08:00
Zaiming Shi
e6232665a3 refactor(emqx): ensure app shutdown and reboot order
make use of application dependency to ensure start order.
also the same dependency top-sorted for shutdown and reboot order
2021-08-04 08:40:03 +02: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
d0e9d4c4d5 fix(emqx_resource): raise error when failed to pick worker 2021-07-29 12:34:16 +02:00
zhanghongtong
178bafbabf chore: rename required function to not_empty
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-07-09 14:18:41 +08:00
zhanghongtong
c10d154dab chore(connector): update schema file
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-07-09 14:18:41 +08:00
Shawn
8978464269
change resource,connectors,data_bridges as normal apps (#5034) 2021-06-19 16:27:21 +08:00
turtleDeng
0515ef6e45
feat(connector): add more connector (#4985) 2021-06-16 11:28:26 +08:00
Shawn
b11afc6997 fix(config): start the top level config handler at emqx bootup 2021-06-16 11:27:34 +08:00
Zaiming Shi
9a78f812e1 fix(emqx_resource): fix schema schema definition 2021-06-15 12:35:08 +02:00
Shawn
1de2f5cb2f fix(emqx_data_bridge): update bridge failed 2021-06-08 21:46:52 +08:00
Shawn
65dc2f2be8 feat(emqx_resource): remove the schema sugar from parse transformed code 2021-06-08 21:46:52 +08:00
Shawn
149a54cef4 fix(emqx_resource): dialyzer issues 2021-06-07 22:08:21 +08:00
Shawn
3c1c457697 fix(emqx_resource): call to undefined function hocon:richmap_to_map/1 2021-06-07 21:54:17 +08:00
Shawn
16c0a5b80a fix(emqx_resource): merge conflict 2021-06-07 21:25:19 +08:00
Shawn
a37b3957e3
Merge branch 'master' into emqx_connector 2021-06-07 21:12:00 +08:00
Shawn
4914b003ac feat(emqx_resource): update the unused APIs 2021-06-07 17:20:34 +08:00
Shawn
2ff92d2880 feat(emqx_data_bridge): add HTTP APIs for data bridge 2021-06-07 16:12:06 +08:00
Shawn
4f451ee862 feat(emqx_resource): delete API generation from parse transfrom 2021-06-05 15:30:21 +08:00
Shawn
f1552f4f4f feat(emqx_data_bridge): create emqx_data_bridge 2021-06-04 23:47:16 +08:00
Shawn
9617b65d52 fix(dialyzer): incorrect function spec 2021-06-03 13:35:57 +08:00
Shawn
03519d7e61 fix(emqx_resource): HTTP APIs for emqx_resource not working 2021-06-03 13:35:57 +08:00
Shawn
3da62e59d6 fix(emqx_connector): the HTTP API for emqx_connector_mysql 2021-06-03 01:24:30 +08:00
Shawn
49c5edce2e fix(emqx_connector): start emqx_connector_mysql failed 2021-06-02 17:28:47 +08:00
Shawn
5d52ce044d feat(emqx_resource): read and save configs from and to file 2021-06-02 01:58:32 +08:00
Shawn
e7ffa07a1a feat(emqx_connector): load connectors from emqx_connector.conf 2021-05-31 22:49:42 +08:00
Shawn
696d4a4e58 fix(emqx_resource): some dialyzer complaints 2021-05-31 12:14:25 +08:00