For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

syncretism's avatar
syncretism
Icon for Nimbostratus rankNimbostratus
May 06, 2019

Understanding the Significance of Nested Stats (GTM)

(EDIT: I pasted some scrubbed output in a "comment" below. I hope it makes my question clearer)

We recently updated our GTM to version 12.1.4 and I'm seeing some unexpected results in iControl REST's output. If I query a particular pool member that I know has been disabled, I get two rounds of status.availbilityState, status.enabledState and status.statusReason back, and they don't match:

          "status.availabilityState": {
        "description": "available"
      },
      "status.enabledState": {
        "description": "enabled"
      },
      "status.statusReason": {
        "description": "Available"
      }
`


Then, further nested is another JSON response, and it's reporting accurate state:

`                      "status.availabilityState": {
                    "description": "available"
                  },
                  "status.enabledState": {
                    "description": "disabled"
                  },
                  "status.statusReason": {
                    "description": "Available: disabled directly"
                  }
`

What's the difference between these two, and why aren't they the same? Even something as simple as this cURL command returns the wrong value:

`[user@host ~]$ curl -k --user f5User:${RD_SECUREOPTION_F5_PASSWORD} -X GET -H "Accept: application/json" https://${RD_OPTION_GTM_SERVER}/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/stats?\$select=status.enabledState | jq '.'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   287  100   287    0     0   1131      0 --:--:-- --:--:-- --:--:--  1134
{
  "entries": {
    "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/~Common~Pool-myservice-sts.gslb-int.mydomain.com:A/stats": {
      "nestedStats": {
        "entries": {
          "status.enabledState": {
            "description": "enabled"
          }
        }
      }
    }
  }
}

Thanks!

2 Replies

  • Hello syncretism.

     

    It's slightly different

     

    • enabledState - User defined availability (Disable, Enable, ForceOffline)
    • statusReason - Environment availability (Green, Blue, Red, Yellow)

    KR, Dario.

     

  • [user@host ~]$ curl -k --user f5User:${RD_SECUREOPTION_F5_PASSWORD} -X GET -H "Accept: application/json" https://${RD_OPTION_GTM_SERVER}/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/stats | jq '.'
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  2118  100  2118    0     0   9503      0 --:--:-- --:--:-- --:--:--  9540
    {
      "kind": "tm:gtm:pool:a:members:membersstats",
      "generation": 210,
      "selfLink": "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/stats?ver=12.1.4",
      "entries": {
        "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/~Common~Pool-myservice-sts.gslb-int.mydomain.com:A/stats": {
          "nestedStats": {
            "kind": "tm:gtm:pool:a:members:membersstats",
            "selfLink": "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/~Common~Pool-myservice-sts.gslb-int.mydomain.com:A/stats?ver=12.1.4",
            "entries": {
              "alternate": {
                "value": 413
              },
              "dropped": {
                "value": 0
              },
              "fallback": {
                "value": 0
              },
              "tmName": {
                "description": "/Common/Pool-myservice-sts.gslb-int.mydomain.com"
              },
              "poolType": {
                "description": "A"
              },
              "preferred": {
                "value": 3940
              },
              "returnFromDns": {
                "value": 0
              },
              "returnToDns": {
                "value": 0
              },
              "status.availabilityState": {
                "description": "available"
              },
              "status.enabledState": {
                "description": "enabled"
              },
              "status.statusReason": {
                "description": "Available"
              },
              "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/~Common~Pool-myservice-sts.gslb-int.mydomain.com:A/members/stats": {
                "nestedStats": {
                  "entries": {
                    "https://localhost/mgmt/tm/gtm/pool/a/Pool-myservice-sts.gslb-int.mydomain.com/members/~Common~f5-ALB-PAIR:IP_ADDR-443/~Common~Pool-myservice-sts.gslb-int.mydomain.com:A/members/IP_ADDR-443:~Common~f5-ALB-PAIR/stats": {
                      "nestedStats": {
                        "entries": {
                          "alternate": {
                            "value": 18
                          },
                          "fallback": {
                            "value": 0
                          },
                          "poolName": {
                            "description": "/Common/Pool-myservice-sts.gslb-int.mydomain.com"
                          },
                          "poolType": {
                            "description": "A"
                          },
                          "preferred": {
                            "value": 33
                          },
                          "serverName": {
                            "description": "/Common/f5-ALB-PAIR"
                          },
                          "status.availabilityState": {
                            "description": "available"
                          },
                          "status.enabledState": {
                            "description": "disabled"
                          },
                          "status.statusReason": {
                            "description": "Available: disabled directly"
                          },
                          "vsName": {
                            "description": "IP_ADDR-443"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }