F5Networks / f5-ansible

Imperative Ansible modules for F5 BIG-IP products
GNU General Public License v3.0
375 stars 231 forks source link

F5 System Stats like CPU/Memory/Tput/SSL TPS to be made available via bigip_device_info_module #2093

Closed puseth closed 3 years ago

puseth commented 3 years ago

Is your feature request related to a problem? Please describe.

My customer is trying to build Auto-Scale (Scale-Out) Logic based on the current LTM Parameters. They want a way to fetch system critical details like (CPU/Memory/Throughput/SSL TPS) before they are breached on either F5 Hardware or F5 VE, so that they can call out or handle the new API's for spinning a new F5 VE.

Describe the solution you'd like

Having these details available in the bigip_device_info will help customer to run gather facts kind of playbook and get all the details returned via existing LB Layer.

https://clouddocs.f5.com/products/orchestration/ansible/devel/modules/bigip_device_info_module.html#bigip-device-info-module

These details are already available via following API's , so it's more of making them available to existing module.

/mgmt/tm/sys/cpu /mgmt/tm/sys/memory /mgmt/tm/sys/performance/throughput /mgmt/tm/sys/performance/throughput/SSL%20TPS /mgmt/tm/sys/performance/throughput/Service

[admin@f5vm0:Active:In Sync] ~ # curl -us admin: http://localhost:8100/mgmt/tm/sys/performance/throughput | jq .

{

"kind": "tm:sys:performance:throughput:throughputstats", "selfLink": "https://localhost/mgmt/tm/sys/performance/throughput?ver=15.1.2", "entries": { "https://localhost/mgmt/tm/sys/performance/throughput/In": { "nestedStats": { "entries": { "Average": { "description": "9" }, "Current": { "description": "9" }, "Max(since 2021_08_10T14:46:13Z)": { "description": "15" }, "Throughput(packets)": { "description": "In" } } } }, "https://localhost/mgmt/tm/sys/performance/throughput/Out": { "nestedStats": { "entries": { "Average": { "description": "9" }, "Current": { "description": "9" }, "Max(since 2021_08_10T14:46:13Z)": { "description": "14" }, "Throughput(packets)": { "description": "Out" } } } }, "https://localhost/mgmt/tm/sys/performance/throughput/SSL%20TPS": { "nestedStats": { "entries": { "Average": { "description": "0" }, "Current": { "description": "0" }, "Max(since 2021_08_10T14:46:13Z)": { "description": "0" }, "SSL Transactions": { "description": "SSL TPS" } } } }, "https://localhost/mgmt/tm/sys/performance/throughput/Service": { "nestedStats": { "entries": { "Average": { "description": "15" }, "Current": { "description": "18" }, "Max(since 2021_08_10T14:46:13Z)": { "description": "25" }, "Throughput(packets)": { "description": "Service" } } } } } }

Describe alternatives you've considered

Current alternative can be fetching these details via f5 tmsh show commands.

Additional context

Add any other context or screenshots about the feature request here.

trinaths commented 3 years ago

Suggest user Ansible build-in URI module to query the endpoints. Supporting these data via modules might delay the processing. Hope this helps. Closing the issue.

trinaths commented 3 years ago

Adding support in v2. Created INFRAANO-498 for internal tracking.

trinaths commented 3 years ago

Closing this issue. Suggest open this issue in https://github.com/F5Networks/f5-ansible-bigip