Forum Discussion
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 1.2.3.4". I can also do this using Postman mapping to ";, 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?
Thanks!
- Jason_NanceNimbostratus
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() pprint(poolstats.raw) members = pool.members_s.get_collection() member0_stats = members[0].stats.load() pprint(member0_stats.raw)
- Tim_HarberCirrus
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 10.69.67.92
I get the following resuts:'
Sys::Connections 192.168.181.163:51952 10.69.67.92:443 10.69.67.15:4822 10.69.65.65:44301 tcp 3 (tmm: 10) none 192.168.181.160:62556 10.69.67.92:443 10.69.67.15:21454 10.69.65.64:44301 tcp 2 (tmm: 10) none 10.74.10.114:60012 10.69.67.92:443 10.69.67.15:4246 10.69.65.65:44301 tcp 11 (tmm: 11) none 192.168.181.162:57199 10.69.67.92:443 10.69.67.15:32841 10.69.65.63:44301 tcp 2 (tmm: 6) none 192.168.181.156:58295 10.69.67.92:443 10.69.67.15:57537 10.69.65.64:44301 tcp 1 (tmm: 1) none 10.69.53.175:52661 10.69.67.92:443 10.69.67.15:57967 10.69.65.63:44301 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.
- Jason_NanceNimbostratus
You're saying pool member but
is virtual server.cs-server-addr
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
example above (you will need to iterate the pool members) -member0_stats = members[0].stats.load()
.member0_stats.entries['serverside.curConns']
Here's a graphical breakdown of the various cs/ss arguments:
https://worldtechit.com/view-delete-f5-load-balancer-active-connections/
- Tim_HarberCirrus
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"
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() pprint(poolstats.raw) members = pool.members_s.get_collection() member0_stats = members[0].stats.load() pprint(member0_stats.raw)
- Tim_HarberCirrus
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 10.69.67.92
I get the following resuts:'
Sys::Connections 192.168.181.163:51952 10.69.67.92:443 10.69.67.15:4822 10.69.65.65:44301 tcp 3 (tmm: 10) none 192.168.181.160:62556 10.69.67.92:443 10.69.67.15:21454 10.69.65.64:44301 tcp 2 (tmm: 10) none 10.74.10.114:60012 10.69.67.92:443 10.69.67.15:4246 10.69.65.65:44301 tcp 11 (tmm: 11) none 192.168.181.162:57199 10.69.67.92:443 10.69.67.15:32841 10.69.65.63:44301 tcp 2 (tmm: 6) none 192.168.181.156:58295 10.69.67.92:443 10.69.67.15:57537 10.69.65.64:44301 tcp 1 (tmm: 1) none 10.69.53.175:52661 10.69.67.92:443 10.69.67.15:57967 10.69.65.63:44301 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.
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:
https://wtit.com/view-delete-f5-load-balancer-active-connections/
- Tim_HarberCirrus
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"
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com