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)