6.3.3 to 6.4.0
Configuration options¶
With the rework of connection handling for server-to-server (S2S) and component connections, we have updated several configuration options. Some of the changes affect client-to-server (C2S) connections as well. Some of the affected options were present in the default configuration file, and you might need to amend them even if you haven't changed them.
General¶
The following options from the general section were removed:
general.max_fsm_queue
, used to limit the maximum number of incoming messages in the internal queues for S2S and component connections. Traffic shapers should be used instead, as they provide a more reliable protection, because they act at an earlier stage.general.domain_certfile
, used to specify distinct certificates for specific local XMPP domains. Instead, now you should specify the certificates in the configuration sections of your C2S and S2S listeners.
Shaper name validation¶
When a referenced traffic shaper does not exist, MongooseIM will now issue an error and refuse to start.
In the previous version, it would silently disable the shaper instead.
This means that your previous config might now cause an undefined_shapers
error - in such case, you need to make sure the shaper is defined in the shaper
section, or disable shaping by using the default none
shaper.
Client-to-server (C2S) connections¶
The listen.c2s.shaper
option references the traffic shaper used for incoming C2S connections.
This logic is unchanged, but there was an issue in the default configuration file - it referenced the c2s_shaper
access rule (which had no effect) instead of the normal
shaper.
This is fixed in the new default configuration file, but you might need to update it in your configuration as well.
It is recommended to also remove the obsolete c2s_shaper
access rule to avoid confusion.
Keep in mind that you might have several listeners configured.
Another change is that the listen.c2s.tls.module
option is removed, because fast_tls
is not supported anymore.
All listeners use the native Erlang/OTP TLS implementation instead (which was called just_tls
before).
Server-to-server (S2S) connections¶
The listen.s2s.shaper
option references the traffic shaper used for incoming S2S connections.
Previously, this option referenced an access rule name instead.
In the default configuration file, the obsolete s2s_shaper
rule was replaced by the corresponding fast
shaper.
You might need to apply this fix in your configuration file.
Keep in mind that you might have several listeners configured.
It is recommended to remove the s2s_shaper
access rule as well to avoid confusion.
Shaper for outgoing S2S connections
For outgoing connections, there is a new option s2s.outgoing.shaper
.
Together with listen.s2s.shaper
, it allows you to shape the traffic from both connection types.
Options from the s2s section were reworked. All affected options are listed below:
s2s.address
was renamed tos2s.outgoing.address
.s2s.certfile
was renamed tos2s.outgoing.tls.certfile
.s2s.ciphers
was renamed tos2s.outgoing.tls.ciphers
.s2s.dns
subsection was renamed tos2s.outgoing.dns
.s2s.max_retry_delay
was renamed tos2s.outgoing.max_retry_delay
.s2s.use_starttls
was replaced withs2s.outgoing.tls.mode
. The default valuestarttls
has the same meaning as the default valueoptional
of the former option. You can use thes2s.outgoing.tls.verify_mode
option to enable/disable certificate verification.
You might need to amend these options in your configuration file.
External component connections¶
The component listener section, previously called listen.service
, was renamed to listen.component
.
The listen.service.shaper_rule
option, contrary to its name, was referencing the shaper directly.
Now, this option has a more intuitive name listen.component.shaper
, and its logic is unchanged.
You might need to update these options in your configuration file.
Keep in mind that you might have several listeners configured.
Metrics¶
Metrics related to XMPP traffic were reworked from scratch. They are now more consistent and provide better coverage of the instrumented events. The table below summarizes the changes. The names presented in the table are assuming that Prometheus is used. For more information, e.g. about Prometheus labels or Exometer metrics, follow the links in the table.
Previous metrics | Current metrics | More information |
---|---|---|
c2s_tcp_data_in , c2s_tcp_data_out ,c2s_tls_data_in , c2s_tls_data_out ,s2s_tcp_data_in , s2s_tcp_data_out ,s2s_tls_data_in , s2s_tls_data_out ,component_tcp_data_in , component_tcp_data_out ,component_tls_data_in , component_tls_data_out |
tcp_data_in , tcp_data_out ,tls_data_in , tls_data_out |
Network data |
c2s_element_in_* , c2s_element_out_* |
xmpp_element_in_* , xmpp_element_out_* |
XMPP traffic |
c2s_xmpp_element_size_in_byte_size , c2s_xmpp_element_size_out_byte_size ,s2s_xmpp_element_size_in_byte_size , s2s_xmpp_element_size_out_byte_size ,component_xmpp_element_size_in_byte_size , component_xmpp_element_size_out_byte_size |
xmpp_element_in_byte_size , xmpp_element_out_byte_size |
XMPP traffic |