Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
Clear all filters

Getting active pool member connections using Python

If I want to see all of the client connections connecting to a pool member from the CLI I can do something like a "show sys connection ss-server-addr". I can also do this using Postman mapping to "https://BIGIP/mgmt/tm/sys/connection?options=ss-server-addr+";, but I cannot figure out how to do this via Python.

Using Python if I try to connect to "bigip.sys.raw" I do not see a module called "connection" or anything similar. Does anyone know how, or have some sample code on how to accomplish this?


Rate this Question

Answers to this Question


The stats are pulled from the pool or member itself. Try this for an example:

#!/usr/bin/env python3

from f5.bigip import ManagementRoot
from getpass import getpass
from pprint import pprint

hostname = 'my.f5.ltm.net'
username = 'foo'

mgmt = ManagmentRoot(hostname, username, getpass())

pool = mgmt.tm.ltm.pools.pool.load(name='my_pool_name')
poolstats = pool.stats.load()


members = pool.members_s.get_collection()
member0_stats = members[0].stats.load()

Comments on this Answer
Comment made 06-Jun-2018 by Tim Harber 56

Thanks Jason. I am able to get stats the way you describe, but what I am trying to get is the actual connected clients connected to each pool member. For example from the CLI if I do a

 show sys connection cs-server-addr

I get the following resuts:'

Sys::Connections  tcp  3  (tmm: 10)  none  tcp  2  (tmm: 10)  none  tcp  11  (tmm: 11)  none  tcp  2  (tmm: 6)  none  tcp  1  (tmm: 1)  none  tcp  10  (tmm: 7)  none
Total records returned: 6

I am trying to get this same data using the API. I can get it via REST using Postman, but cannot figure out how to do it using Python.

Comment made 06-Jun-2018 by Jason Nance 218

You're saying pool member but cs-server-addr is virtual server.

If you want connections to the virtual server use:

virtual = mgmt.tm.ltm.pools.pool.load(name='my_vs_name')
vsstats = virtual.stats.load()

If you want pool member stats they are in the member0_stats = members[0].stats.load() example above (you will need to iterate the pool members) - member0_stats.entries['serverside.curConns'].

Here's a graphical breakdown of the various cs/ss arguments:


Comment made 06-Jun-2018 by Tim Harber 56

That example was a virtual IP, but was just the example IP I had in front on me. In reality I need this for both virtual servers and pool members.

But in any case, when I use your example for pool members I get the output of the value of the number of connected clients instead of the list of client IP's connected to the pool member as I showed above. My results for that code give me:

{'value': 5}

What I need is the list of those 5 IP's that are currently connected to that pool member which I can get using the CLI command "show sys connection ss-server-addr x.x.x.x"

Comment made 06-Jun-2018 by Jason Nance 218

Ahhh... Okay, sorry, I'm picking up what you're putting down now.

I don't think that the Python SDK supports this but you can do it with REST calls (using requests or your preference).

Here are a couple pages describing this:


https://devcentral.f5.com/articles/demystifying-icontrol-rest-part-3-how-to-pass-query-parameters-and-tmsh-options (example 4 is exactly what you're trying to do, I think)

I suggest opening an RFE on the GitHub page: