Using the Advanced URLs for Edge SWG Diagnostic Reporting
search cancel

Using the Advanced URLs for Edge SWG Diagnostic Reporting

book

Article ID: 422790

calendar_today

Updated On:

Products

ProxySG Software - SGOS

Issue/Introduction

You can use the diagnostic reporting feature (introduced in SGOS 7.4.11.1) to diagnose session-related issues. To use this feature, you must have a minimum of SGOS 7.4.11.1 and SGAC 2.2.9.

The advanced URLs for diagnostic reporting provide the raw data that the diagnostic reporting reports use to populate the charts and tables in the Admin Console (Reports > Diagnostic Reporting). While the Admin Console offers a tailored view, the advanced URLs allow you to view and filter the raw data for a more customized perspective. For example, the reports in the Admin Console display the top ten entries, but you can use the advanced URLs to view the top 20 or more entries. This article describes how to access the advanced URLs, what information they offer, and how these URLs correspond to the reports in the Admin Console.

Resolution

To access the advanced URLs for diagnostic reporting, use the following format:

https://ip_address:port_number/advanced_url

where:

  • ip_address: The IP address of your Edge SWG appliance.
  • port_number: The port you use to access the Edge SWG appliance. The default management port is 8082.
  • advanced_url: The path to the specific advanced URL. You can find this path in the subsections that follow.

Generate Reports with Report Advanced URLs

The appliance uses the Report URLs to populate the graphs and tables on the Reports page in the Admin Console (Reports > Diagnostic Reporting).

Format

/tracking/report?name[&parm=value]*

where:

  • name: The name of one of the verbs in the following Report Verbs table.
  • value: (Optional) The parameters by which to filter the results. For a list of parameters, see the following Report Parameters table.

Example

To view the FTP proxy sessions that were captured by the Report advanced URL:

https://ip_address:port_number/tracking/report?sessions&session_type=ftp_proxy*

Example Data

{"title": "Sessions", "yAxis": "", "series": [{"name": "All Sessions", "data": [[1765489591206, 0]]}

,{"name": "Matching Sessions", "data": [[1765489591208, 0]]}

]}

 

Report Verbs

Name Equivalent Admin Console Element Description of the advanced URL
sessions
Concurrent Sessions chart The number of active sessions since diagnostic reporting was enabled
connections
The number of active connections since diagnostic reporting was enabled
http_requests
Concurrent HTTP Requests chart A count of the HTTP requests that occurred in each time interval
cpu
Session CPU Usage chart The number of CPU samples consumed since diagnostic reporting was enabled
memory
Session Memory Usage chart The amount of memory in bytes used since diagnostic reporting was enabled
bandwidth
Session Bandwidth Usage chart The amount of bandwidth consumed since diagnostic reporting was enabled
top_cpu
Top 10 Sessions by CPU Usage table A list of the top sessions that consumed the most CPU cycles
top_memory
Top 10 Sessions by Memory Usage table A list of the top sessions that consumed the most memory
top_bandwidth
Top 10 Sessions by Bandwidth Usage table A list of the top sessions that consumed the most bandwidth

 

Report Parameters

Name Description Values
session_type
Filters the results on the session type
  • ftp_proxy
  • http_proxy
  • ssl_proxy
  • unknown_proxy
  • tcp_tunnel
  • udp_tunnel
  • access_log
  • dns
  • http
  • icap
  • ssh
socket_type
Filters the results on the socket type
  • downstream
  • upstream
  • internal
client_subnet
Filters results on the specified client network IPv4/IPv6 address, IPv4/IPv6 mask (for example, client_subnet=###.###.###.0/24)
proxy_subnet
Filters results on the specified proxy address IPv4/IPv6 address, IPv4/IPv6 mask (for example, proxy_subnet=###.###.###.###)
server_subnet
Filters results on the specified server network IPv4/IPv6 address, IPv4/IPv6 mask (for example, server_subnet=fe::0/64)
client_port
Filters results on the specified client ports Port or port range. Ports can be an integer from 1 through 65536 (for example, 12343-35656)
proxy_port
Filters results on a range of proxy ports Port or port range. Ports can be an integer from 1 through 65536 (for example, 8080-9090)
server_port
Filters results on a range of server ports Port or port range. Ports can be an integer or range from 1 through 65536 (for example, 80-90)
http_method
Filters results on the specified HTTP method

Any HTTP method used on the internet today, such as:

  • CONNECT
  • DELETE
  • GET
  • HEAD
  • OPTIONS
  • PATCH
  • POST
  • PUT
http_response_code
Filters results on a range of HTTP response codes A range from 100 through 599
http_url
Filters results on requests with URLs that contain a string A URL string to match against (for example, www.example.com)
session_id
Provides a report for one or more specified sessions The session ID to match against.
num_intervals
Specifies how many data points to return in the report An integer
interval_size
Specifies the width (in seconds) of each data point to return in the report An integer

 

Query Session and Socket Details with Information Advanced URLs

The appliance uses the Information URLs to populate the details for the Top 10 tables on the Reports page in the Admin Console (Reports > Diagnostic Reporting, expand the Top 10 table and click the View Details icon in the Action column). These details provide information on the happenings of a specific data point.

Format

/tracking/info?name[&id=id]*

where:

  • name: The name of one of the verbs in the following Information Verbs table.
  • id: The ID of the session or socket for which to return the results. This parameter is not required for the other verbs.

Example 1

To retrieve information on the current configuration of diagnostic reporting:

https://ip_address:port_number/tracking/info?config

Example 1 Data

{"enabled": false, "sampling_interval": 10 }

Example 2

To retrieve information on a specific session ("session_id":1):

https://ip_address:port_number/tracking/info?session&id=1

Example 2 Data

{"id": 1, "type": "ICAP", "host": "###.###.###.###", "sockets": [{"id":1, "type": "internal", "source_address": "###.###.###.###","source_port": 56967,"destination_address": "###.###.###.###","destination_port": 443,"protocol": "TCP"}

]}

 

Information Verbs

Name Equivalent Admin Console Element Description of the advanced URL Parameters
db
Tracked Resources table Gathers database statistics (number of records on config page)
config
Enable Diagnostic Reporting toggle and Sampling Interval Gathers current configuration details
reports
Diagnostic Reporting Reports Determines the current set of supported reports and filters
session
Tracked Resources table Gathers information about a particular session
id=id
socket
Tracked Resources table Gathers information about a particular socket
id=id

 

View Statistics for Diagnostic Objects with the Statistics Advanced URLs

The Statistics URLs provide statistics for diagnostic objects.

Format

/tracking/statistics?name[&id=id]*

where:

  • name: The name of one of the verbs in the following Statistics Verbs table.
  • id: The ID of the socket or HTTP request for which to return the results. This parameter is not used for the other verbs.

Example 1

To view statistics on the tracking monitor:

https://ip_address:port_number/tracking/statistics?monitor

Example 1 Data

{"title": "Monitor Statistics", "statistics": [

 { "stmt_steps_performed": 909750 }

, { "stmt_progress_callouts": 63 }

, { "stmt_progress_timeouts": 0 }

, { "stmt_construct_failures": 0 }

, { "stmt_construct_busy_retry": 0 }

, { "stmt_construct_busy_failures": 0 }

, { "stmt_bind_failures": 0 }

, { "stmt_row_handler_failures": 0 }

, { "stmt_iterate_busy_failures": 7 }

, { "stmt_iterate_other_failures": 0 }

, { "stmt_begin_transaction_failures": 0 }

, { "stmt_end_transaction_busy": 3 }

, { "stmt_end_transaction_failures": 0 }

, { "stmt_abort_transaction_failures": 0 }

, { "sqlite_open_errors": 0 }

, { "sqlite_close_errors": 0 }

, { "sqlite_busy_errors": 0 }

, { "sqlite_lock_errors": 0 }

, { "sqlite_foreignkey_errors": 0 }

, { "sqlite_warnings": 2 }

, { "sqlite_other_error_counter": 0 }

, { "unfinished_transactions": 3 }

, { "unfinished_transactions_busy": 2 }

, { "create_socket_future": 10764 }

, { "destroy_socket_future": 10764 }

, { "create_session_future": 4011 }

, { "destroy_session_future": 4011 }

, { "create_http_request_future": 94 }

, { "destroy_http_request_future": 94 }

, { "create_socket": 10764 }

, { "destroy_socket": 10764 }

, { "create_session": 3488 }

, { "destroy_session": 3542 }

, { "create_http_request": 94 }

, { "destroy_http_request": 94 }

, { "async_operations_size": 0 }

, { "sync_operations_size": 0 }

, { "disposable_operations_size": 0 }

, { "sockets_size": 0 }

, { "sessions_size": 0 }

, { "http_requests_size": 0 }

, { "log_size": 0 }

, { "async_queue_drops": 0 }

, { "disposable_update_drops": 0 }

]}

Example 2

To view statistics on the socket with the ID of 1:

https://ip_address:port_number/tracking/statistics?socket&id=1

Example 2 Data

{"id":1, "stats": [{"name": "Start Time", "value": 1764801803700, "units": "timestamp"},

{"name": "End Time", "value": 1764801803951, "units": "timestamp"},

{"name": "State", "value": "CLOSED"},

{"name": "Transmitted", "value": 5307, "units": "B"},

{"name": "Received", "value": 9460, "units": "B"},

{"name": "Send Window", "value": 60288, "units": "B"},

{"name": "Receive Window", "value": 262480, "units": "B"},

{"name": "Congestion Window", "value": 10579, "units": "B"},

{"name": "Congestion Events", "value": 0},

{"name": "Out of Order Packets", "value": 0},

{"name": "Roundtrip Time", "value": 1362, "units": "ms"},

{"name": "Roundtrip Variance", "value": 1362, "units": "ms"}

]}

 

Statistics verbs

Name Equivalent Admin Console Element Description of the advanced URL Parameters
socket
Tracked Resources table Gather statistics about a particular socket
id=id
monitor
Gather debug statistics about the tracking monitor
http_request
Tracked Resources table Gather statistics about a particular HTTP request
id=id

 

Download Session Information in JSON from the Download Advanced URLs

The appliance uses the Download URLs to generate JSON files that contain session data (Configuration > Diagnostics > Diagnostic Reporting and click Download).

Format

/tracking/download?name

Where name is the name of one of the verbs in the following Download Verbs table.

Example

To download a JSON export for HTTP request data:

https://ip_address:port_number/tracking/download?http_request

 

Download Verbs

Name Equivalent Admin Console Element Description of the advanced URL Report
socket
Tracked Resources table Download the socket table
socket_statistics
Tracked Resources table Download the socket statistics table
session
Tracked Resources table Download the session table
session_statistics
Tracked Resources table Download the session statistics table
http_request
Tracked Resources table Download the HTTP request table
http_request_statistics
Tracked Resources table  Download the HTTP request statistics table
all
Download All button (under Tracked Resources section) Download all tables combined into a single JSON