blob: 7d2c5bd853cee7594a71e75e545713fd60c7ccf9 [file] [log] [blame]
.. _mcumgr_smp_group_2:
Statistics management
#####################
Statistics management allows to obtain data gathered by Statistics subsystem
of Zephyr, enabled with :kconfig:option:`CONFIG_STATS`.
Statistics management group defines commands:
.. table::
:align: center
+-------------------+-----------------------------------------------+
| ``Command ID`` | Command description |
+===================+===============================================+
| ``0`` | Group data |
+-------------------+-----------------------------------------------+
| ``1`` | List groups |
+-------------------+-----------------------------------------------+
Statistics: group data
**********************
The command is used to obtain data for group specified by a name.
The name is one of group names as registered, with
:c:macro:`STATS_INIT_AND_REG` macro or :c:func:`stats_init_and_reg` function
call, within module that gathers the statistics.
Statistics: group data request
==============================
Statistics group data request header:
.. table::
:align: center
+--------+--------------+----------------+
| ``OP`` | ``Group ID`` | ``Command ID`` |
+========+==============+================+
| ``0`` | ``2`` | ``0`` |
+--------+--------------+----------------+
CBOR data of request:
.. code-block:: none
{
(str)"name" : (str)
}
where:
.. table::
:align: center
+-----------------------+---------------------------------------------------+
| "name" | is group name |
+-----------------------+---------------------------------------------------+
Statistics: group data response
===============================
Statistics group data response header:
.. table::
:align: center
+--------+--------------+----------------+
| ``OP`` | ``Group ID`` | ``Command ID`` |
+========+==============+================+
| ``1`` | ``2`` | ``0`` |
+--------+--------------+----------------+
CBOR data of successful response:
.. code-block:: none
{
(str)"name" : (str)
(str)"fields" : {
(str)<entry_name> : (uint)
...
}
}
In case of error the CBOR data takes the form:
.. code-block:: none
{
(str)"rc" : (int)
}
where:
.. table::
:align: center
+-----------------------+---------------------------------------------------+
| "name" | this is name of group the response contains data |
| | for |
+-----------------------+---------------------------------------------------+
| "fields" | this is map of entries within groups that consists|
| | of pairs where entry name is mapped to value it |
| | represents in statistics |
+-----------------------+---------------------------------------------------+
| <entry_name> | single entry to value mapping; value is hardcoded |
| | to unsigned integer type, in a CBOR meaning |
+-----------------------+---------------------------------------------------+
| "rc" | :c:enum:`mcumgr_err_t` |
| | only appears if non-zero (error condition). |
+-----------------------+---------------------------------------------------+
Statistics: list of groups
**************************
The command is used to obtain list of groups of statistics that are gathered
on a device. This is a list of names as given to groups with
:c:macro:`STATS_INIT_AND_REG` macro or :c:func:`stats_init_and_reg` function
calls, within module that gathers the statistics; this means that this command
may be considered optional as it is known during compilation what groups will
be included into build and listing them is not needed prior to issuing a query.
Statistics: list of groups request
==================================
Statistics group list request header:
.. table::
:align: center
+--------+--------------+----------------+
| ``OP`` | ``Group ID`` | ``Command ID`` |
+========+==============+================+
| ``0`` | ``2`` | ``1`` |
+--------+--------------+----------------+
The command sends an empty CBOR map as data.
Statistics: list of groups response
===================================
Statistics group list request header:
.. table::
:align: center
+--------+--------------+----------------+
| ``OP`` | ``Group ID`` | ``Command ID`` |
+========+==============+================+
| ``1`` | ``2`` | ``1`` |
+--------+--------------+----------------+
CBOR data of successful response:
.. code-block:: none
{
(str)"stat_list" : [
(str)<stat_group_name>, ...
]
}
In case of error the CBOR data takes the form:
.. code-block:: none
{
(str)"rc" : (int)
}
where:
.. table::
:align: center
+-----------------------+---------------------------------------------------+
| "stat_list" | array of strings representing group names; this |
| | array may be empty if there are no groups |
+-----------------------+---------------------------------------------------+
| "rc" | :c:enum:`mcumgr_err_t` |
| | only appears if non-zero (error condition). |
+-----------------------+---------------------------------------------------+