fix: some API code format & api doc code format (#5601)
This commit is contained in:
parent
100e550491
commit
5b75fdd120
|
@ -78,143 +78,64 @@ schemas() ->
|
|||
Client = #{
|
||||
client => #{
|
||||
type => object,
|
||||
properties => #{
|
||||
node => #{
|
||||
type => string,
|
||||
description => <<"Name of the node to which the client is connected">>},
|
||||
clientid => #{
|
||||
type => string,
|
||||
description => <<"Client identifier">>},
|
||||
username => #{
|
||||
type => string,
|
||||
description => <<"User name of client when connecting">>},
|
||||
proto_name => #{
|
||||
type => string,
|
||||
description => <<"Client protocol name">>},
|
||||
proto_ver => #{
|
||||
type => integer,
|
||||
description => <<"Protocol version used by the client">>},
|
||||
ip_address => #{
|
||||
type => string,
|
||||
description => <<"Client's IP address">>},
|
||||
is_bridge => #{
|
||||
type => boolean,
|
||||
description => <<"Indicates whether the client is connectedvia bridge">>},
|
||||
connected_at => #{
|
||||
type => string,
|
||||
description => <<"Client connection time">>},
|
||||
disconnected_at => #{
|
||||
type => string,
|
||||
description => <<"Client offline time, This field is only valid and returned when connected is false">>},
|
||||
connected => #{
|
||||
type => boolean,
|
||||
description => <<"Whether the client is connected">>},
|
||||
will_msg => #{
|
||||
type => string,
|
||||
description => <<"Client will message">>},
|
||||
zone => #{
|
||||
type => string,
|
||||
description => <<"Indicate the configuration group used by the client">>},
|
||||
keepalive => #{
|
||||
type => integer,
|
||||
description => <<"keepalive time, with the unit of second">>},
|
||||
clean_start => #{
|
||||
type => boolean,
|
||||
description => <<"Indicate whether the client is using a brand new session">>},
|
||||
expiry_interval => #{
|
||||
type => integer,
|
||||
description => <<"Session expiration interval, with the unit of second">>},
|
||||
created_at => #{
|
||||
type => string,
|
||||
description => <<"Session creation time">>},
|
||||
subscriptions_cnt => #{
|
||||
type => integer,
|
||||
description => <<"Number of subscriptions established by this client.">>},
|
||||
subscriptions_max => #{
|
||||
type => integer,
|
||||
description => <<"v4 api name [max_subscriptions] Maximum number of subscriptions allowed by this client">>},
|
||||
inflight_cnt => #{
|
||||
type => integer,
|
||||
description => <<"Current length of inflight">>},
|
||||
inflight_max => #{
|
||||
type => integer,
|
||||
description => <<"v4 api name [max_inflight]. Maximum length of inflight">>},
|
||||
mqueue_len => #{
|
||||
type => integer,
|
||||
description => <<"Current length of message queue">>},
|
||||
mqueue_max => #{
|
||||
type => integer,
|
||||
description => <<"v4 api name [max_mqueue]. Maximum length of message queue">>},
|
||||
mqueue_dropped => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages dropped by the message queue due to exceeding the length">>},
|
||||
awaiting_rel_cnt => #{
|
||||
type => integer,
|
||||
description => <<"v4 api name [awaiting_rel] Number of awaiting PUBREC packet">>},
|
||||
awaiting_rel_max => #{
|
||||
type => integer,
|
||||
description => <<"v4 api name [max_awaiting_rel]. Maximum allowed number of awaiting PUBREC packet">>},
|
||||
recv_oct => #{
|
||||
type => integer,
|
||||
description => <<"Number of bytes received by EMQ X Broker (the same below)">>},
|
||||
recv_cnt => #{
|
||||
type => integer,
|
||||
description => <<"Number of TCP packets received">>},
|
||||
recv_pkt => #{
|
||||
type => integer,
|
||||
description => <<"Number of MQTT packets received">>},
|
||||
recv_msg => #{
|
||||
type => integer,
|
||||
description => <<"Number of PUBLISH packets received">>},
|
||||
send_oct => #{
|
||||
type => integer,
|
||||
description => <<"Number of bytes sent">>},
|
||||
send_cnt => #{
|
||||
type => integer,
|
||||
description => <<"Number of TCP packets sent">>},
|
||||
send_pkt => #{
|
||||
type => integer,
|
||||
description => <<"Number of MQTT packets sent">>},
|
||||
send_msg => #{
|
||||
type => integer,
|
||||
description => <<"Number of PUBLISH packets sent">>},
|
||||
mailbox_len => #{
|
||||
type => integer,
|
||||
description => <<"Process mailbox size">>},
|
||||
heap_size => #{
|
||||
type => integer,
|
||||
description => <<"Process heap size with the unit of byte">>
|
||||
},
|
||||
reductions => #{
|
||||
type => integer,
|
||||
description => <<"Erlang reduction">>}
|
||||
}
|
||||
properties => emqx_mgmt_util:properties(properties(client))
|
||||
}
|
||||
},
|
||||
},
|
||||
AuthzCache = #{
|
||||
authz_cache => #{
|
||||
type => object,
|
||||
properties => #{
|
||||
topic => #{
|
||||
type => string,
|
||||
description => <<"Topic name">>},
|
||||
access => #{
|
||||
type => string,
|
||||
enum => [<<"subscribe">>, <<"publish">>],
|
||||
description => <<"Access type">>},
|
||||
result => #{
|
||||
type => string,
|
||||
enum => [<<"allow">>, <<"deny">>],
|
||||
default => <<"allow">>,
|
||||
description => <<"Allow or deny">>},
|
||||
updated_time => #{
|
||||
type => integer,
|
||||
description => <<"Update time">>}
|
||||
}
|
||||
properties => emqx_mgmt_util:properties(properties(authz_cache))
|
||||
}
|
||||
},
|
||||
[Client, AuthzCache].
|
||||
|
||||
properties(client) ->
|
||||
[
|
||||
{awaiting_rel_cnt, integer, <<"v4 api name [awaiting_rel] Number of awaiting PUBREC packet">>},
|
||||
{awaiting_rel_max, integer, <<"v4 api name [max_awaiting_rel]. Maximum allowed number of awaiting PUBREC packet">>},
|
||||
{clean_start, boolean, <<"Indicate whether the client is using a brand new session">>},
|
||||
{clientid, string , <<"Client identifier">>},
|
||||
{connected, boolean, <<"Whether the client is connected">>},
|
||||
{connected_at, string , <<"Client connection time">>},
|
||||
{created_at, string , <<"Session creation time">>},
|
||||
{disconnected_at, string , <<"Client offline time, This field is only valid and returned when connected is false">>},
|
||||
{expiry_interval, integer, <<"Session expiration interval, with the unit of second">>},
|
||||
{heap_size, integer, <<"Process heap size with the unit of byte">>},
|
||||
{inflight_cnt, integer, <<"Current length of inflight">>},
|
||||
{inflight_max, integer, <<"v4 api name [max_inflight]. Maximum length of inflight">>},
|
||||
{ip_address, string , <<"Client's IP address">>},
|
||||
{is_bridge, boolean, <<"Indicates whether the client is connectedvia bridge">>},
|
||||
{keepalive, integer, <<"keepalive time, with the unit of second">>},
|
||||
{mailbox_len, integer, <<"Process mailbox size">>},
|
||||
{mqueue_dropped, integer, <<"Number of messages dropped by the message queue due to exceeding the length">>},
|
||||
{mqueue_len, integer, <<"Current length of message queue">>},
|
||||
{mqueue_max, integer, <<"v4 api name [max_mqueue]. Maximum length of message queue">>},
|
||||
{node, string , <<"Name of the node to which the client is connected">>},
|
||||
{proto_name, string , <<"Client protocol name">>},
|
||||
{proto_ver, integer, <<"Protocol version used by the client">>},
|
||||
{recv_cnt, integer, <<"Number of TCP packets received">>},
|
||||
{recv_msg, integer, <<"Number of PUBLISH packets received">>},
|
||||
{recv_oct, integer, <<"Number of bytes received by EMQ X Broker (the same below)">>},
|
||||
{recv_pkt, integer, <<"Number of MQTT packets received">>},
|
||||
{reductions, integer, <<"Erlang reduction">>},
|
||||
{send_cnt, integer, <<"Number of TCP packets sent">>},
|
||||
{send_msg, integer, <<"Number of PUBLISH packets sent">>},
|
||||
{send_oct, integer, <<"Number of bytes sent">>},
|
||||
{send_pkt, integer, <<"Number of MQTT packets sent">>},
|
||||
{subscriptions_cnt, integer, <<"Number of subscriptions established by this client.">>},
|
||||
{subscriptions_max, integer, <<"v4 api name [max_subscriptions] Maximum number of subscriptions allowed by this client">>},
|
||||
{username, string , <<"User name of client when connecting">>},
|
||||
{will_msg, string , <<"Client will message">>},
|
||||
{zone, string , <<"Indicate the configuration group used by the client">>}
|
||||
];
|
||||
properties(authz_cache) ->
|
||||
[
|
||||
{access, string, <<"Access type">>},
|
||||
{result, string, <<"Allow or deny">>},
|
||||
{topic, string, <<"Topic name">>},
|
||||
{updated_time, integer, <<"Update time">>}
|
||||
].
|
||||
|
||||
clients_api() ->
|
||||
Metadata = #{
|
||||
get => #{
|
||||
|
|
|
@ -28,271 +28,107 @@ api_spec() ->
|
|||
metrics_schema() ->
|
||||
Metric = #{
|
||||
type => object,
|
||||
properties => properties()
|
||||
properties => emqx_mgmt_util:properties(properties())
|
||||
},
|
||||
Metrics = #{
|
||||
type => array,
|
||||
items => #{
|
||||
type => object,
|
||||
properties => properties()
|
||||
properties => emqx_mgmt_util:properties([{node, string} | properties()])
|
||||
}
|
||||
},
|
||||
MetricsInfo = #{
|
||||
oneOf => [ minirest:ref(<<"metric">>)
|
||||
, minirest:ref(<<"metrics">>)
|
||||
oneOf => [ minirest:ref(metric)
|
||||
, minirest:ref(metrics)
|
||||
]
|
||||
},
|
||||
#{metric => Metric, metrics => Metrics, metrics_info => MetricsInfo}.
|
||||
|
||||
properties() ->
|
||||
#{
|
||||
'actions.failure' => #{
|
||||
type => integer,
|
||||
description => <<"Number of failure executions of the rule engine action">>},
|
||||
'actions.success' => #{
|
||||
type => integer,
|
||||
description => <<"Number of successful executions of the rule engine action">>},
|
||||
'bytes.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of bytes received by EMQ X Broker">>},
|
||||
'bytes.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of bytes sent by EMQ X Broker on this connection">>},
|
||||
'client.authenticate' => #{
|
||||
type => integer,
|
||||
description => <<"Number of client authentications">>},
|
||||
'client.auth.anonymous' => #{
|
||||
type => integer,
|
||||
description => <<"Number of clients who log in anonymously">>},
|
||||
'client.connect' => #{
|
||||
type => integer,
|
||||
description => <<"Number of client connections">>},
|
||||
'client.connack' => #{
|
||||
type => integer,
|
||||
description => <<"Number of CONNACK packet sent">>},
|
||||
'client.connected' => #{
|
||||
type => integer,
|
||||
description => <<"Number of successful client connections">>},
|
||||
'client.disconnected' => #{
|
||||
type => integer,
|
||||
description => <<"Number of client disconnects">>},
|
||||
'client.check_authz' => #{
|
||||
type => integer,
|
||||
description => <<"Number of Authorization rule checks">>},
|
||||
'client.subscribe' => #{
|
||||
type => integer,
|
||||
description => <<"Number of client subscriptions">>},
|
||||
'client.unsubscribe' => #{
|
||||
type => integer,
|
||||
description => <<"Number of client unsubscriptions">>},
|
||||
'delivery.dropped.too_large' => #{
|
||||
type => integer,
|
||||
description => <<"The number of messages that were dropped because the length exceeded the limit when sending">>},
|
||||
'delivery.dropped.queue_full' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages with a non-zero QoS that were dropped because the message queue was full when sending">>},
|
||||
'delivery.dropped.qos0_msg' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages with QoS 0 that were dropped because the message queue was full when sending">>},
|
||||
'delivery.dropped.expired' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages dropped due to message expiration on sending">>},
|
||||
'delivery.dropped.no_local' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages that were dropped due to the No Local subscription option when sending">>},
|
||||
'delivery.dropped' => #{
|
||||
type => integer,
|
||||
description => <<"Total number of discarded messages when sending">>},
|
||||
'messages.delayed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of delay- published messages stored by EMQ X Broker">>},
|
||||
'messages.delivered' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages forwarded to the subscription process internally by EMQ X Broker">>},
|
||||
'messages.dropped' => #{
|
||||
type => integer,
|
||||
description => <<"Total number of messages dropped by EMQ X Broker before forwarding to the subscription process">>},
|
||||
'messages.dropped.expired' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages dropped due to message expiration when receiving">>},
|
||||
'messages.dropped.no_subscribers' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages dropped due to no subscribers">>},
|
||||
'messages.forward' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages forwarded to other nodes">>},
|
||||
'messages.publish' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages published in addition to system messages">>},
|
||||
'messages.qos0.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 0 messages received from clients">>},
|
||||
'messages.qos1.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 1 messages received from clients">>},
|
||||
'messages.qos2.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 2 messages received from clients">>},
|
||||
'messages.qos0.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 0 messages sent to clients">>},
|
||||
'messages.qos1.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 1 messages sent to clients">>},
|
||||
'messages.qos2.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of QoS 2 messages sent to clients">>},
|
||||
'messages.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages received from the client, equal to the sum of messages.qos0.received,messages.qos1.received and messages.qos2.received">>},
|
||||
'messages.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages sent to the client, equal to the sum of messages.qos0.sent,messages.qos1.sent and messages.qos2.sent">>},
|
||||
'messages.retained' => #{
|
||||
type => integer,
|
||||
description => <<"Number of retained messages stored by EMQ X Broker">>},
|
||||
'messages.acked' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBACK and PUBREC packet">>},
|
||||
'packets.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received packet">>},
|
||||
'packets.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent packet">>},
|
||||
'packets.connect.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received CONNECT packet">>},
|
||||
'packets.connack.auth_error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received CONNECT packet with failed authentication">>},
|
||||
'packets.connack.error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received CONNECT packet with unsuccessful connections">>},
|
||||
'packets.connack.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent CONNACK packet">>},
|
||||
'packets.publish.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBLISH packet">>},
|
||||
'packets.publish.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBLISH packet">>},
|
||||
'packets.publish.inuse' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBLISH packet with occupied identifiers">>},
|
||||
'packets.publish.auth_error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBLISH packets with failed the Authorization check">>},
|
||||
'packets.publish.error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBLISH packet that cannot be published">>},
|
||||
'packets.publish.dropped' => #{
|
||||
type => integer,
|
||||
description => <<"Number of messages discarded due to the receiving limit">>},
|
||||
'packets.puback.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBACK packet">>},
|
||||
'packets.puback.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBACK packet">>},
|
||||
'packets.puback.inuse' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBACK packet with occupied identifiers">>},
|
||||
'packets.puback.missed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received packet with identifiers.">>},
|
||||
'packets.pubrec.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBREC packet">>},
|
||||
'packets.pubrec.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBREC packet">>},
|
||||
'packets.pubrec.inuse' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBREC packet with occupied identifiers">>},
|
||||
'packets.pubrec.missed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBREC packet with unknown identifiers">>},
|
||||
'packets.pubrel.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBREL packet">>},
|
||||
'packets.pubrel.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBREL packet">>},
|
||||
'packets.pubrel.missed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBREC packet with unknown identifiers">>},
|
||||
'packets.pubcomp.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBCOMP packet">>},
|
||||
'packets.pubcomp.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBCOMP packet">>},
|
||||
'packets.pubcomp.inuse' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PUBCOMP packet with occupied identifiers">>},
|
||||
'packets.pubcomp.missed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of missed PUBCOMP packet">>},
|
||||
'packets.subscribe.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received SUBSCRIBE packet">>},
|
||||
'packets.subscribe.error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received SUBSCRIBE packet with failed subscriptions">>},
|
||||
'packets.subscribe.auth_error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received SUBACK packet with failed Authorization check">>},
|
||||
'packets.suback.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent SUBACK packet">>},
|
||||
'packets.unsubscribe.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received UNSUBSCRIBE packet">>},
|
||||
'packets.unsubscribe.error' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received UNSUBSCRIBE packet with failed unsubscriptions">>},
|
||||
'packets.unsuback.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent UNSUBACK packet">>},
|
||||
'packets.pingreq.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received PINGREQ packet">>},
|
||||
'packets.pingresp.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent PUBRESP packet">>},
|
||||
'packets.disconnect.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received DISCONNECT packet">>},
|
||||
'packets.disconnect.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent DISCONNECT packet">>},
|
||||
'packets.auth.received' => #{
|
||||
type => integer,
|
||||
description => <<"Number of received AUTH packet">>},
|
||||
'packets.auth.sent' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sent AUTH packet">>},
|
||||
'rules.matched' => #{
|
||||
type => integer,
|
||||
description => <<"Number of rule matched">>},
|
||||
'session.created' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sessions created">>},
|
||||
'session.discarded' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sessions dropped because Clean Session or Clean Start is true">>},
|
||||
'session.resumed' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sessions resumed because Clean Session or Clean Start is false">>},
|
||||
'session.takeovered' => #{
|
||||
type => integer,
|
||||
description => <<"Number of sessions takeovered because Clean Session or Clean Start is false">>},
|
||||
'session.terminated' => #{
|
||||
type => integer,
|
||||
description => <<"Number of terminated sessions">>}
|
||||
}.
|
||||
[
|
||||
{'actions.failure', integer, <<"Number of failure executions of the rule engine action">>},
|
||||
{'actions.success', integer, <<"Number of successful executions of the rule engine action">>},
|
||||
{'bytes.received', integer, <<"Number of bytes received by EMQ X Broker">>},
|
||||
{'bytes.sent', integer, <<"Number of bytes sent by EMQ X Broker on this connection">>},
|
||||
{'client.auth.anonymous', integer, <<"Number of clients who log in anonymously">>},
|
||||
{'client.authenticate', integer, <<"Number of client authentications">>},
|
||||
{'client.check_authz', integer, <<"Number of Authorization rule checks">>},
|
||||
{'client.connack', integer, <<"Number of CONNACK packet sent">>},
|
||||
{'client.connect', integer, <<"Number of client connections">>},
|
||||
{'client.connected', integer, <<"Number of successful client connections">>},
|
||||
{'client.disconnected', integer, <<"Number of client disconnects">>},
|
||||
{'client.subscribe', integer, <<"Number of client subscriptions">>},
|
||||
{'client.unsubscribe', integer, <<"Number of client unsubscriptions">>},
|
||||
{'delivery.dropped', integer, <<"Total number of discarded messages when sending">>},
|
||||
{'delivery.dropped.expired', integer, <<"Number of messages dropped due to message expiration on sending">>},
|
||||
{'delivery.dropped.no_local', integer, <<"Number of messages that were dropped due to the No Local subscription option when sending">>},
|
||||
{'delivery.dropped.qos0_msg', integer, <<"Number of messages with QoS 0 that were dropped because the message queue was full when sending">>},
|
||||
{'delivery.dropped.queue_full', integer, <<"Number of messages with a non-zero QoS that were dropped because the message queue was full when sending">>},
|
||||
{'delivery.dropped.too_large', integer, <<"The number of messages that were dropped because the length exceeded the limit when sending">>},
|
||||
{'messages.acked', integer, <<"Number of received PUBACK and PUBREC packet">>},
|
||||
{'messages.delayed', integer, <<"Number of delay- published messages stored by EMQ X Broker">>},
|
||||
{'messages.delivered', integer, <<"Number of messages forwarded to the subscription process internally by EMQ X Broker">>},
|
||||
{'messages.dropped', integer, <<"Total number of messages dropped by EMQ X Broker before forwarding to the subscription process">>},
|
||||
{'messages.dropped.expired', integer, <<"Number of messages dropped due to message expiration when receiving">>},
|
||||
{'messages.dropped.no_subscribers', integer, <<"Number of messages dropped due to no subscribers">>},
|
||||
{'messages.forward', integer, <<"Number of messages forwarded to other nodes">>},
|
||||
{'messages.publish', integer, <<"Number of messages published in addition to system messages">>},
|
||||
{'messages.qos0.received', integer, <<"Number of QoS 0 messages received from clients">>},
|
||||
{'messages.qos0.sent', integer, <<"Number of QoS 0 messages sent to clients">>},
|
||||
{'messages.qos1.received', integer, <<"Number of QoS 1 messages received from clients">>},
|
||||
{'messages.qos1.sent', integer, <<"Number of QoS 1 messages sent to clients">>},
|
||||
{'messages.qos2.received', integer, <<"Number of QoS 2 messages received from clients">>},
|
||||
{'messages.qos2.sent', integer, <<"Number of QoS 2 messages sent to clients">>},
|
||||
{'messages.received', integer, <<"Number of messages received from the client, equal to the sum of messages.qos0.received\fmessages.qos1.received and messages.qos2.received">>},
|
||||
{'messages.retained', integer, <<"Number of retained messages stored by EMQ X Broker">>},
|
||||
{'messages.sent', integer, <<"Number of messages sent to the client, equal to the sum of messages.qos0.sent\fmessages.qos1.sent and messages.qos2.sent">>},
|
||||
{'packets.auth.received', integer, <<"Number of received AUTH packet">>},
|
||||
{'packets.auth.sent', integer, <<"Number of sent AUTH packet">>},
|
||||
{'packets.connack.auth_error', integer, <<"Number of received CONNECT packet with failed authentication">>},
|
||||
{'packets.connack.error', integer, <<"Number of received CONNECT packet with unsuccessful connections">>},
|
||||
{'packets.connack.sent', integer, <<"Number of sent CONNACK packet">>},
|
||||
{'packets.connect.received', integer, <<"Number of received CONNECT packet">>},
|
||||
{'packets.disconnect.received', integer, <<"Number of received DISCONNECT packet">>},
|
||||
{'packets.disconnect.sent', integer, <<"Number of sent DISCONNECT packet">>},
|
||||
{'packets.pingreq.received', integer, <<"Number of received PINGREQ packet">>},
|
||||
{'packets.pingresp.sent', integer, <<"Number of sent PUBRESP packet">>},
|
||||
{'packets.puback.inuse', integer, <<"Number of received PUBACK packet with occupied identifiers">>},
|
||||
{'packets.puback.missed', integer, <<"Number of received packet with identifiers.">>},
|
||||
{'packets.puback.received', integer, <<"Number of received PUBACK packet">>},
|
||||
{'packets.puback.sent', integer, <<"Number of sent PUBACK packet">>},
|
||||
{'packets.pubcomp.inuse', integer, <<"Number of received PUBCOMP packet with occupied identifiers">>},
|
||||
{'packets.pubcomp.missed', integer, <<"Number of missed PUBCOMP packet">>},
|
||||
{'packets.pubcomp.received', integer, <<"Number of received PUBCOMP packet">>},
|
||||
{'packets.pubcomp.sent', integer, <<"Number of sent PUBCOMP packet">>},
|
||||
{'packets.publish.auth_error', integer, <<"Number of received PUBLISH packets with failed the Authorization check">>},
|
||||
{'packets.publish.dropped', integer, <<"Number of messages discarded due to the receiving limit">>},
|
||||
{'packets.publish.error', integer, <<"Number of received PUBLISH packet that cannot be published">>},
|
||||
{'packets.publish.inuse', integer, <<"Number of received PUBLISH packet with occupied identifiers">>},
|
||||
{'packets.publish.received', integer, <<"Number of received PUBLISH packet">>},
|
||||
{'packets.publish.sent', integer, <<"Number of sent PUBLISH packet">>},
|
||||
{'packets.pubrec.inuse', integer, <<"Number of received PUBREC packet with occupied identifiers">>},
|
||||
{'packets.pubrec.missed', integer, <<"Number of received PUBREC packet with unknown identifiers">>},
|
||||
{'packets.pubrec.received', integer, <<"Number of received PUBREC packet">>},
|
||||
{'packets.pubrec.sent', integer, <<"Number of sent PUBREC packet">>},
|
||||
{'packets.pubrel.missed', integer, <<"Number of received PUBREC packet with unknown identifiers">>},
|
||||
{'packets.pubrel.received', integer, <<"Number of received PUBREL packet">>},
|
||||
{'packets.pubrel.sent', integer, <<"Number of sent PUBREL packet">>},
|
||||
{'packets.received', integer, <<"Number of received packet">>},
|
||||
{'packets.sent', integer, <<"Number of sent packet">>},
|
||||
{'packets.suback.sent', integer, <<"Number of sent SUBACK packet">>},
|
||||
{'packets.subscribe.auth_error', integer, <<"Number of received SUBACK packet with failed Authorization check">>},
|
||||
{'packets.subscribe.error', integer, <<"Number of received SUBSCRIBE packet with failed subscriptions">>},
|
||||
{'packets.subscribe.received', integer, <<"Number of received SUBSCRIBE packet">>},
|
||||
{'packets.unsuback.sent', integer, <<"Number of sent UNSUBACK packet">>},
|
||||
{'packets.unsubscribe.error', integer, <<"Number of received UNSUBSCRIBE packet with failed unsubscriptions">>},
|
||||
{'packets.unsubscribe.received', integer, <<"Number of received UNSUBSCRIBE packet">>},
|
||||
{'rules.matched', integer, <<"Number of rule matched">>},
|
||||
{'session.created', integer, <<"Number of sessions created">>},
|
||||
{'session.discarded', integer, <<"Number of sessions dropped because Clean Session or Clean Start is true">>},
|
||||
{'session.resumed', integer, <<"Number of sessions resumed because Clean Session or Clean Start is false">>},
|
||||
{'session.takeovered', integer, <<"Number of sessions takeovered because Clean Session or Clean Start is false">>},
|
||||
{'session.terminated', integer, <<"Number of terminated sessions">>}
|
||||
].
|
||||
|
||||
metrics_api() ->
|
||||
Metadata = #{
|
||||
|
|
|
@ -29,83 +29,43 @@ stats_schema() ->
|
|||
type => array,
|
||||
items => #{
|
||||
type => object,
|
||||
properties => maps:put('node', #{type => string, description => <<"Node">>}, properties())
|
||||
properties => emqx_mgmt_util:properties([{'node', string} | properties()])
|
||||
}
|
||||
},
|
||||
Stat = #{
|
||||
type => object,
|
||||
properties => properties()
|
||||
properties => emqx_mgmt_util:properties(properties())
|
||||
},
|
||||
StatsInfo =#{
|
||||
oneOf => [ minirest:ref(<<"stats">>)
|
||||
, minirest:ref(<<"stat">>)
|
||||
oneOf => [ minirest:ref(stats)
|
||||
, minirest:ref(stat)
|
||||
]
|
||||
},
|
||||
[#{stats => Stats, stat => Stat, stats_info => StatsInfo}].
|
||||
|
||||
properties() ->
|
||||
#{
|
||||
'connections.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current connections">>},
|
||||
'connections.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of connections">>},
|
||||
'channels.count' => #{
|
||||
type => integer,
|
||||
description => <<"sessions.count">>},
|
||||
'channels.max' => #{
|
||||
type => integer,
|
||||
description => <<"session.max">>},
|
||||
'sessions.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current sessions">>},
|
||||
'sessions.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of sessions">>},
|
||||
'topics.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current topics">>},
|
||||
'topics.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of topics">>},
|
||||
'suboptions.count' => #{
|
||||
type => integer,
|
||||
description => <<"subscriptions.count">>},
|
||||
'suboptions.max' => #{
|
||||
type => integer,
|
||||
description => <<"subscriptions.max">>},
|
||||
'subscribers.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current subscribers">>},
|
||||
'subscribers.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of subscribers">>},
|
||||
'subscriptions.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current subscriptions, including shared subscriptions">>},
|
||||
'subscriptions.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of subscriptions">>},
|
||||
'subscriptions.shared.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current shared subscriptions">>},
|
||||
'subscriptions.shared.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of shared subscriptions">>},
|
||||
'routes.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of current routes">>},
|
||||
'routes.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of routes">>},
|
||||
'retained.count' => #{
|
||||
type => integer,
|
||||
description => <<"Number of currently retained messages">>},
|
||||
'retained.max' => #{
|
||||
type => integer,
|
||||
description => <<"Historical maximum number of retained messages">>}
|
||||
}.
|
||||
[
|
||||
{'channels.count', integer, <<"sessions.count">>},
|
||||
{'channels.max', integer, <<"session.max">>},
|
||||
{'connections.count', integer, <<"Number of current connections">>},
|
||||
{'connections.max', integer, <<"Historical maximum number of connections">>},
|
||||
{'retained.count', integer, <<"Number of currently retained messages">>},
|
||||
{'retained.max', integer, <<"Historical maximum number of retained messages">>},
|
||||
{'routes.count', integer, <<"Number of current routes">>},
|
||||
{'routes.max', integer, <<"Historical maximum number of routes">>},
|
||||
{'sessions.count', integer, <<"Number of current sessions">>},
|
||||
{'sessions.max', integer, <<"Historical maximum number of sessions">>},
|
||||
{'suboptions.count', integer, <<"subscriptions.count">>},
|
||||
{'suboptions.max', integer, <<"subscriptions.max">>},
|
||||
{'subscribers.count', integer, <<"Number of current subscribers">>},
|
||||
{'subscribers.max', integer, <<"Historical maximum number of subscribers">>},
|
||||
{'subscriptions.count', integer, <<"Number of current subscriptions, including shared subscriptions">>},
|
||||
{'subscriptions.max', integer, <<"Historical maximum number of subscriptions">>},
|
||||
{'subscriptions.shared.count', integer, <<"Number of current shared subscriptions">>},
|
||||
{'subscriptions.shared.max', integer, <<"Historical maximum number of shared subscriptions">>},
|
||||
{'topics.count', integer, <<"Number of current topics">>},
|
||||
{'topics.max', integer, <<"Historical maximum number of topics">>}
|
||||
].
|
||||
|
||||
stats_api() ->
|
||||
Metadata = #{
|
||||
|
|
Loading…
Reference in New Issue