Commit Graph

390 Commits

Author SHA1 Message Date
DDDHuang 34ec0cc04b fix: logger formatter 2022-05-26 12:57:53 +08:00
JianBo He c8c52dfc39 Merge remote-tracking branch 'ce/main-v4.3' into merge-main-v4.3-into-v4.4 2022-04-14 11:56:35 +08:00
JianBo He 7b14e822a6 fix(shared-sub): convert group name to binary 2022-04-14 10:59:29 +08:00
JianBo He fab71ddcfe Merge tag 'v4.3.14-rc.2' into merge-main-v4.3-into-v4.4 2022-04-13 09:13:52 +08:00
Georgy Sychev 8c553da72b fix(shared): group strategies are binaries now 2022-04-13 09:09:54 +08:00
JianBo He 7461484b9e Merge tag 'v4.3.14-rc.1' into merge-main-v4.3-into-v4.4
Version v4.3.14-rc.1
2022-04-08 19:29:30 +08:00
Georgy Sychev 0c74227995 feat(shared_sub): per group strategies and local strategy
Adds backward compatible per group strategy for shared subscriptions
Adds local shared subscription strategy
2022-04-07 13:40:02 +04:00
Zaiming (Stone) Shi f3a7c75871 Merge remote-tracking branch 'origin/main-v4.3' into dev/v4.4.3 2022-04-06 13:24:37 +02:00
JianBo He 759b1dacdf chore(schema): check tls_version if psk_cipher configured 2022-04-06 10:43:27 +08:00
JianBo He d2684a25c8 chore(psk): update psk_cipher default ciphers 2022-04-06 10:43:27 +08:00
Zaiming (Stone) Shi 48a65981af Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-03-31 09:28:58 +02:00
zhongwencool 517f8a7c9b chore: add validator schema function 2022-03-29 14:53:03 +08:00
Zaiming (Stone) Shi c157a16907 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-02-26 01:05:06 +01:00
Zaiming (Stone) Shi 43c900bb5a chore: rename more descriptive EQM X to EMQX 2022-02-22 11:16:38 +01:00
zhongwencool 59ff3090f4
Merge pull request #6935 from zhongwencool/sync-v4.3-to-v4.4
Sync v4.3 to v4.4
2022-02-08 14:53:07 +08:00
zhongwencool 617402ed09 Merge branch 'main-v4.4' into sync-v4.3-to-v4.4 2022-02-08 09:59:21 +08:00
k32 ed98773ca7 fix(emqx_schema): Allow to set gen_rpc.default_client_driver 2022-02-02 12:42:26 +01:00
zhongwencool 579905b92a fix(watermark): hight watermark should greater than low watermark. 2022-01-28 17:58:11 +08:00
lafirest 44fe882f14 refactor(emqx_slow_subs): refactor slow subs 2022-01-19 09:50:31 +08:00
zhongwencool 2c2145dfe6 Merge branch 'main-v4.3' into sync-from-4.3 2021-12-07 23:20:01 +08:00
lafirest 48f8c735ea feat(emqx_slow_subs): add dyanamic threshold 2021-12-03 18:11:07 +08:00
lafirest fef3fc27cb
refactor(emqx_slow_subs): refactor use moving average (#6287)
* refactor(emqx_slow_subs): refactor use moving average

* fix(emqx_slow_subs): change elapsed to latency, and fix some error

* fix(emqx_slow_subs): fix emqx_mgmt_api.erl indent

* fix(emqx_slow_subs): change api name

* fix(emqx_slow_subs): fix and improve some code

* fix(emqx_slow_subs): move clienid filed from latency_stats to session
2021-11-26 10:42:15 +08:00
JimMoen 289415b5aa fix(conf): change `max_topic_levels` default configuration 2021-11-25 09:52:12 +08:00
k32 32086f97ec
Merge branch 'main-v4.4' into gen-rpc-ssl-4 2021-11-15 13:47:54 +01:00
k32 61c68ddb35 feat(rpc): Bump gen_rpc version 2021-11-15 10:27:08 +01:00
zhanghongtong f46084438b chore(cluster): add new type for dns auto cluster
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-11-15 10:46:52 +08:00
lafirest a4a7cac647
fix(eqmx_st_statistics): add ignore_before_create in config (#6140)
1. allows not to process the message before the session is created
to solve the problem caused by clean session = false
2. fix some elvis errors
2021-11-12 14:00:48 +08:00
zhongwencool 835ad52498
feat(trace): http api for trace (#6052)
* feat(trace): add http trace API

* feat: sub/unsub trace topic

* chore(trace): stream log use _page and _limit

* fix: elvis warning

* fix: mod_trace test failed

* fix: http api meta rename _page/_limit to _page/_limit

* fix: clientid string not working

* fix: add emqx_mod_trace to module

* fix(trace): fixed by review suggestions
2021-11-11 14:54:40 +08:00
lafirest 1dd18aa07a
fix(emqx_st_statistics): change emqx_st_statistics implementation fro… (#6115)
* fix(emqx_st_statistics): change emqx_st_statistics implementation from plugin to module
2021-11-11 10:16:06 +08:00
lafirest fae815b35c
Feat/slow topic api (#6101)
* feat(emqx_st_statistics): add api
2021-11-10 11:08:06 +08:00
k32 791caba2ed fix(broker): Fix out-of-order message delivery in a cluster
Fixes: #4658
2021-10-29 10:47:56 +02:00
Shawn d2d42ed33e fix(logger): change default value of log.max_depth to 100
The value 20 is too small to inspect some error messages, especially
when it contains stack traces.
2021-08-13 09:46:49 +08:00
Zaiming (Stone) Shi 69ef5cbdc3
Merge pull request #4979 from zmstone/chore-config-rpc-connections-default-to-one
chore(conf): change default number of gen_rpc connections to 1
2021-06-11 09:58:50 +02:00
Turtle 8eebdd5cdb chore: remove lager schema info 2021-06-11 09:48:25 +08:00
Zaiming Shi 1f57968c9b chore(conf): change default number of gen_rpc connections to 1 2021-06-10 19:59:10 +02:00
JianBo He 7b43a23734 fix(schema): fix locking strategy typos 2021-05-29 11:32:29 +08:00
k32 7f2bb9b4ee fix(emqx): Add new shared_subscription_strategy atoms to the schema
Fixes: #4808
2021-05-14 09:47:06 +02:00
Zaiming Shi 7afd4940e7 chore(config): do not expose manual rpc peer port config
when using `manual`, all nodes in the cluster should agree
to the same port number, so there is no need to make peer
port number for clients.
2021-05-10 14:26:14 +02:00
Zaiming Shi 94c8add314 chore(config): default log.single_line=true 2021-05-06 11:03:02 +02:00
Zaiming Shi 81da075b9b chore(config): rename log.use_json_formatter to log.formatter 2021-05-06 11:03:02 +02:00
Zaiming Shi 6b0487d69d feat(logger): merge metadata to log data 2021-05-06 11:03:02 +02:00
Zaiming Shi 79181072e2 feat(logger): add formatter emqx_logger_jsonfmt 2021-05-06 11:03:02 +02:00
Zaiming Shi c4f070c9c6 feat: make log depth configurable 2021-05-06 11:03:02 +02:00
Zaiming Shi 0f30bdadbb feat(logging): make supervisor progress configurable
by default, when primary log level is set to debug or info
application controller prints supervisor progress info.

this new config make use of logger's built-in filters
for progress report
2021-05-03 21:13:36 +02:00
William Yang e122ac5716 perf(broker): speedup trans when broker has a big mqueue 2021-04-29 08:52:42 +02:00
William Yang e7fc75fdf2 perf(broker): Optimization for handling bursty traffic
intro. new lock type: 'spawn' of broker.perf.route_lock_type

mnesia get lock calls are not optimized for selective receive.

hence taking locks would be very expensive while there are tones of
messages in the brokers message queue.

This optimization run the transaction in a separate process to utilize
the selective receive optimization of the compiler.
2021-04-28 15:39:46 +02:00
Zaiming Shi 4bdcdfb9b9 chore(config): Add new configs to emqx.conf 2021-04-28 15:19:53 +02:00
Zaiming Shi bc6a87946c refactor(emqx_trie): store only prefixes
This commit refactors emqx_trie implementation
with mainly two changes

1. Deleted the edge table.

   In the old implementation, trie consist of nodes and edges.
   e.g. for topic 'a/b/+/d', node 'a' with edge 'b'
   points to node 'a/b' and so on.

   However, edges can be computed at runtime,
   so there is no need to store them in a table.
2021-04-26 14:18:40 +02:00
Zaiming Shi 6be28cecab chore(logging): default to multi-line logging 2021-04-26 11:11:27 +02:00
William Yang 907502fed0
Merge pull request #4645 from qzhuyan/dev/william/fix-issue-2985-c3
fix: issue 2985 attempt 3
2021-04-25 12:39:52 +02:00
Zaiming Shi 87a653470e fix(logging): log sasl to tty when console or foreground 2021-04-23 17:12:02 +02:00
William Yang 9b13bab2c9 perf: new perf toggle broker.perf.route_lock_type 2021-04-23 13:51:42 +02:00
Zaiming Shi fd69969014 refactor(logging): Log to single line 2021-04-23 06:54:10 +02:00
zhanghongtong ea4a587f6d chore(listeners): delete the port override by the env 2021-04-15 21:50:14 +08:00
zhanghongtong 446a69c814 fix(ws connection): fix peer_cert_as_username error when ws connect 2021-04-15 09:06:27 +08:00
z8674558 a48e7df4f5 feat(emqx_ws_connection): check http header to know real IP/port 2021-04-14 06:45:39 +00:00
Shawn f902d880c1 fix(emqx): rename wont_clear_alarm_in to min_alarm_sustain_duration 2021-04-10 12:17:04 +08:00
Shawn df0e905754 refactor(emqx): the congestion alarm 2021-04-10 12:17:04 +08:00
z8674558 9db5452b6c refactor(emqx.schema): use override_env to support alternative env 2021-04-05 17:04:01 +09:00
Zaiming Shi 6c77fa1bf7 fix(emqx_channel): Receive Maximum spec compliance
According to MQTT 5.0 specification
If the Receive Maximum value is absent then its value defaults to
65,535.
2021-03-29 09:42:07 +02:00
Zaiming Shi b10a60cddb fix(conninfo): Ensure receive_maximum do not exceed limit 2021-03-29 09:42:07 +02:00
Zaiming Shi e862ff6b20 chore(config): validate max_inflight range 2021-03-29 09:42:07 +02:00
William Yang 49bdcf1332
Merge pull request #4432 from qzhuyan/fix/emqx-4426-wss-listener-rendering
fix(cuttlefish-schema): parse IP addr for SSL listeners.
2021-03-24 18:16:30 +01:00
William Yang 8f6f649703 fix(cuttlefish-schema): parse IP addr for SSL listeners.
Convert IP addr str to tuple to please ranch.

Other types of listeners seem me to be happy with the tuple format as well.

Closes: #4426
2021-03-24 16:29:03 +01:00
Zaiming Shi a4b30ea77c feat(emqx): Add backtrace_depth configuration 2021-03-23 21:30:49 +01:00
zhanghongtong 2232bca150 chore(config): update enum for config item
The tcp listener's peer_cert_as_clientid and peer_cert_as_username can only be set to cn
2021-03-17 16:30:34 +08:00
zhanghongtong 237603cee6 revert: fix(config): delete peer_cert_as_username and peer_cert_as_clientid in tcp listener
This reverts commit: 4bf0ad1baf
2021-03-17 16:30:34 +08:00
zhanghongtong 4bf0ad1baf fix(config): delete peer_cert_as_username and peer_cert_as_clientid in tcp listener 2021-03-16 19:32:17 +08:00
Zaiming Shi 6b2949e2c1 chore(config): Change default log_to config
By default log to file.
When start from console or forgreground, only log to console.
Only log to file for package builds.
2021-03-02 14:05:04 +01:00
Zaiming Shi 3dfa9f45c4
Merge pull request #4183 from zmstone/merge-e4.2.4-to-dev-4.3.0
Merge e4.2.4 to dev 4.3.0
2021-02-19 10:26:47 +01:00
Zaiming Shi 98b319a0c0
Merge pull request #4190 from zmstone/refactor-assing-names-to-listeners
feat(listeners): Add identifier to listeners
2021-02-19 07:50:27 +01:00
Benjamin Große 28f9b4d519 feat(peer_cert_as_clientid): peer_cert_as_clientid = cn | dn | crt | pem | md5
pem is base64 encoded instead of binary crt

peer_cert_as_username=crt breaks exhook proto utf8 parsing of username

crt cannot be used in a topic name due to being invalid utf8
pem cannot be used in a topic name due to having slashes

peer_cert_as_clientid = md5 allows to e.g. subscribe to "t/%c" with ACL

existing peer_cert_as_username combinations are unaffected.
2021-02-19 10:53:11 +08:00
z8674558 74b7ea34d9 feat(bin): let cuttlefish read env var 2021-02-19 01:09:06 +09:00
Zaiming Shi 153977609e feat(listeners): Add identifier to listeners
Listeners are internally identifiered by the listen-on tuple
which is not UI friendly when we have to find a listener by this
'signature'.

The listeners are actually named in configs, but the names are
discarded in the parsing functions.

This commit is to keep the name and provide an API to find
listener by name (identifier).
2021-02-14 18:12:40 +01:00
Zaiming Shi 9b82112b7c Merge remote-tracking branch 'origin/dev/e4.3.0' into merge-e4.2.4-to-dev-4.3.0 2021-02-13 11:10:08 +01:00
Zaiming Shi 507759b9f1 Revert "refactor(emqx_modules): Move modules config to app dir"
This reverts commit 9cae8784c0.
Because the reverted change broke compatibility with 4.2.x
configuration.
2021-02-11 16:44:12 +01:00
Zaiming Shi 9cae8784c0 refactor(emqx_modules): Move modules config to app dir 2021-02-10 00:02:52 +01:00
Zaiming Shi 5ebf94a50a chore(config): One config
emqx.conf was split into small files for enterprise
which leads to merge difficulties

This commit merges back config into the same file.
2021-02-09 21:34:46 +01:00
tigercl 5878950dc3
feat(websocket): support for checking subprotocols (#4099) 2021-01-28 20:42:57 +08:00
ayodele.akingbule 5794a708ed feat(emqx_ws_connection): Prevent EMQX from CSWSH Cross-Site Web-Socket Hijack 2021-01-15 14:28:22 +01:00
JianBo He 17e0409c09 feat(ssl): supports configuration of keyfile password 2020-12-14 11:24:07 +08:00
Shawn d00ea48752 feature(tcp): alarm when tcp connection congested 2020-12-07 14:35:38 +08:00
zhanghongtong ef19e8a08b feat(listener): add depth for ssl listener 2020-12-05 17:01:24 +08:00
zhanghongtong a3cdae3b42 feat(listener): add depth for ssl listener 2020-11-30 18:51:02 +08:00
Shawn cc69225b6d feature(tcp): alarm when tcp connection congested (#3818) 2020-11-10 23:36:11 +08:00
turtled eb4b9936dc fix(modules): fix conflicts 2020-10-11 11:12:39 +08:00
terry-xiaoyu 7b98f62f7a fix(config): enable force_shutdown_policy by default 2020-09-30 11:36:30 +08:00
turtled 048e510dde fix(force-shutdown-policy): default to enable force_shutdown_policy 2020-09-30 08:35:24 +08:00
turtleDeng edcbdcce87 improve: module_acl_internal load/unload api (#3706) 2020-09-05 17:23:22 +08:00
JianBo He f6b35d63f2 improve: rename quota option name 2020-09-05 17:23:22 +08:00
terry-xiaoyu 2b603bfd11 feature(gen_rpc): support a stateless port discovery 2020-08-28 17:10:26 +08:00
zhouzb ec12acc4ef feature(mqtt piggyback): transporting mutli MQTT packets at once or single 2020-08-22 15:27:11 +08:00
Rory Z f47e10e08a feature(emqx_mod_rewrite): separate rewrite rules for pub and sub (#3676) 2020-08-22 15:27:11 +08:00
zhouzb dbeabf3de0 refactor(telemetry): remove telemetry code from emqx core 2020-08-22 15:27:11 +08:00
tigercl e37a70509b feature(telemetry): support for collecting telemetry data and disable it by default (#3653) 2020-08-14 16:58:08 +08:00
JianBo He 98faa698f3 feature(quota): add quota confs to limit the number of message forwards 2020-08-14 16:58:08 +08:00
wangwenhai aca3053a7d fix(ipv6): fix wss ipv6 problem 2020-08-14 16:58:08 +08:00
zhouzb 1ba4743213 refactor(alarm): new data structure and support regular cleaning of deactivated alarms 2020-07-31 18:07:20 +08:00
zhouzb 43b49edd28 feature(alarm): new design for alarm 2020-07-31 18:07:20 +08:00
JianBo He 83a2af812f feat(ratelimit): refactor ratelimit 2020-07-31 18:07:20 +08:00