### Description

I am in need to get some statistic counters related to each lcr gw currently 
loaded in Kamailio.
Kamailio already provides the counters I need inside the KEX module with the 
following command:
```
kamcmd> stats.get_statistics core:
core:bad_URIs_rcvd = 69
core:bad_msg_hdr = 2
core:drop_replies = 0
core:drop_requests = 8499
core:err_replies = 0
core:err_requests = 0
core:fwd_replies = 4
core:fwd_requests = 65
core:rcv_replies = 502088
...
```
Here kamailio doing exactly what i want, it's exposing the counter data via 
xmlrpc which is great for attaching an external tool to build statistics.
Unfortunately Kamailio KEX module is counting every single request/reply 
hitting the proxy server, the idea is to have the above stats related to the 
gateways currently loaded by the lcr module.
In this way, for example I can tell how many request/replies I got from gw id X 
or gw id Y and produce gw based stats.
Unfortunately the KEX module has no "concept" of "GW" and "LCR", so the idea is 
to implement the same counting logic inside LCR module.
The counting should not be persistent (counters must go to zero every time 
kamailio restarts).
When adding or deleting a new gateway, the counting in memory must reflect the 
status of the internal state or lcr gatewas, so, for example, after adding a 
new gateway and reloading lcr tables, the new counters must be immediately 
available through xmlrpc without a new kamailio restart. The same concept 
applies when the gateway is removed from the list.

### Expected behavior
A possible implementation should give the user to query counters in a way 
similar to this:
```
# kamcmd lcr.stats
{
        gw: {
                {
                        gw_id: <id of lcr mysql table here>
                        gw_name: <description of lcr mysql table here>
                        requests: 0
                        requests_invite: 0
                        requests_cancel: 0
                        ...
                }
                {
                        gw_id: <id of lcr mysql table here>
                        gw_name: <description of lcr mysql table here>
                        requests: 0
                        requests_invite: 0
                        requests_cancel: 0
                        ...
                }
        }
}
```

Additionally, it would be helpful to set a gw id as argument in order to 
filter, for example:

```
# kamcmd lcr.stats 95
{
        gw: {
                {
                        gw_id: 95
                        gw_name: <description of gw id 95>
                        requests: 222
                        requests_invite: 1
                        requests_cancel: 1
                        requests_ack: 1
                        ...
                }
        }
}
```

#### Actual observed behavior

To my knowledge, nothing related to this issue has been implemented in Kamailio 
so far



-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3372
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/issues/3...@github.com>
_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to