Pool members (dlbv3)

Pool members are logical, physical objects representing a single internal physical server IP address and listener port. You assign pool members to pools and use them to load balance traffic directed to the pool associated with a virtual server configured in the load balancer.

Use the following operations to view and manage pool members.

Retrieve pool members for a pool

Retrieve a list of members associated with a specific pool ID.

GET /pools/{poolId}/members

This operation does not accept a request body.

Response

{
  "data": [
    {
      "id": "127.0.0.1:80",
      "port": {
        "type": "equal",
        "value": 80
      },
      "monitorRule": {},
      "address": "127.0.0.1",
      "appService": null,
      "connectionLimit": 0,
      "description": "none",
      "dynamicRatio": 1,
      "inheritProfile": "enabled",
      "logging": "disabled",
      "priorityGroup": 0,
      "rateLimit": "disabled",
      "ratio": 1,
      "session": "monitor-enabled",
      "state": "unchecked",
      "metadata": {},
      "profiles": null
    }
  ]
}

Create a pool member in a pool

Create a pool member by adding an existing node to a specified pool.

POST /pools/{poolId}/members

Request body

{
    "nodeId": "<nodeId>",
    "port": {
        "type": "equal",
        "value": 80
    }
}

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "resource": "<poolId:str>",
        "status": "PROCESSING",
        "timestamp": "2016-03-17T09:36:42.5274609Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Retrieve statistics for pool members

Retrieve statistics for all pool members in a specified pool, including configuration settings, availability, and monitoring status.

GET /pools/{poolId}/members/stats

This operation does not accept a request body.

Response

{
  "data": [
    {
      "id": "test1:80",
      "address": "127.0.0.1",
      "connq": {
        "ageEdm": 0,
        "ageEma": 0,
        "ageHead": 0,
        "ageMax": 0,
        "depth": 0,
        "serviced": 0
      },
      "curSessions": 0,
      "monitorRule": {
        "monitors": [
          "default"
        ],
        "minimum": "all"
      },
      "monitorStatus": "address-down",
      "nodeName": "test1",
      "poolName": "test2",
      "port": {
        "type": "equal",
        "value": 80
      },
      "serverside": {
        "bitsIn": 0,
        "bitsOut": 0,
        "curConns": 0,
        "maxConns": 0,
        "pktsIn": 0,
        "pktsOut": 0,
        "totConns": 0
      },
      "sessionStatus": "enabled",
      "status": {
        "availabilityState": "unknown",
        "enabledState": "enabled",
        "statusReason": "Pool member does not have service checking enabled"
      },
      "totRequests": 0
    }
  ]
}

Retrieve pool member configuration

Retrieve configuration, monitor settings, and other data for a pool member.

GET /pools/{poolId}/members/{memberId}

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "127.0.0.1:80",
            "address": "127.0.0.1",
            "appService": null,
            "connectionLimit": 0,
            "description": null,
            "dynamicRatio": 1,
            "inheritProfile": "enabled",
            "logging": "disabled",
            "priorityGroup": 0,
            "port": {
                "type": "equal",
                "value": 70
            },
            "rateLimit": "disabled",
            "ratio": 1,
            "session": "user-enabled",
            "state": "unchecked",
            "metadata": {},
            "monitorRule": {},
            "profiles": []
        }
    ]
}

Update pool member configuration

Update configuration settings for a specified pool member.

PUT /pools/{poolId}/members/{memberId}

Request body

{
    "appService": null,
    "connectionLimit": 0,
    "description": null,
    "dynamicRatio": 1,
    "inheritProfile": "enabled",
    "logging": "enabled",
    "priorityGroup": 0,
    "rateLimit": "enabled"
 }

Response

Update a pool member by pool ID.

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<poolId:str>",
        "timestamp": "2016-03-17T09:36:42.5274609Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Remove a pool member from pool

Remove a pool member by a specified pool ID.

DELETE /pools/{poolId}/members/{memberId}

This operation does not accept a request body.

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<poolId:str>",
        "timestamp": "2016-03-17T09:36:42.5274609Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Retrieve a pool member monitor rule

Retrieves configuration settings for a monitor rule applied to a specified pool member.

GET /pools/{poolId}/members/{memberId}/monitor-rule

This operation does not accept a request body.

Response

{
  "data": [
    {
      "minimum": "all",
      "names": [
            "default"
      ]
    }
  ]
}

Update a monitor rule for pool member

Update the configuration settings for the monitor rule applied to a specified pool member.

PUT /pools/{poolId}/members/{memberId}/monitor-rule

Request body

{
    "names": [
        "tcp"
    ],
    "minimum": 1
}

Response

Returns event information for the update monitor rule request. Use the event ID to get event status and output information.

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<poolId:str>",
        "timestamp": "2016-03-16T17:09:53.1059638Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Create a monitor rule for a pool member

Add monitors rule to a pool member in a specified pool.

POST /pools/{poolId}/members/{memberId}/monitor-rule

Request body

{
  "names": [
    "tcp",
    "https"
  ],
  "minimum": 1
}

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<poolId:str>",
        "timestamp": "2016-03-24T10:41:08.6194067Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Remove a monitor rule from a pool member

Remove the monitor rule applied to a specified pool member (memberId) in a specified pool (poolId).

DELETE /pools/{poolId}/members/{memberID}/monitor-rule

Response

Returns event information for the update monitor rule request. Use the event ID to retrieve event status and output information.

{
    "data": {
        "eventId": "<eventId:str>",
        "resource": "<poolId:str>",
        "eventRef": "/events/<eventId:str}",
        "status": "PROCESSING",
        "timestamp": "2016-03-08T17:22:33.6249648Z"
    }
}

Retrieve statistics for a pool member

Retrieve configuration, monitor settings, and other data for a pool member.

GET /pools/{poolId}/members/{memberId}/stats

This operation does not accept a request body.

Response

{
    "data": [
        {
            "id": "test1:80",
            "address": "127.0.0.1",
            "connq": {
                "ageEdm": 0,
                "ageEma": 0,
                "ageHead": 0,
                "ageMax": 0,
                "depth": 0,
                "serviced": 0
            },
            "curSessions": 0,
            "monitorRule": {
                "monitors": [
                    "default"
                ],
                "minimum": "all"
            },
            "monitorStatus": "address-down",
            "nodeName": "test1",
            "poolName": "test2",
            "port": {
                "type": "equal",
                "value": 80
            },
            "serverside": {
                "bitsIn": 0,
                "bitsOut": 0,
                "curConns": 0,
                "maxConns": 0,
                "pktsIn": 0,
                "pktsOut": 0,
                "totConns": 0
            },
            "sessionStatus": "enabled",
            "status": {
                "availabilityState": "unknown",
                "enabledState": "enabled",
                "statusReason": "Pool member does not have service checking enabled"
            },
            "totRequests": 0
        }
    ]
}

Disable a pool member for maintenance

This setting allows the pool member (a combination of IP and port) to accept only new connections that match an existing persistence session. Use this feature to prevent new connections to a pool member without affecting existing client connections on the same pool member.

To monitor connection stats of a pool member, see: Retrieve statistics for pool members. Review the first object in the data array. The serverside object shows stats on activity to the member.

To re-enable the pool member, see Enable a pool member after maintenance.

It is important to understand differences between Disable versus offline.

PUT /pools/{pool_ID}/members/{member_ID}

Request body

{
    "session": "user-disabled"
}

Response

{
    "data": {
        "eventId": "<eventId:str>",
        "status": "PROCESSING",
        "resource": "<poolId:str>",
        "timestamp": "2016-03-17T09:36:42.5274609Z",
        "eventRef": "/events/<eventId:str>"
    }
}

Enable a pool member after maintenance

This setting allows the pool member (a combination of IP and Port) to accept new connections. Use this feature to enable a pool member after maintenance.

PUT /pools/{pool_ID}/members/{member_ID}

Request body

{
    "session": "user-enabled"
}

Response

{
     "data": {
         "eventId": "<eventId:str>",
         "status": "PROCESSING",
         "resource": "<poolId:str>",
         "timestamp": "2016-03-17T09:36:42.5274609Z",
         "eventRef": "/events/<eventId:str>"
     }
 }

Offline a pool member for maintenance

This setting enables you to force a pool member offline and allows only active connections.

It is important to understand differences between Disable versus offline.

Request body

{
    "state": "user-down"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}

Online a pool member after maintenance

Use this setting to bring a pool member back online, usually after maintenance.

Request body

{
    "state": "user-up"
}

Response

{
"data": {
    "eventId": "<eventId:str>",
    "status": "PROCESSING",
    "resource": "<nodeId:str>",
    "timestamp": "2016-03-08T17:22:33.6249648Z",
    "eventRef": "/events/<eventId:str>"
    }
}