Forum Discussion

Patrik_Jonsson's avatar
Dec 18, 2016

Getting maximum TPS and TPS usage through iControl rest

Hi!

I'm trying to extract the maximum licensed TPS via iControl rest but struggling to find the value.

It's possible with tmsh:

tmsh show sys license detail

...
Active Modules
  Compression, Unlimited (XXXXXX-XXXXXX)
  LTM, Base, C2400 (XXXXXX-XXXXXX)
    IPV6 Gateway
    Rate Shaping
    Ram Cache
    50 MBPS COMPRESSION
    SSL, 500 TPS Per Core
    Cluster Multi-Processing
    APM, Limited, Viprion
    App Tunnel
    Anti-Virus Checks
    Base Endpoint Security Checks
    Firewall Checks
    Machine Certificate Checks
    Network Access
    Protected Workspace
    Remote Desktop
    Secure Virtual Keyboard
    APM, Web Application
    SSL, C2200/C2400
    AAM, Core
  VCMP Enabled, C2400 (XXXXXXX-XXXXXXX)
...

But issuing the "same" command via iControl rest does not yield the same information:

curl -sku user:password https://172.18.155.153/mgmt/tm/sys/license/stats?options=detail | json-format

{
  "kind": "tm:sys:license:licensestats",
  "selfLink": "https://localhost/mgmt/tm/sys/license?expandSubcollections\u003dtrue\u0026options\u003ddetail\u0026ver\u003d11.5.4",
  "entries": {
    "https://localhost/mgmt/tm/sys/license/0": {
      "nestedStats": {
        "entries": {
          "applianceSerialNumber": {
            "description": "bld000000s"
          },
          "chassisId": {
            "description": "chs000000s"
          },
          "licensedOnDate": {
            "description": "2012/10/03"
          },
          "licensedVersion": {
            "description": "10.2.3"
          },
          "optionalModules": {
            "description": "{ \"Acceleration Manager, C2400\" \"ADC, Security Bundle, C2400\" \"Advanced Protocols\" \"AFM, C2400\" \"APM, Base, C2400\" \"APM, Max Access Sessions, C2400\" \"APM, Max CCU, C2400\" \"App Mode (TMSH Only, No Root/Bash)\" \"ASM, Bundle, VIPRION\" \"ASM, PSM to ASM Upgrade\" \"ASM, Unlimited, VIPRION\" \"Best Bundle, C2200 / C2400 Platforms\" \"Better Bundle, C2200 / C2400 Platforms\" \"Better to Best Bundle, C2200 / C2400 Platforms\" \"CGN, Viprion\" \"Client Authentication\" \"DNS and GTM (1K QPS), VIPRION\" \"DNS and GTM (Unlimited), VIPRION\" \"DNS Services, VPR\" \"External Interface and Network HSM\" \"FIX Low Latency\" \"GTM\" \"IPI Subscription, 1Yr, C2400\" \"IPI Subscription, 3Yr, C2400\" \"MSM, Unlimited Mailboxes\" \"PEM URL Filtering, Subscription, 1Yr, C2400\" \"PEM URL Filtering, Subscription, 3Yr, C2400\" \"PEM, C2400\" \"PEM, Quota Management, C2X00\" \"Performance Extreme, VPR\" \"PSM, Base\" \"Routing Bundle\" \"SDN Services\" \"SSL, Forward Proxy\" \"SSL, Unlimited, C2400/C4400/C4480\" \"SWG 1Yr, C2200/C2400, 60K URL Sessions\" \"SWG 3Yr, C2200/C2400, 60K URL Sessions\" \"SWG Subscription, 1Yr, C2200/C2400\" \"SWG Subscription, 3Yr, C2200/C2400\" \"URL Filtering Subscription, 1Yr, C2200/C2400\" \"URL Filtering Subscription, 3Yr, C2200/C2400\" \"URLF 1Yr, C2200/C2400, 60K URL Sessions\" \"URLF 3Yr, C2200/C2400, 60K URL Sessions\" \"VIPRION, Multicast Routing\" \"WBA, Bundle, C2400\" }"
          },
          "platformId": {
            "description": "A109"
          },
          "registrationKey": {
            "description": "XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX"
          },
          "serviceCheckDate": {
            "description": "2016/08/16"
          }
        }
      }
    }
  }
}

Maybe there's a different resource to use?

And... while we're on the subject. What happened to /mgmt/tm/sys/performance?

I know Rest is not meant to be used for statistics, but it's what my client uses so that's my only option at the moment (except for tmsh, which is a bit more demanding from the unit in terms of performance).

/Patrik

2 Replies

  • Not supported in REST 11.5.x.

    In case of 12.1.1, the same endpoint you provided gives the response you're looking for:

    perf_SSL_total_TPS
    . With that said, the
    /sys/license
    REST endpoint is looking to be half-way done in terms of development. You're essentially supposed to dig as deep as 10 nested layers to extract this info.

    Put on your digging gloves, and grab your best spade!

    curl -ku 'admin:admin' -X GET https://172.16.99.92/mgmt/tm/sys/license?options=detail | jq .
    
    {
      "entries": {
        "https://localhost/mgmt/tm/sys/license/0": {
          "nestedStats": {
            "entries": {
              "https://localhost/mgmt/tm/sys/license/0/features": {
                "nestedStats": {
                  "entries": {
                    "https://localhost/mgmt/tm/sys/license/0/features/active": {
                      "nestedStats": {
                        "entries": {
                          "perf_SSL_total_TPS[unlimited]"
    
                          (some output omitted)
    
  • And... while we're on the subject. What happened to /mgmt/tm/sys/performance?

     

    What you're trying to do is the equivalent of a 'show' command in tmsh, therefore you need to append /stats to your query.

     

    i.e.

     

    /mgmt/tm/sys/performance/throughput/stats

     

    This works on version 13.0.0 (and probably other older but recent versions) and I can get the SSL TPS value from there.

     

    The output is ugly (it's the same thing tmsh would return). We can probably open a bug / enhancement request for that.