view mod_stats39/README.markdown @ 4326:f6fdefc5c6ac

mod_roster_command: Fix subscription when the "user JID" is a bare domain. Do not attempt to update the roster when the user is bare domain (e.g. a component), since they don't have rosters and the attempt results in an error: $ prosodyctl mod_roster_command subscribe proxy.example.com contact@example.com xxxxxxxxxxFailed to execute command: Error: /usr/lib/prosody/core/rostermanager.lua:104: attempt to concatenate local 'username' (a nil value) stack traceback: /usr/lib/prosody/core/rostermanager.lua:104: in function 'load_roster' /usr/lib/prosody/core/rostermanager.lua:305: in function 'set_contact_pending_out' mod_roster_command.lua:44: in function 'subscribe'
author Boris Grozev <boris@jitsi.org>
date Tue, 05 Jan 2021 13:15:00 -0600
parents 117f0fb8cb15
children f1a63271dcfc
line wrap: on
line source

This module provides **public** access to Prosodys
[internal statistics][doc:statistics] trough the
[XEP-0039: Statistics Gathering] protocol. This is a simple protocol
that returns triplets of name, unit and value for each know statistic
collected by Prosody. The names used are the internal names assigned by
modules or statsmanager, names from the registry are **not** used.

# Configuration

Enabled as usual by adding to [`modules_enabled`][doc:modules_enabled]:

```lua
-- Enable Prosodys internal statistics gathering
statistics = "internal"

-- and enable the module
modules_enabled = {
    -- other modules
    "stats39";
}
```

# Usage


## Example

Statistics can be queried from the XML console of clients that have one:

```xml
C:
<iq type="get" to="example.com" id="dTMERjt5">
  <query xmlns="http://jabber.org/protocol/stats"/>
</iq>

S:
<iq type="result" to="example.com" id="dTMERjt5">
  <query xmlns="http://jabber.org/protocol/stats">
    <stat name="cpu.clock:amount" value="0.212131"/>
    <stat name="cpu.percent:amount" value="0"/>
    <stat name="memory.allocated:amount" value="8.30259e+06"/>
    <stat name="memory.allocated_mmap:amount" value="401408"/>
    <stat name="memory.lua:amount" value="6.21347e+06"/>
    <stat name="memory.returnable:amount" value="13872"/>
    <stat name="memory.rss:amount" value="2.03858e+07"/>
    <stat name="memory.total:amount" value="6.53885e+07"/>
    <stat name="memory.unused:amount" value="14864"/>
    <stat name="memory.used:amount" value="8.28773e+06"/>
    <stat name="/*/mod_c2s/connections:amount" value="0"/>
    <stat name="/*/mod_c2s/ipv6:amount" value="0"/>
    <stat name="/*/mod_s2s/connections:amount" value="0"/>
    <stat name="/*/mod_s2s/ipv6:amount" value="0"/>
    <stat name="stats.collection:duration" unit="seconds" value="0.000125647"/>
    <stat name="stats.processing:duration" unit="seconds" value="0"/>
  </query>
</iq>
```