This documentation is for version v1.3.0 of NNG, but the latest released version is v1.8.0. see the documentation for v1.8.0 for the most up-to-date information.


#include <nng/nng.h>

typedef struct nng_stat nng_stat;


An nng_stat represents a statistic. All statistics have names (nng_stat_name()) and descriptions (nng_stat_desc()), and are typed (nng_stat_type()).

Most statistics are numeric, and thus carry a value (nng_stat_value()) and frequently also a unit that the value measures (nng_stat_unit()).

Some statistics however, are simply strings (nng_stat_string()), and thus carry no numeric value.

Statistics are organized as a tree, and any given statistic can have siblings (nng_stat_next()). Note however that generally only NNG_STAT_SCOPE statistics, which are act as placeholders in the tree (and carry no value), will have children (nng_stat_child()).

A tree of statistics is collected using nng_stats_get(), and can be freed when no longer needed with nng_stats_free(). This collection process is generally performed in a way to minimize impact to running operations, but there is still some impact caused by collection of statistics.

The time when a statistic’s value is captured can be obtained using nng_stat_timestamp(), which is useful for measuring rates of change in certain statistics.

The presence, names, and meanings of any given statistic are subject to change at any time. These statistics are provided as an aid for debugging, and should generally not be relied upon for programmatic behaviors.
Statistics may be disabled by build-time configuration options, in order to reduce program size and run-time overheads.