# NATS

NATS is a message broker.

You can export statistics to a `NATS` server.

The connection should be defined in the Glances configuration file as following:

    [nats]
    host=nats://localhost:4222
    prefix=glances

and run Glances with:

    $ glances --export nats

## Data model

Glances stats are published as JSON messagesto the following subjects:

> <prefix>.<plugin>

Example:

> CPU stats are published to glances.cpu

So a simple Python client will subscribe to this subject with:

> import asyncio

> import nats

> async def main():

>   nc = nats.NATS()

>   await nc.connect(servers=[“nats://localhost:4222”])

>   future = asyncio.Future()

>   async def cb(msg):

>     nonlocal future future.set_result(msg)

>   await nc.subscribe(“glances.cpu”, cb=cb)

>   # Wait for message to come in print(“Waiting (max 30 seconds) for a message on ‘glances’ subject…”) msg = await asyncio.wait_for(future, 30) print(msg.subject, msg.data)

> if __name__ == ‘__main__’:

>   asyncio.run(main())

To subscribe to all Glannces stats use wildcard:

> await nc.subscribe(“glances.*”, cb=cb)