emqx/apps
Thales Macedo Garitezi 10425eb925 feat(resource): deprecate auto_restart_interval in favor of health_check_interval
See:
https://emqx.atlassian.net/wiki/spaces/P/pages/612368639/open+e5.1+remove+auto+restart+interval+from+buffer+worker+resource+options

Current problem:

In 5.0.x, we have two timer options that control the state changing of buffer worker
resources: auto_restart_interval and health_check_interval.

- auto_restart_interval controls how often the resource attempts to transition from
disconnected to connected.

- health_check_interval controls how often the resource is checked and potentially moved
from connected to disconnected or connecting.

The existence of two independent timers for very similar purposes is confusing to users,
QA and even developers.  Also, an intimately related configuration is request_timeout,
which can interact badly with auto_restart_interval if the latter is poorly configured:
requests may always expire if request_timeout < auto_restart_interval and if the resource
enters the disconnected state.  For health_check_interval, we attempt to derive a sane
default that gives requests a chance to retry (if request timeout is finite, then the
resource retries requests with a period of min(health_check_interval, request_timeout /
3).

Another problem with the separate auto_restart_interval is that its default value (60 s)
is too high when compared to the default request timeout and health check, leading to the
problems described above if not tuned.

Proposed solution:

We propose to drop auto_restart_interval in favor of health_check_interval, which will be
used for both disconnected -> connected and connected -> {disconnected, connecting}
transition checks.  With that, the resource will attempt to reconnect at the same interval
as the health check, which currently is 15 s.

Also, as two smaller changes to accompany this one:

- Increase the default request_timeout from 15 s to 45 s.
- Rename request_timeout to request_ttl.
2023-06-01 11:20:06 -03:00
..
emqx Merge pull request #10890 from thalesmg/test-flakiness-20230530-e 2023-05-31 16:07:18 -03:00
emqx_authn fix: only report enable authn/authz in telemetry 2023-05-29 14:17:46 +08:00
emqx_authz Merge pull request #10833 from zhongwencool/telemtry-report 2023-05-29 15:14:36 +08:00
emqx_auto_subscribe test: add test for delayed update 2023-05-31 08:17:29 +08:00
emqx_bridge feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_cassandra feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_clickhouse feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_dynamo feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_gcp_pubsub test(gcp_pubsub): attempt to fix flakiness 2023-05-31 10:19:55 -03:00
emqx_bridge_hstreamdb chore: hide bad links in README files 2023-04-23 11:27:59 +08:00
emqx_bridge_influxdb docs: fix invalid links 2023-05-15 11:18:09 +08:00
emqx_bridge_iotdb feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_kafka test(kafka_consumer): reduce flakiness 2023-05-31 10:19:55 -03:00
emqx_bridge_matrix chore: update changes && bump app versions 2023-05-10 17:23:26 +08:00
emqx_bridge_mongodb docs: fix invalid links 2023-05-15 11:18:09 +08:00
emqx_bridge_mqtt feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_mysql docs: fix invalid links 2023-05-15 11:18:09 +08:00
emqx_bridge_opents feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_oracle feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_pgsql feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_pulsar feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_rabbitmq feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_redis docs: fix invalid links 2023-05-15 11:18:09 +08:00
emqx_bridge_rocketmq feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_sqlserver feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_tdengine feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_bridge_timescale chore: update changes && bump app versions 2023-05-10 17:23:26 +08:00
emqx_conf test: add test for emqx_conf:update([log], Conf) 2023-05-31 07:54:55 +08:00
emqx_connector chore: make dialyzer && test happy 2023-06-01 11:15:51 +08:00
emqx_ctl fix: avoid error 500 when node is re-joining cluster 2023-05-25 13:32:28 -03:00
emqx_dashboard test(dashboard): fix inter-suite test flakiness 2023-05-31 19:09:37 +03:00
emqx_enterprise chore: bump app versions 2023-05-30 08:08:29 +02:00
emqx_eviction_agent Merge remote-tracking branch 'emqx/release-50' into merge-release-50 2023-05-24 19:34:12 +08:00
emqx_exhook test: allow inter-test case config dependency for emqx_exhook_SUITE 2023-05-01 20:15:47 +02:00
emqx_ft chore: bump app vsn, core app 'emqx' is now at 5.1 2023-05-30 11:32:18 +02:00
emqx_gateway Merge pull request #10871 from HJianBo/fix-coap-bugs 2023-05-31 22:36:15 +08:00
emqx_gateway_coap fix(coap): to better handle coap requests in connection mode 2023-05-30 21:48:57 +08:00
emqx_gateway_exproto feat(exproto): add raw_publish function 2023-05-31 13:44:51 +08:00
emqx_gateway_lwm2m fix: byebye jsx 2023-04-14 13:41:34 +02:00
emqx_gateway_mqttsn test(mqttsn): add test cases 2023-05-18 16:16:09 +08:00
emqx_gateway_stomp refactor: rename emqx_misc to emqx_utils 2023-04-14 13:41:27 +02:00
emqx_machine fix: override emqx_license is unnecessary 2023-05-29 19:10:31 +08:00
emqx_management Merge pull request #10903 from fix/ci-flaky-dashboard 2023-05-31 20:28:39 +03:00
emqx_modules test: add test for delayed update 2023-05-31 08:17:29 +08:00
emqx_node_rebalance chore: remove unused conf comments 2023-05-22 14:01:49 +08:00
emqx_oracle fix(oracle): replace 'database' field by 'service name' 2023-05-24 15:40:56 -03:00
emqx_plugin_libs chore: update apps version && changes 2023-05-18 17:34:28 +08:00
emqx_plugins Merge pull request #10451 from HJianBo/update-conf-plugin-readme 2023-04-25 14:43:55 +08:00
emqx_prometheus docs: make sure there is a summary for all API endpoints 2023-05-17 09:58:56 +02:00
emqx_psk refactor: relocate i18n files for apps/emqx 2023-04-03 13:12:24 +02:00
emqx_resource feat(resource): deprecate auto_restart_interval in favor of health_check_interval 2023-06-01 11:20:06 -03:00
emqx_retainer chore: update retainer app version && changes 2023-05-31 09:44:25 +08:00
emqx_rule_engine fix(ruleeng): parse bridge id on create / update 2023-05-31 17:08:42 +03:00
emqx_s3 chore: bump app versions 2023-05-26 16:05:37 +02:00
emqx_slow_subs chore: update apps/emqx_slow_subs/README.md 2023-04-19 09:51:19 +08:00
emqx_telemetry test(telemetry): fix flaky test 2023-05-29 18:09:35 -03:00
emqx_utils fix: redact api request to hide auth token 2023-05-29 11:02:02 +08:00