Thread: Getting Network Statistics

Getting Network Statistics

From
Jeff Lilienstein
Date:
    I have a subscription based Oracle database that is being converted
to Postgres under Redhat Linux 8.0. Usage is charged based on a
combination of CPU used and the number of bytes sent.

    For Postgres I can see how to get CPU usage for the query/connection
from parsing the log for a connect statement, getting the PID and either
getting the CPU from the Postgres log or using the PID to find the Linux
file /proc/xxx/stats (where xxx ix the PID) and parsing the stats file
for the user and system CPU.

    I still need to find the number of bytes transmitted to the client.
Oracle provides a "virtual" table, V$SESSTAT that provides that
information, but I have no idea how to get that information from
Postgres, or if that is not possible, from the operating system.

    Any suggestions are much appreciated.


                    Thanks,

                    Jeff


Re: Getting Network Statistics

From
Doug McNaught
Date:
Jeff Lilienstein <REMOVE-THISjeffhl@pacbell.net> writes:

>     I still need to find the number of bytes transmitted to the client.
> Oracle provides a "virtual" table, V$SESSTAT that provides that
> information, but I have no idea how to get that information from
> Postgres, or if that is not possible, from the operating system.

There are a couple of possibilities here:

1) Patch Postgres so it tracks bytes sent over a connection socket,
   (it definitely doesn't do this now) and writes out the total to a
   logfile when the connection is closed.  This might not be too hard,
   depending on the modularity of the code.

2) Figure out a way to get per-socket statistics from your OS.

-Doug