Commit Graph

199 Commits

Author SHA1 Message Date
DDDHuang 2eae1088ac fix(metrics): client metrics key name 2022-01-25 17:11:22 +08:00
lafirest 954e85bb73 fix(emqx_slow_subs): fix qos2 pattern matching error 2022-01-24 17:03:37 +08:00
lafirest 46f86204c0 fix(emqx_slow_subs): add ClientInfo into the args of the delivery.completed hook 2022-01-19 14:02:30 +08:00
lafirest 6414f7e55a fix(emqx_slow_subs): add compatibility for old code 2022-01-19 09:50:31 +08:00
lafirest 696acbfc5c fix(emqx_slow_subs): change on_publish_completed to on_delivery_completed 2022-01-19 09:50:31 +08:00
lafirest 44fe882f14 refactor(emqx_slow_subs): refactor slow subs 2022-01-19 09:50:31 +08:00
DDDHuang 6278951d57 fix: code style 2022-01-17 15:43:59 +08:00
DDDHuang 5397d80680 feat(metrics): session metrics & api format 2022-01-17 15:15:00 +08:00
Shawn 2da30465de fix(merge): solve conflicts when merge 4.4 to 4.3 2022-01-14 15:45:33 +08:00
Shawn a6408cee4f fix(session): update testcases for emqx_session 2022-01-13 15:28:18 +08:00
Shawn 217acc0154 feat(rule): add new event 'delivery_dropped' 2022-01-12 20:11:08 +08:00
Shawn 9434c0fa6c feat(hook): new emqx hook 'delivery.dropped' 2022-01-12 18:34:20 +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
lafirest 0357f7ad85
improve(emqx_st_statistics): optimize the parameters of on_publish_done (#6151)
* fix(emqx_st_statistics): optimize the parameters of on_publish_done
2021-11-15 11:00:04 +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
lafirest f8acb31f89 feat: add slow topics statistics plugin 2021-11-03 17:20:07 +08:00
Zaiming Shi 6354e75626 chore: update copyrights 2021-04-23 20:43:00 +02:00
Shawn 7bf6ee0f4b
fix(mqtt-sn): sleep mode not working #4434 (#4435) 2021-03-29 17:51:49 +08:00
Zaiming Shi b10a60cddb fix(conninfo): Ensure receive_maximum do not exceed limit 2021-03-29 09:42:07 +02:00
tigercl da4d71917f fix(ignore-loop-deliver): fix issue#3738 (#3741) 2020-09-29 15:35:16 +08:00
JianBo He e3489b9d46 refactor(style): improve all types declaration
- Add dialyzer for code analysis
- Correct all the module type declarations
- Use `-type()` to declaration a type instead of `-opaque`
  (It is advantageous to the code dialyzer)

BROKEN CHANGES:
- Add a ?DEFAULT_SUBOPTS for emqx_broker:subscribe/1,2,3
- Remove the needless internal function `emqx_vm:port_info(PortTerm, Keys)`
2020-06-18 17:38:34 +08:00
terry-xiaoyu 6ad65d587e feature(properties): add properties in message header
1. Add MQTT5.0 properties when invoking the hooks.

- Add a new key `properties` into the message header:

  We used to put all of the properties into the `#message.headers`:

  ```erlang
  #message{headers = #{'User-Property' => {<<"reason">>,<<"normal">>},
                       'Message-Expiry-Interval' => 60,
                       allow_publish => true}
  ```

  I put them instead under a single key:

  ```erlang
  #message{headers = #{properties =>
                        #{'User-Property' => {<<"reason">>,<<"normal">>},
                          'Message-Expiry-Interval' => 60},
                       allow_publish => true}
  ```

  Note that the column `properties` may contain all the properties for
  Publish and Will messages.

- Add `disconn_props` into the `Channel.conninfo`

- Add `puback_props` also into the message header:

  ```erlang
  #message{headers = #{puback_props =>
                        #{'User-Property' => {<<"reason">>,<<"normal">>}},
                       allow_publish => true}
  ```

2. Change the data type of `#message.headers` and `#message.flags` to map.

   It used to support `undefined`.
2020-06-17 18:46:26 +08:00
terry-xiaoyu e806a96031 Change timestamps to millisecond 2020-04-15 09:03:52 +08:00
tigercl 8734922abb Fix rap handling and keep the value of retain flag in bridge mode (#3189) 2020-01-17 11:37:28 +08:00
zhouzb 7ea75f4289 Update copyright 2020-01-03 18:31:08 +08:00
Feng Lee 46ca3f2f82 Add metrics for session's lifecircle
- session.created
- session.resumed
- session.takeovered
- session.discarded
- session.terminated
2019-12-30 09:29:41 +08:00
Feng Lee b7ca3905a6 Breaking Change: Add new hooks for client and session lifecircle (#3138) 2019-12-27 16:31:06 +08:00
Feng Lee 578355442b Add more metrics and improve the 'channel', 'session' modules (#3128) 2019-12-20 21:47:32 +08:00
Feng Lee c5c99b7c4e Improve 'emqx_ws_connection' module and add more test cases 2019-12-13 18:07:59 +08:00
Feng Lee d1c3dec730 Optimize emqx_session and add more test cases 2019-12-11 13:44:52 +08:00
Feng Lee 0c377c67cd Use 'erlang:system_time' to replace 'os:timestamp' (#3088)
Use 'erlang:system_time/1' to replace 'os:timestamp/0'
2019-12-09 16:27:25 +08:00
Feng Lee dc3e7dc21c Ignore the expired messages 2019-12-07 16:51:20 +08:00
Feng Lee bbcd2bffc5 Improve the session module (#3082)
Improve the session module
2019-12-07 15:54:02 +08:00
Feng Lee 9c3273a2c6 Improve the process of handling MQTT control packets (#3079) 2019-12-06 19:51:06 +08:00
zhouzb 73275a2b4d Replace inflight with inflight_cnt in STATS_KEYS 2019-11-18 10:24:23 +08:00
Feng Lee 7117dde879 Add more test cases for connection, channel and session modules 2019-10-21 17:14:50 +08:00
Feng Lee aecda09b9a Add more test cases 2019-10-19 20:18:34 +08:00
Feng Lee cd4adbada0 Add more test cases for connection, channel and session modules 2019-10-18 18:53:31 +08:00
zhouzb 7512d6cb03 Check topic level for publish packet and optimize the handling of rap 2019-10-12 09:33:47 +08:00
Feng Lee 8ab682151d Improve the connection and channel modules
- Rename the 'client_id' field to 'clientid'
- Support publish stats in channel module
- Update test cases for frame and channel modules
2019-09-29 10:22:02 +08:00
Feng Lee 98b7e3d948 Rename the type 'client()' to 'client_info()'
- Rename tye type 'client()' to 'client_info()'
- Rename the 'client' field of channel to 'client_info'
- Fix the function specs
2019-09-21 15:27:05 +08:00
Feng Lee 1a3261b186
Merge branch 'develop' into remove-protocol-module 2019-09-20 16:17:44 +08:00
Feng Lee 3202ed2392 Improve the 'channel' module and add more test cases
- Rename the 'Client' field to 'ClientInfo'
- Remove the 'expiry_interval' from session record
- Add more test cases for emqx_zone module
- Add more test cases for emqx_banned module
- Add more test cases for emqx_message module
- Remove 'sockname', 'conn_mod' fields from type 'client'
2019-09-20 14:38:16 +08:00
Feng Lee 8404fce6a6 Remove the function 'update_expiry_interval/2' 2019-09-18 19:49:34 +08:00
tigercl fc553b8cee
Merge pull request #2803 from emqx/fix_msg_expiry
Fix Message-Expiry-Interval not working
2019-09-16 14:45:22 +08:00
zhouzb 066763248c Fix dup flag 2019-09-05 18:35:29 +08:00
Feng Lee 847375d2fb Improve connection and channel modules (#2860)
Improve the connection and channel modules
2019-09-05 14:17:15 +08:00
Feng Lee 82b9a7c301 Improve session takeover (#2831)
Implement the session takover/resumption across nodes
2019-08-23 14:09:00 +08:00
zhouzb cff120c6d0 Handle session expiry interval correctly 2019-08-23 13:37:35 +08:00
Feng Lee c69a2b1b48 Ensure session expiration (#2825)
Ensure session expiration
2019-08-23 09:35:29 +08:00