Explorar o código

Merge pull request #10395 from ieQu1/improve-machine-readme

docs(emqx_machine): Improve README
ieQu1 %!s(int64=2) %!d(string=hai) anos
pai
achega
25faa4472c
Modificáronse 1 ficheiros con 44 adicións e 1 borrados
  1. 44 1
      apps/emqx_machine/README.md

+ 44 - 1
apps/emqx_machine/README.md

@@ -1,5 +1,48 @@
-# EMQX Machine
+# EMQX machine
 
 This application manages other OTP applications in EMQX and serves as the entry point when BEAM VM starts up.
 It prepares the node before starting mnesia/mria, as well as EMQX business logic.
 It keeps track of the business applications storing data in Mnesia, which need to be restarted when the node joins the cluster by registering `ekka` callbacks.
+Also it kicks off autoclustering (EMQX cluster discovery) on the core nodes.
+
+`emqx_machine` application doesn't do much on its own, but it facilitates the environment for running other EMQX applications.
+
+# Features
+
+## Global GC
+
+`emqx_global_gc` is a gen_server that forces garbage collection of all Erlang processes running in the BEAM VM.
+This is meant to save the RAM.
+
+## Restricted shell
+
+`emqx_restricted_shell` module prevents user from accidentally issuing Erlang shell commands that can stop the remote node.
+
+## Signal handler
+
+`emqx_machine_signal_handler` handles POSIX signals sent to BEAM VM process.
+It helps to shut down EMQX broker gracefully when it receives `SIGTERM` signal.
+
+## Cover
+
+`emqx_cover` is a helper module that helps to collect coverage reports during testing.
+
+# Limitation
+
+Currently `emqx_machine` boots the business apps before starting autocluster, so a fresh node joining the cluster actually starts business application twice: first in the singleton mode, and then in clustered mode.
+
+# Documention links
+
+Configuration: [node.global_gc_interval](https://www.emqx.io/docs/en/v5.0/configuration/configuration-manual.html#node-and-cookie)
+
+# Configurations
+
+The following application environment variables are used:
+
+- `emqx_machine.global_gc_interval`: interval at which global GC is run
+- `emqx_machine.custom_shard_transports`: contains a map that allows to fine tune transport (`rpc` or `gen_rpc`) used to send Mria transactions from the core node to the replicant
+- `emqx_machine.backtrace_depth`: set maximum depth of Erlang stacktraces in crash reports
+
+
+# Contributing
+Please see our [contributing.md](../../CONTRIBUTING.md).