All Applications Analytics and Health

Overview

This API provides health and statistics information for each application. This information can then be used to analyze and describe the performance of each application.

REST Endpoint: /mgmt/ap/query/v1/tenants/default/reports/AllApplicationsList

Requests

Lists health and statistics for all applications.

GET /mgmt/ap/query/v1/tenants/default/reports/AllApplicationsList

Request Parameters

None

Query Parameters

Name Type Default Description
orderby query option health desc Append $orderby: <property name> <asc|desc> to the query url to get a response in ascending or descending order of the specified property.
     health     To request an ordering by application health, append $orderby: health <asc/desc> to the query url. Health order is defined as “Critical”/”Moderate”/”Good”/”Other”. Specify desc to list the applications in “Critical” health first.
     name     To request an ordering by application name, append $orderby: name <asc/desc> to the query url. Specify asc to list by names in alphabetical order.
     lastActivity     To request an ordering by the time of the last configuration update, append $orderby: lastActivity <asc/desc> to the query url. Time is represented as an integer (int64). Specify desc to list the most recent update first.
     activeAlerts     To request an ordering by the number of the alerts currently active for the application, append $orderby: activeAlerts <asc/desc> to the query url. Specify desc to list the application with the greatest number of active alerts first.
     transactionsPerSecond     To request an ordering by the average number of transactions per second, append $orderby: transactionsPerSecond <asc/desc> to the query url. Specify desc to list the application with the most transactions per second first.
     connections     To request an ordering by the number of currently opened connections, append $orderby: connections <asc/desc> to the query url. Specify desc to list the application with the greatest number of currently opened connections first.
     responseTime     To request an ordering by the application’s average response time, append $orderby: responseTime <asc/desc> to the query url. Specify desc to list the application with the longest average response time first.
     protectionMode     To request an ordering by the application’s protection mode, append $orderby: protectionMode <asc/desc> to the query url. Protection mode order is defined as “Not Protected”/”Blocking”/”Transparent”. Specify asc to list the “Not Protected” applications first.
     newConnections     To request an ordering by the average rate of new connections creation, append $orderby: newConnections <asc/desc> to the query url. Specify desc to list the application with the greatest average rate of new connections creation, first.
filter query option None Append $filter <property name> eq <value> to the query url to get a response that includes only the applications that match the specified filter.
     health     To query by application health, append $filter: health <value> to the query url. The allowed values for health are “Critical”/”Moderate”/”Good”/”Other”.
     name     To query by application name, append $filter: name <value> to the query url. Specify asc to list by names in alphabetical order.
     lastActivity     To query by the time of the last configuration update, append $filter: lastActivity <value> to the query url. The time value is an integer (int64).
     activeAlerts     To query by the number of the alerts currently active for the application, append $filter: activeAlerts <value> to the query url. The value is an integer (int64).
     transactionsPerSecond     To query by the average number of transactions per second, append $filter: transactionsPerSecond <asc/desc> to the query url. The value is a number.
     connections     To query by the number of currently opened connections, append $filter: connections <value> to the query url. The value is a number.
     responseTime     To query by the application’s average response time, append $filter: responseTime <value> to the query url. The value is a number.
     protectionMode     To query by the application’s protection mode, append $filter: protectionMode <value> to the query url. The valid values of protection mode are “Not Protected”/”Blocking”/”Transparent”. Specify value as a string.
     newConnections     To query by the average rate of new connections creation, append $filter: newConnections <value> to the query url. The value is a number.
     findings     To query by findings, append $filter: findings <value> to the query url. Valid values for findings are “None”/”Blocking Valid Traffic”/”Successful Attack”.
     badTrafficGrowth     To query by badTrafficGrowth, append $filter: badTrafficGrowth <value> to the query url. The badTrafficGrowth value is boolean. True means that amount of bad traffics grew.
skip query option 0 A paging option which specifies the number of results to skip. For example, append $skip=2 to skip two items in of the queried collection.
top query option 10 A paging option which specifies the maximum number of results per page. For example, append $top=2 two included no more than two items.

Response

HTTP/1.1 200 OK

A properties_collection of applications’ health and metrics.

Name Type Description
items < object > array A collection of applications. Properties defining items. optional
     name string The application’s name optional
     id string (UUID) Application unique ID optional
     protectionMode string The application’s protection mode. Can be one of: “Not Protected”/”Blocking”/”Transparent” optional
     health string The application’s health. Can be one of: “Critical”/”Moderate”/”Good”/”Other”. optional
     findings string Security related findings. Possible findings: “None”/”Blocking Valid Traffic”/”Successful Attack” optional
     status string The current status of this application. Can be one of: “CREATED”/”DEPLOYING”/”FAILED_DEPLOY”/”DEPLOYED”/”DELETING”/”FAILED_DELETE”. optional
     lastActivity integer(int64) The time of the last configuration update for the application. optional
     transactionsPerSecond number The average number of transactions per second optional
     connections number The average number of currently opened connections optional
     newConnections number The average rate of new connections creation optional
     responseTime number The application’s average response time optional
     activeAlerts integer The number of the alerts that are currently active for the application optional
     badTraffic number The percentage of bad traffic optional
     badTrafficGrowth boolean Does the amount of bad traffics grow? optional
     isTroubleshooting boolean Is this application currently collecting enhanced analytics data? optional
kind string Type information for this applications collection object - ap:compose:Report. optional, read-only
lastUpdateMicros integer(int64) Update time (micros) for last change made to an virtual server collection object. time. optional, read-only
totalItems integer The total number of items that match this query optional, read-only
itemsPerPage integer Paging parameter: the maximal number of items per page optional, read-only
startIndex integer Paging parameter: the index of the first item on the current page optional, read-only
totalPages integer Paging parameter: the overall number of pages for this query optional, read-only
pageIndex integer Paging parameter: the sequential number of the current page optional, read-only
currentItemCount integer Paging parameter: the number of items on the current page optional, read-only

Error Response

HTTP/1.1 400 Bad Request

This response status is related to an error during a GET method. A detailed error message displays in the response.

HTTP/1.1 404 Public URI path not registered.

This response occurs when access is denied due to invalid credentials or insufficient permissions.

Permissions

Role Allow
Application_Editor Yes
Application_Manager Yes
Application_Viewer Yes

Examples

List health and statistics for all applications.

Response

{
    "kind": "ap:compose:Report",
    "lastUpdateMicros": 57274705077,
    "result": {
        "totalItems": 1,
        "items": [{
                "protectionMode": "Not Protected",
                "findings": "None",
                "id": "f92ea183-9dc1-3d73-96db-358365da7066",
                "name": "app1",
                "status": "DEPLOYED",
                "lastActivity": 1524376417395,
                "transactionsPerSecond": 66.07777777779987,
                "connections": 0.0,
                "newConnections": 0.0,
                "responseTime": 0.16837621209574533,
                "health": "Good",
                "activeAlerts": 0,
                "badTraffic": 0.0,
                "badTrafficGrowth": false,
                "isTroubleshooting": false
            },
            {
                "protectionMode": "Not Protected",
                "findings": "None",
                "id": "f92ea183-9dc1-3d73-96db-358365da7098",
                "name": "app2",
                "status": "DEPLOYED",
                "lastActivity": 1524394668908,
                "transactionsPerSecond": 66.07777777777778,
                "connections": 135.59244791666666,
                "newConnections": 66.15555555555555,
                "health": "Moderate",
                "activeAlerts": 2,
                "badTraffic": 0.0,
                "badTrafficGrowth": false,
                "isTroubleshooting": true
            }
    }
        ],
        "itemsPerPage": 50,
        "startIndex": 0,
        "totalPages": 1,
        "pageIndex": 0,
        "currentItemCount": 1
    },
    "requestDurationInMillis": 39
}

Order the Response

Format:

$orderby: <property name> <asc|desc>

The available property names are:

$orderby: responseTime desc
$orderby: protectionMode asc

Filter the Response

Base expression format:

$filter <property name> eq <value>

Complex expression format:

$filter <expression> <and|or> <expression>
$filter: health eq 'Critical'
$filter: badTrafficGrowth eq 'true'
$filter: (health eq 'Critical') or (health eq 'Moderate') or (health eq 'Other')
$filter: (findings eq 'Successful Attack') or (findings eq 'Blocking Valid Traffic') or (badTrafficGrowth eq 'true') or (protectionMode eq 'Not Protected')
$filter: (allContent eq '*app*' or name eq '*app*' or health eq '*app*')
$filter: (allContent eq '*app*' or name eq '*app*' or health eq '*app*') and (name eq '*app*') and (name eq 'app')