---
name: "nng_stat_unit"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_stat_unit"
---

# nng\_stat\_unit(3)

get statistic unit

## NAME

nng\_stat\_unit - get statistic unit

## SYNOPSIS

```
#include <nng/nng.h>
typedef struct nng_stat nng_stat;
enum {
        NNG_UNIT_NONE,
        NNG_UNIT_BYTES,
        NNG_UNIT_MESSAGES,
        NNG_UNIT_MILLIS,
        NNG_UNIT_EVENTS
};
int nng_stat_unit(nng_stat *stat);
```

## DESCRIPTION

The `nng_stat_unit()` function returns the unit of quantity measured by the statistic *stat*.

The returned value will be one of the following values:

`NNG_UNIT_NONE`

There are no particular units measured. In some cases there may be units, but the type of the unit will be obvious from the name (see `nng_stat_name()`) of the statistic.

`NNG_UNIT_BYTES`

The statistic is a count of bytes.

`NNG_UNIT_MESSAGES`

The statistic is a count of messages. Typically, one message corresponds to a single `nng_msg` structure.

`NNG_UNIT_MILLIS`

The statistic is a count of milliseconds.

`NNG_STAT_EVENTS`

The statistic is a count of some other type of event.

For statistics that are neither `NNG_STAT_COUNTER` nor `NNG_STAT_LEVEL` type (see `nng_stat_type()`), the unit will generally be `NNG_UNIT_NONE`.

**Tip**\

Normally rates can be calculated for `NNG_STAT_COUNTER` values for any of these units, but for `NNG_UNIT_MILLIS` rate calculations are generally meaningless.

## RETURN VALUES

The units measured by *stat*.

## ERRORS

None.

## SEE ALSO

[libnng(3)](/libnng/3.md), [nng\_stats\_get(3)](/nng_stats_get/3.md), [nng\_stat\_name(3)](/nng_stat_name/3.md), [nng\_stat\_type(3)](/nng_stat_type/3.md), [nng\_stat\_value(3)](/nng_stat_value/3.md), [nng\_msg(5)](/nng_msg/5.md), [nng\_stat(5)](/nng_stat/5.md), [nng(7)](/nng/7.md)
