Application-Centric API Reference
Application Types
Simple Applications
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"port": 443,
"default_certificate_ref": "cert1",
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "cert1",
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"port": 443,
"default_certificate_ref": "cert1",
"servers_port": 8080,
"servers": [
{
"ip": "192.168.10.11"
},
{
"ip": "192.168.10.14"
},
{
"ip": "192.168.10.15"
},
{
"ip": "192.168.10.16",
"port": 8181
}
]
}
}
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"port": 443,
"default_certificate_ref": "cert1",
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14",
"192.168.10.15",
{
"ip": "192.168.10.16",
"port": 8181
}
]
}
}
}
"servers": [
{
"ip": "192.168.10.11",
"weight": 2
},
{
"ip": "192.168.10.14"
},
{
"ip": "192.168.10.15"
},
{
"ip": "192.168.10.16",
"port": 8181,
"weight": 2
}
]
Applications with one VIP and multiple ports
{
"application": {
"name": "app1",
"virtual_ip": "70.122.23.11",
"listeners": [
{
"name": "secure_listener",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "app1_cert",
},
{
"name": "http_listener",
"port": 80,
"protocol": "HTTP"
}
],
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14",
"192.168.10.15",
"192.168.10.16",
"192.168.10.17",
"192.168.154.47"
]
}
}
{
"application": {
"name": "app1",
"virtual_ip": "70.122.23.11",
"listeners": [
{
"name": "secure_listener",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "app1_cert",
"http_to_https_redirect": true
}
],
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14",
"192.168.10.15",
"192.168.10.16",
"192.168.10.17",
"192.168.154.47"
]
}
}
{
"application": {
"name": "app1",
"virtual_ip": "70.122.23.11",
"protocol": "HTTPS",
"port": 443,
"default_certificate_ref": "app1_cert",
"http_to_https_redirect": true,
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14",
"192.168.10.15",
"192.168.10.16",
"192.168.10.17",
"192.168.154.47"
]
}
}
Applications with multiple VIPs
{
"application": {
"name": "app1",
"frontends": [
{
"name": "admin_frontend",
"virtual_ip": "70.122.23.26",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "admin_cert"
},
{
"name": "customer_frontend",
"virtual_ip": "70.122.24.21",
"listeners": [
{
"name": "secure_listener",
"protocol": "HTTPS",
"port": 443,
"default_certificate_ref": "app6_cert",
"http_to_https_redirect": true
}
]
}
],
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14",
"192.168.10.15"
]
}
}
Applications with multiple backends
/account to go to the account_servers and all the requests that start with /checkout go the billing_servers backend.
{
"application": {
"name": "app5",
"virtual_ip": "70.122.23.11",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "portal_cert",
"backends": [
{
"name": "account_servers",
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
]
},
{
"name": "billing_servers",
"servers_port": 8080,
"servers": [
{
"ip": "192.168.11.11"
},
{
"ip": "192.168.11.14"
}
]
}
],
"routes": [
{
"name": "account_route",
"filter": "http.request.uri startswith '/account/'",
"backend_ref": "account_servers"
},
{
"name": "checkout_route",
"filter": "http.request.uri startswith '/checkout/'",
"backend_ref": "billing_servers"
}
]
}
}
{
"name": "account_route",
"filter": "HTTP.REQ.URL.PATH.STARTSWITH(\"/account\")",
"filter_format": "pixl",
"backend_ref": "account_servers"
}
Applications with multiple VIPs and multiple backends
{
"application": {
"name": "app8",
"frontends": [
{
"name": "admin_frontend",
"virtual_ip": "70.122.23.26",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "admin_cert"
},
{
"name": "app_frontend",
"virtual_ip": "70.122.24.21",
"listeners": [
{
"name": "secure_listener",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "app8_cert"
},
{
"name": "http_listener",
"port": 80,
"protocol": "HTTP"
}
]
}
],
"backends": [
{
"name": "account_servers",
"port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
]
},
{
"name": "billing_servers",
"port": 8080,
"servers": [
"192.168.11.11",
"192.168.11.14"
]
}
],
"routes": [
{
"name": "account_route",
"filter": "http.request.uri startswith '/account/'",
"backend_ref": "account_servers"
},
{
"name": "checkout_route",
"filter": "http.request.uri contains '/checkout/'",
"backend_ref": "billing_servers"
}
]
}
}
"routes": [
{
"name": "checkout_route",
"frontend_ref": "app_frontend",
"listener_ref": "secure_listener",
"filter": "http.request.uri contains '/checkout'",
"backend_ref": "billing_servers"
},
{
"name": "ad_route",
"frontend_ref": "app_frontend",
"listener_ref": "http_listener",
"filter": "http.request.uri startswith '/ad'",
"backend_ref": "advert_servers"
},
{
"name": "account_route",
"filter": "http.request.uri startswith '/account/'",
"backend_ref": "account_servers"
}
]
{
"name": "checkout_route",
"frontend_ref": "app_frontend",
"listener_ref": "secure_listener",
"backend_ref": "billing_servers"
}
{
"application": {
"name": "app8",
"frontends": [
{
"name": "admin_frontend",
"virtual_ip": "70.122.23.26",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "admin_cert",
"default_backend_ref": "ad_servers"
},
]
}
}
LoadBalancing Settings
{
"application": {
"name": "app4",
"virtual_ip": "70.122.23.11",
"protocol": "HTTPS",
"default_certificate_ref": "app1_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"load_balancing": {
"algorithm": "LEASTCONNECTION",
"stickiness_type": "SOURCEIP",
"stickiness_timeout": "2hr"
},
"unavailable_redirect_url": "https://www.example.com"
}
}
{
"application": {
"name": "app5",
"virtual_ip": "70.122.23.11",
"protocol": "HTTPS",
"default_certificate_ref": "portal_cert",
"backends": [
{
"name": "account_servers",
"port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"load_balancing": {
"algorithm": "ROUNDROBIN",
"stickiness_type": "COOKIEINSERT"
}
},
{
"name": "billing_servers",
"port": 8080,
"servers": [
"192.168.11.11",
"192.168.11.14"
],
"load_balancing": {
"algorithm": "LEASTCONNECTION",
"stickiness_type": "SOURCEIP"
}
}
],
"routes": [
{
"name": "account_route",
"filter": "http.request.uri startswith '/account/'",
"backend_ref": "account_servers"
},
{
"name": "checkout_route",
"filter": "http.request.uri contains '/checkout/'",
"backend_ref": "billing_servers"
}
]
}
}
{
"application": {
"name": "app5",
"virtual_ip": "70.122.23.11",
"protocol": "HTTPS",
"default_certificate_ref": "portal_cert",
"backends": [
{
"name": "account_servers",
"port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"load_balancing_ref": "standard_settings"
},
{
"name": "billing_servers",
"port": 8080,
"servers": [
{
"ip": "192.168.11.11",
"weight": 3
},
{
"ip": "192.168.11.14"
}
],
"load_balancing_ref": "experimental_settings"
}
],
"routes": [
{
"name": "account_route",
"filter": "http.request.uri startswith '/account/'",
"backend_ref": "account_servers"
},
{
"name": "checkout_route",
"filter": "http.request.uri contains '/checkout/'",
"backend_ref": "billing_servers"
}
],
"load_balancing_defs": [
{
"name": "standard_settings",
"algorithm": "ROUNDROBIN",
"stickiness_type": "SOURCEIP"
},
{
"name": "experimental_settings",
"algorithm": "LEASTCONNECTION",
"stickiness_type": "COOKIEINSERT"
}
]
}
}
Certificates
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
POST /mgmt/api/nextgen/v1/certificates
{
"certificate": {
"name": "app1_cert",
"public_cert": "-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----\n",
"private_key": "-----BEGIN PRIVATE KEY----- … -----END PRIVATE KEY-----\n",
"passphrase": "long secret phrase",
"ca_certs": [
"-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----\n",
"-----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----\n"
]
}
}
-
public_cert: Contents of the certificate public key in PEM format.
-
private_key: Contents of the certificate private key in PEM format.
-
passphrase: The passphrase used to decrypt the private key if one is used.
-
ca_certs: The intermediate/root certificates chain in PEM format. Each certificate should be in a separate string in this list.
> jq -sR . mycert.pem
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"certificate_refs": ["app3_default_cert"],
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_default_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"certificate_refs": ["app3_domain1_cert", "app3_domain2_cert", "app3_domain3_cert"],
"default_certificate_ref": "app3_default_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
TLS Settings
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"tls_settings": {
"security_level": "HIGH",
"session_reuse": true,
"session_timeout": "48s"
},
"servers": [
"192.168.10.11",
"192.168.10.14"
]
}
}
-
TLS1.3-AES256-GCM-SHA384
-
TLS1.3-CHACHA20-POLY1305-SHA256
-
TLS1.2-AES-256-SHA256
-
TLS1.2-AES-128-SHA256
-
TLS1.2-AES256-GCM-SHA384
-
TLS1.2-AES128-GCM-SHA256
-
TLS1.2-ECDHE-RSA-AES-256-SHA384
-
TLS1.2-ECDHE-RSA-AES-128-SHA256
-
TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
-
TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
-
TLS1.2-ECDHE-ECDSA-AES256-SHA384
-
TLS1.2-ECDHE-ECDSA-AES128-SHA256
-
TLS1.2-ECDHE-ECDSA-AES256-GCM-SHA384
-
TLS1.2-ECDHE-ECDSA-AES128-GCM-SHA256
-
TLS1.3-AES128-GCM-SHA256
-
TLS1-AES-256-CBC-SHA
-
TLS1-AES-128-CBC-SHA
-
TLS1-ECDHE-RSA-AES256-SHA
-
TLS1-ECDHE-RSA-AES128-SHA
-
TLS1-ECDHE-ECDSA-AES256-SHA
-
TLS1-ECDHE-ECDSA-AES128-SHA
-
TLS1-DHE-RSA-AES-256-CBC-SHA
-
TLS1-DHE-RSA-AES-128-CBC-SHA
-
TLS1-DHE-DSS-AES-256-CBC-SHA
-
TLS1-DHE-DSS-AES-128-CBC-SHA
{
"tls_settings": {
"tls_protocols": ["TLS-1"],
"tls_cipher_suites": [
"TLS1-EXP1024-RC4-SHA",
"TLS1-EXP1024-DHE-DSS-DES-CBC-SHA",
"TLS1-EXP1024-DHE-DSS-RC4-SHA",
"TLS1-EXP1024-RC4-MD5",
"TLS1-EXP1024-RC2-CBC-MD5"
],
"session_reuse": true,
"session_timeout": "48s"
}
}
Health Checks
-
PING (ICMP)
-
HTTP
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"health_check": {
"type": "PING"
}
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"health_check": {
"type": "PING",
"interval": "10s"
}
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"protocol": "HTTPS",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"health_check": {
"interval": "5s",
"type": "HTTP",
"probe_request_str": "GET /health",
"probe_healthy_response": {
"status_codes": ["200-399"]
},
"num_retries_on_failure": "3",
"num_retries_on_success": "5"
}
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"health_checks": [
{
"name": "ping_mon",
"type": "PING"
},
{
"name": "http_mon",
"type": "HTTP",
"interval": "5s",
"probe_request": {
"path": "/health"
}
}
]
}
}
Rate Limiting
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"rate_limit_settings": {
"name": "rate_limit_1",
"max_requests": 10,
"time_period": "100ms",
"action": "DROP"
}
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"rate_limit_settings": {
"name": "rate_limit_1",
"max_requests": 10,
"time_period": "100ms",
"action": "DROP",
"additional_settings": {
"selectors": [
{
"field": "URL",
"value": "abc.com"
}
]
}
}
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"rate_limit_settings": {
"name": "rate_limit_1",
"max_requests": 10,
"time_period": "100ms",
"action": "DROP",
"limit_type": "SMOOTH"
}
}
}
HTTP Responder
Case 1
raw_response field, you can configure NetScaler to return a raw response for requests that match the expression specified as a filter in the http_responder field.
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"http_responder": {
"name": "admin_response",
"filter": "http.request.uri contains 'admin'",
"response": {
"raw_response": "'404' Not Found"
}
}
}
}
Case 2
responder_html_page_ref field, you can configure NetScaler to return the content of an HTML page for requests that match the expression specified as a filter in the http_responder field. To do so, you must first create an HTML page by using the following request:
POST /mgmt/api/nextgen/v1/responder_html_page/page1
{
"responder_html_page": {
"name": "page1",
"content": "PGh0bWw+PGhlYWQ+PHRpdGxlPkV4YW1wbGU8L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+SGVsbG8sIFdvcmxkITwvaDE+PC9ib2R5PjwvaHRtbD4="
}
}
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"http_responder": {
"name": "admin_response",
"filter": "http.request.uri contains 'admin'",
"response": {
"responder_html_page_ref": "page1"
}
}
}
}
Request Transformation and Response Transformation
Example: URL Rewriting
/old-path to /new-path.
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"request_transform": {
"name": "admin_response",
"filter": "http.request.uri.path equals '/old-path'",
"action": "replace_url_path",
"url_path": "/new-path"
}
}
}
HTTP Settings
{
"application": {
"name": "app10",
"frontends": [
{
"name": "app_frontend",
"virtual_ip": "71.122.24.21",
"listeners": [
{
"name": "secure_listener",
"port": 443,
"protocol": "HTTPS",
"default_certificate_ref": "app3_cert",
"http_to_https_redirect": true,
"http_redirect_port": 81,
"http_config": {
"name": "app_http_settings",
"safety_settings": {
"drop_invalid_requests": false,
"drop_extra_crlf_lines_after_headers": true,
"drop_http_trace_requests": false,
"drop_noncompliant_rfc7230_requests": false,
"drop_connect_requests": false,
"drop_http_header_with_extra_whitespace": false,
"drop_extra_data_exceeding_content_length": false,
"max_header_length": "24820B",
"timeout_for_requests_with_incomplete_headers": "7s",
"timeout_for_receiving_complete_requests": "10s",
"adapt_timeout_value_based_on_traffic_conditions": false,
"action_on_incomplete_requests": "DROP"
},
"optimization_settings": {
"enable_reuse_pool_of_server_connections": true,
"reuse_pool_settings": {
"min_connections_in_pool": 0,
"max_connections_in_pool": 0,
"timeout_for_idle_connections": "1hr"
},
"max_requests_per_connection": 0,
"start_cmp_on_tcp_push_flag": false
},
"allowed_protocols": {
"websocket": false,
"http2": false,
"rtsp": false
},
"http2_settings": {
"strict_cipher_selection": false,
"max_header_list_size": "24576B",
"max_frame_size": "16384B",
"max_concurrent_streams": 100,
"initial_window_size_for_connections": "65535B",
"initial_window_size_for_streams": "65535B",
"max_header_cmp_table_size": "4096B",
"min_server_connections_before_multiplexing": 20,
"max_ping_frames_per_minute": 60,
"max_settings_frames_per_minute": 15,
"max_reset_frames_per_minute": 90,
"max_empty_frames_per_minute": 60
},
"grpc_settings": {
"enable_grpc_length_delimitation": true,
"max_size_for_packet_buffering": "131072B",
"max_time_for_packet_buffering": "1s"
},
"misc_settings": {
"web_logging": true,
"generate_adc_etag_for_response_etag": false
}
}
},
{
"name": "http_listener",
"port": 80,
"protocol": "HTTP"
}
]
}
],
"backends": [
{
"name": "advert_servers",
"servers_port": 8080,
"servers": [
"192.168.10.11",
"192.168.10.14"
]
},
{
"name": "billing_servers",
"servers_port": 8080,
"servers": [
{
"ip": "192.168.11.11",
"weight": 3
},
{
"ip": "192.168.11.14"
}
]
}
],
"routes": [
{
"name": "checkout_route",
"filter": "http.request.uri contains '/checkout/'",
"frontend_ref": "app_frontend",
"listener_ref": "secure_listener",
"backend_ref": "billing_servers"
},
{
"name": "ad_route",
"filter": "http.request.uri contains '/ad/'",
"frontend_ref": "app_frontend",
"listener_ref": "http_listener",
"backend_ref": "advert_servers"
}
]
}
}
Logging
set syslogparams -userDefinedAuditlog YES
{
"application": {
"name": "app3",
"virtual_ip": "70.122.23.11",
"default_certificate_ref": "app3_cert",
"servers": [
"192.168.10.11",
"192.168.10.14"
],
"http_responder": {
"name": "admin_response",
"filter": "http.request.uri contains 'admin'",
"response": {
"raw_response": "'404' Not Found"
},
"audit_log_ref": "log_port"
},
"audit_log_defs": [
{
"name": "log_port",
"log_level": "INFORMATIONAL",
"message": "URL={{HTTP.HOST}}{{HTTP.REQUEST.URI}} SOURCE-PORT={{HTTP.REQUEST.TCP.SRCPORT}} DESTINATION-PORT={{HTTP.REQUEST.TCP.DSTPORT}}"
}
]
}
}
Wireshark Expressions
HTTP.REQ.URL.HOSTNAME.EQ("www.cloud.com")
HTTP.REQ.HEADER("user-agent").CONTAINS("mobile")
http.host == "www.cloud.com"
http.host eq "www.cloud.com"
http.request.header.user-agent contains "mobile"
HTTP.REQ.URL.HOSTNAME.EQ("www.cloud.com") && HTTP.REQ.HEADER("user-agent").CONTAINS("mobile")
http.host == "www.cloud.com" and http.request.header.user-agent contains "mobile"
lower(http.host) == "www.cloud.com" and upper(http.request.header.user-agent) contains "MOBILE"
-
Request Hostname (http.host)
-
Request Whole URL (http.request.uri)
-
Request URL Path (http.request.uri.path)
-
Request URL Query String (http.request.uri.query)
-
Request HTTP Method (http.request.method)
-
Request HTTP Cookie (http.request.header.cookie),
-
Request HTTP Headers (http.request.header.\<header-name>)
-
Equality: eq, ==
-
Inequality: ne, !=
-
Greater or Equal: >=, ge
-
Lesser or Equal: <=, le
-
Greater: >, gt
-
Lesser: <, lt
-
Substring test: contains
-
Substring test: startswith
-
Substring test: endswith
-
Converting to uppercase: upper
-
Converting to lowercase: lower
-
Logical AND: and
-
Logical OR: or
POST /mgmt/api/nextgen/v1/filters/value_sets
{
"value_set": {
"name": "valid_hostnames",
"type": "string",
"values": [
"www.site1",
"www.site2",
"www.site3"
]
}
}
-
equals_any
-
contains_any
-
startswith_any
-
endswith_any
{
"http_responder": {
"name": "admin_response",
"filter": "HTTP.REQ.URL.PATH_AND_QUERY.CONTAINS(\"admin\")",
"filter_format": "pixl",
"response": "'404' Not Found"
}
}
{
"http_responder": {
"name": "admin_response",
"filter": "http.request.uri contains 'admin'",
"response": "'404' Not Found"
}
}
HTTP Callouts
POST /mgmt/api/nextgen/v1/http_callouts/is_ip_allowed
{
"http_callout": {
"name": "is_ip_allowed",
"callout_request": {
"method": "POST",
"scheme": "HTTPS",
"host": "1.2.3.4",
"port": 443,
"path_expression": "/check_valid_ip",
"headers": [
{
"name": "Version",
"value_expression": "1.0.0"
},
{
"name": "Content-Type",
"value_expression": "application/json"
},
{
"name": "api-key",
"value_expression": "8395-3c22-abj4-0a29"
}
],
"body_expression": "{\"client_ip\": \"{{http.request.ip.src}}\"}"
},
"callout_response": {
"return_value_expression": "http.response.code == 200",
"return_value_datatype": "boolean",
"cache_duration": "1min"
}
}
}
{
"http_responder": {
"name": "admin_response",
"filter": NOT HTTP_CALLOUT(is_ip_allowed),
"response": {
"raw_response": "'404' Not Found"
}
}
}
Application Health
GET /mgmt/api/nextgen/v1/applications/{application-name}/health
operational_state is marked as UP
Example Request
GET /mgmt/api/nextgen/v1/applications/my_app/health
Example Response
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"configured_state": "ENABLED",
"operational_state": "UP",
"backends": [
{
"name": "be1",
"configured_state": "ENABLED",
"operational_state": "UP",
"servers": [
{
"ip": "10.102.201.166",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP"
},
{
"ip": "10.102.201.167",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP"
}
]
},
{
"name": "be2",
"configured_state": "ENABLED",
"operational_state": "UP",
"servers": [
{
"ip": "10.102.201.70",
"port": 81,
"configured_state": "ENABLED",
"operational_state": "UP",
"health_checks": [
{
"name": "http_monitor",
"operational_state": "UP",
"total_probes": 518,
"failed_probes": 0,
"last_response_status": "Success - HTTP response code 200 received.",
"last_response_time": "0.683ms"
}
]
}
]
}
]
}
}
Application Statistics
GET /mgmt/api/nextgen/v1/applications/{application-name}/statistics
Example Request
GET /mgmt/api/nextgen/v1/applications/my_app/statistics
Example Response
{
"application": {
"name": "my_app",
"virtual_ip": "70.122.23.11",
"configured_state": "ENABLED",
"operational_state": "UP",
"hits": 23,
"hits_per_sec": 0,
"requests": 23,
"requests_per_sec": 0,
"responses": 23,
"responses_per_sec": 0,
"request_bytes": 16748,
"request_bytes_per_sec": 0,
"response_bytes": 295156,
"response_bytes_per_sec": 0,
"packets_rcvd": 199,
"packets_rcvd_per_sec": 0,
"packets_sent": 307,
"packets_sent_per_sec": 0,
"current_client_connections": 1,
"current_client_est_connections": 0,
"current_server_connections": 0,
"current_persistence_sessions": 0,
"current_backup_persistence_sessions": 0,
"spill_over_hits": 0,
"labeled_connection": 0,
"push_labeled_connection": 0,
"deferred_request": 0,
"deferred_request_per_sec": 0,
"invalid_request_or_response": 0,
"invalid_request_or_response_dropped": 0,
"down_backup_hits": 0,
"current_multipath_tcp_sessions": 0,
"current_multipath_tcp_subflows": 0,
"listeners": [
{
"name": "https_listener",
"protocol": "HTTPS",
"port": 443,
"configured_state": "ENABLED",
"operational_state": "UP",
"hits": 0,
"hits_per_sec": 0,
"requests": 0,
"requests_per_sec": 0,
"responses": 0,
"responses_per_sec": 0,
"request_bytes": 4740,
"request_bytes_per_sec": 0,
"response_bytes": 6064,
"response_bytes_per_sec": 0,
"packets_rcvd": 22,
"packets_rcvd_per_sec": 0,
"packets_sent": 22,
"packets_sent_per_sec": 0,
"current_client_connections": 0,
"current_client_est_connections": 0,
"current_server_connections": 0,
"current_persistence_sessions": 0,
"current_backup_persistence_sessions": 0,
"spill_over_threshold": 0,
"spill_over_hits": 0,
"labeled_connection": 0,
"push_labeled_connection": 0,
"deferred_request": 0,
"deferred_request_per_sec": 0,
"invalid_request_or_response": 0,
"invalid_request_or_response_dropped": 0,
"down_backup_hits": 0,
"current_multipath_tcp_sessions": 0,
"current_multipath_tcp_subflows": 0,
"apdex_for_client_response_times": 1,
"average_client_ttlb": 0
},
{
"name": "http_listener",
"protocol": "HTTP",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP",
"hits": 23,
"hits_per_sec": 0,
"requests": 23,
"requests_per_sec": 0,
"responses": 23,
"responses_per_sec": 0,
"request_bytes": 12008,
"request_bytes_per_sec": 0,
"response_bytes": 289092,
"response_bytes_per_sec": 0,
"packets_rcvd": 177,
"packets_rcvd_per_sec": 0,
"packets_sent": 285,
"packets_sent_per_sec": 0,
"current_client_connections": 1,
"current_client_est_connections": 0,
"current_server_connections": 0,
"current_persistence_sessions": 0,
"current_backup_persistence_sessions": 0,
"spill_over_threshold": 0,
"spill_over_hits": 0,
"labeled_connection": 0,
"push_labeled_connection": 0,
"deferred_request": 0,
"deferred_request_per_sec": 0,
"invalid_request_or_response": 0,
"invalid_request_or_response_dropped": 0,
"down_backup_hits": 0,
"current_multipath_tcp_sessions": 0,
"current_multipath_tcp_subflows": 0,
"apdex_for_client_response_times": 1,
"average_client_ttlb": 0
}
],
"backends": [
{
"name": "colddrinks",
"configured_state": "ENABLED",
"operational_state": "UP",
"hits": 10,
"hits_per_sec": 0,
"requests": 10,
"requests_per_sec": 0,
"responses": 10,
"responses_per_sec": 0,
"request_bytes": 5170,
"request_bytes_per_sec": 0,
"response_bytes": 287415,
"response_bytes_per_sec": 0,
"http2_requests": 0,
"http2_requests_per_sec": 0,
"http2_responses": 0,
"http2_responses_per_sec": 0,
"packets_rcvd": 72,
"packets_rcvd_per_sec": 0,
"packets_sent": 226,
"packets_sent_per_sec": 0,
"current_client_connections": 0,
"current_client_est_connections": 0,
"current_server_connections": 0,
"current_persistence_sessions": 0,
"current_backup_persistence_sessions": 0,
"requests_in_surge_queue": 0,
"spill_over_threshold": 0,
"spill_over_hits": 0,
"labeled_connection": 0,
"push_labeled_connection": 0,
"deferred_request": 0,
"deferred_request_per_sec": 0,
"invalid_request_or_response": 0,
"invalid_request_or_response_dropped": 0,
"down_backup_hits": 0,
"current_multipath_tcp_sessions": 0,
"current_multipath_tcp_subflows": 0,
"apdex_for_client_response_times": 1,
"average_client_ttlb": 0,
"num_tcpconn_reasmq_75%_reached": 0,
"num_tcpconn_reasmq_flushed": 0,
"num_server_busy_error": 0,
"num_server_busy_error_per_sec": 0,
"request_retry_count": 0,
"max_retry_count_exceeded": 0,
"servers": [
{
"ip": "10.146.105.23",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP",
"health_checks": [
{
"name": "http_monitor",
"operational_state": "UP",
"total_probes": 141,
"failed_probes": 0,
"last_response_status": "Success - HTTP response code 200 received.",
"last_response_time": "0.008ms"
}
],
"average_server_ttfb": 0,
"requests": 145,
"requests_per_sec": 0,
"responses": 145,
"responses_per_sec": 0,
"request_bytes": 11163,
"request_bytes_per_sec": 17,
"response_bytes": 40076205,
"response_bytes_per_sec": 81786,
"current_client_connections": 0,
"requests_in_surge_queue": 0,
"current_server_connections": 11,
"current_server_est_connections": 1,
"connection_reuse_pool": 1,
"num_tcpconn_reasmq_75%_reached": 0,
"num_tcpconn_reasmq_flushed": 0
},
{
"ip": "10.146.105.24",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP",
"health_checks": [
{
"name": "http_monitor",
"operational_state": "UP",
"total_probes": 141,
"failed_probes": 0,
"last_response_status": "Success - HTTP response code 200 received.",
"last_response_time": "0.657ms"
}
],
"average_server_ttfb": 0,
"requests": 145,
"requests_per_sec": 0,
"responses": 145,
"responses_per_sec": 0,
"request_bytes": 11111,
"request_bytes_per_sec": 17,
"response_bytes": 40362330,
"response_bytes_per_sec": 81786,
"current_client_connections": 0,
"requests_in_surge_queue": 0,
"current_server_connections": 10,
"current_server_est_connections": 0,
"connection_reuse_pool": 0,
"num_tcpconn_reasmq_75%_reached": 0,
"num_tcpconn_reasmq_flushed": 0
}
]
},
{
"name": "hotdrinks",
"configured_state": "ENABLED",
"operational_state": "UP",
"hits": 13,
"hits_per_sec": 0,
"requests": 13,
"requests_per_sec": 0,
"responses": 13,
"responses_per_sec": 0,
"request_bytes": 6838,
"request_bytes_per_sec": 0,
"response_bytes": 1677,
"response_bytes_per_sec": 0,
"http2_requests": 0,
"http2_requests_per_sec": 0,
"http2_responses": 0,
"http2_responses_per_sec": 0,
"packets_rcvd": 13,
"packets_rcvd_per_sec": 0,
"packets_sent": 13,
"packets_sent_per_sec": 0,
"current_client_connections": 0,
"current_client_est_connections": 0,
"current_server_connections": 0,
"current_persistence_sessions": 0,
"current_backup_persistence_sessions": 0,
"requests_in_surge_queue": 0,
"spill_over_threshold": 0,
"spill_over_hits": 0,
"labeled_connection": 0,
"push_labeled_connection": 0,
"deferred_request": 0,
"deferred_request_per_sec": 0,
"invalid_request_or_response": 0,
"invalid_request_or_response_dropped": 0,
"down_backup_hits": 0,
"current_multipath_tcp_sessions": 0,
"current_multipath_tcp_subflows": 0,
"apdex_for_client_response_times": 1,
"average_client_ttlb": 0,
"num_tcpconn_reasmq_75%_reached": 0,
"num_tcpconn_reasmq_flushed": 0,
"num_server_busy_error": 0,
"num_server_busy_error_per_sec": 0,
"request_retry_count": 0,
"max_retry_count_exceeded": 0,
"servers": [
{
"ip": "10.146.105.25",
"port": 80,
"configured_state": "ENABLED",
"operational_state": "UP",
"health_checks": [
{
"name": "http_monitor",
"operational_state": "UP",
"total_probes": "141",
"failed_probes": "0",
"last_response_status": "Success - HTTP response code 200 received.",
"last_response_time": "0.766ms"
}
],
"average_server_ttfb": 0,
"requests": 153,
"requests_per_sec": 0,
"responses": 153,
"responses_per_sec": 0,
"request_bytes": 15378,
"request_bytes_per_sec": 17,
"response_bytes": 93020897,
"response_bytes_per_sec": 189835,
"current_client_connections": 0,
"requests_in_surge_queue": 0,
"current_server_connections": 9,
"current_server_est_connections": 0,
"connection_reuse_pool": 0,
"num_tcpconn_reasmq_75%_reached": 0,
"num_tcpconn_reasmq_flushed": 0
}
]
}
]
}
}