Console Light Web Monitoring Panel#

Angie provides a wide range of possibilities to monitor its work; in addition to the metrics API and the http_prometheus module, you can use a visual console that installs beside the server.

Console Light#

Console Light is a lightweight, real-time activity monitoring interface that displays key server performance metrics. The console is based on the API capabilities of Angie; activity monitoring data is pulled in real time. In addition, the console allows you to dynamically modify Angie configuration if the API itself provides this capability.

Example of a deployed and configured console: https://console.angie.software/

Version History#

Version

Release Date

Changes

1.6.1

23.01.2025

  • Fixed typos

  • Fixed a development-time project build issue

1.6.0

23.01.2025

  • Internationalisation support added with available locales: en, ru.

  • Sticky header feature added to the table component.

  • Support for data measurement units in pebibytes (PiB).

  • Fixed incorrect value counter in the HTTP Upstreams widget on the index page.

  • Default values are now correctly used on the HTTP Upstreams page in the response context.

1.5.0

Not publicly released.

1.4.0

08.08.2024

Monitoring status display added to the website's favicon.

1.3.0

28.04.2024

Added the ability to switch the server to the draining state in the upstream context.

1.2.1

26.12.2023

Added active health checks in the Stream context.

1.2.0

25.12.2023

Added upstream editing in the Stream context.

Installation and configuration#

Console Light is published as angie-console-light (Angie) and angie-pro-console-light (Angie PRO) in our repositories and can be installed like any other package; also, you can download the source code from our website or GitHub.

After installation, configure the console by adding the following location inside a server block in the configuration file (mind the comments):

location /console/ {

    # Local access only
    allow 127.0.0.1;
    deny all;

    auto_redirect on;

    alias /usr/share/angie-console-light/html/;
    # FreeBSD only:
    # alias /usr/local/www/angie-console-light/html/;
    index index.html;

    location /console/api/ {
        api /status/;
    }

    # For editing features to work after authentication (PRO only)
    location /console/api/config/ {

        auth_basic           "Protected site";
        auth_basic_user_file conf/htpasswd;

        api /config/;
    }
}

Don't forget to apply the modified configuration:

$ sudo angie -t && sudo service angie reload

After this, the console will be available on the server specified by the server block, at the path specified for the location; above, the path is set as /console/.

As in the sample above, authentication can be enabled for an arbitrary API section, for example:

location /console/server_zones/ {
    auth_basic           "Protected site";
    auth_basic_user_file conf/htpasswd;
}

You can also restrict access to an arbitrary section of the configured console location, for example:

location /console/api/resolvers/ {
    deny all;
}

Interface#

The console is a single screen with a set of tabs, each containing several widgets with monitoring data.

Hint

In the sections below, the interface elements are described from left to right.

Angie Tab#

Console Light - main tab


This is the main tab where the main Angie monitoring indicators based on data from several API sections are displayed.

About Widget#

Displays Angie version number with a link to the relevant documentation set, as well as the server address and the last restart time.

Besides, if the api_config_files directive is enabled, the Configs link opens a list of configuration files that were loaded on the server. Each file can be then opened in a compact view with syntax highlighting.

Connections Widget#

Displays basic server connection statistics, generated from the /status/connections/ API section:

Current

Current connections

Accepted/s

Connections accepted per second

Active

Active connections

Idle

Idle connections

Dropped

Dropped connections

Also available:

Accepted

Total connections accepted since the last server restart

HTTP Zones Widget#

Attention

The widget requires setting the status_zone directive in a server or location context.

Displays shared memory zone statistics of the http context, generated from the /status/http/server_zones/ API section:

Total

Total zones

Problems

Problematic zones

Traffic

Total incoming and outgoing traffic

HTTP Upstreams Widget#

Attention

The widget requires setting the zone directive in a upstream block within the http context.

Displays http context upstream statistics, generated from the /status/http/upstreams/ API section:

Total

Total upstreams

Problems

Problematic upstreams

Servers

Server statistics by state

TCP/UDP Zones Widget#

Attention

The widget requires setting the following directives:

Example:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

Displays shared memory zone statistics of the stream context, generated from the /status/stream/server_zones/ API section:

Conn total

Total client connections

Conn current

Current client connections

Conn/s

Connections handled per second

TCP/UDP Upstreams Widget#

Attention

The widget requires setting the zone directive in an upstream block within the stream context.

Displays upstream statistics of the stream context, generated from the /status/stream/upstreams/ API section:

Total

Total upstreams

Problems

Problematic upstreams

Servers

Server statistics by state

HTTP Zones Tab#

Attention

The tab requires setting the status_zone directive in a server or location context.

Server Zones Section#

Console Light - "Server Zones" section on the "HTTP Zones" tab


Summarizes shared memory zone monitoring statistics for the server context in http, generated from the /status/http/server_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones alphabetically or in configuration order.

Requests

Total number of requests as well as the number of requests per second

Responses

Number of responses by status code, as well as the total number of responses

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

SSL

Cumulative counts of: - successful SSL handshakes; - SSL sessions reused; - SSL handshakes with expired timeout; - unsuccessful SSL handshakes.

Location Zones Section#

Console Light - "Location Zones" section on the "HTTP Zones" tab


Summarizes statistics of shared memory zone monitoring for the location context in http, generated from the /status/http/location_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones alphabetically or in configuration order.

Requests

Total number of requests as well as the number of requests per second

Responses

Number of responses by status code, as well as the total number of responses

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Limit Conn Section#

Console Light - "Limit Conn" section on the "HTTP Zones" tab


Displays statistics of limit_conn zones in http context, generated from the /status/http/limit_conns/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

Limit Req Section#

Console Light - "Limit Req" section on the "HTTP Zones" tab


Displays statistics of limit_reqs zones in the http context, generated from the /status/http/limit_reqs/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Delayed

Total delayed connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

HTTP Upstreams Tab#

Console Light - "HTTP Upstreams" tab


Attention

The tab requires setting the zone directive in a upstream block within the http context.

This tab summarizes upstream monitoring statistics for the http context, generated from the /status/http/upstreams/ API section.

  • The Show upstreams list button toggles a summary of upstreams with the number of problematic upstreams and servers.

  • The Failed only switch toggles the output mode focused on problematic upstreams.

  • The edit button (Angie PRO only) toggles the upstream editing interface.

  • The drop-down list on the right side of each upstream table allows you to filter its servers by state (Up, Failed, Checking, Down).

For each upstream, in addition to its name and shared memory zone utilization ratio, the following data is presented:

Server

Names, downtimes, and weights of upstream servers

Hint

Click the arrow next to Server to sort the servers by their state or configuration order.

Requests

Total number and processing speed of requests

Responses

Number of responses by status code

Conns

Number of active connections and their maximum limit, if set

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Server checks

Unsuccessful attempts to reach the server and the number of times the server was considered unavailable (health object in the API)

Health monitors (Angie PRO only)

Total server probes, unsuccessful probes, and the time of the last probe

Editing upstreams#

For Angie PRO, there is an edit button next to each upstream; when clicked, it brings up two more buttons:

Edit selected

Edits selected servers within an upstream. Allows the following parameters to be set for the servers at once: weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

You can also delete the selected servers.

Console Light - editing servers on the "HTTP Upstreams" tab


Add server

Adds a server to the upstream. Allows you to set the following parameters: address (address), backup (backup or not), weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

Console Light - adding a server on the "HTTP Upstreams" tab


TCP/UDP Zones Tab#

Attention

The tab requires setting the following directives:

Example:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

TCP/UDP Zones Section#

Console Light - "TCP/UDP Zones" tab


Summarizes monitoring statistics of shared memory zones of the server context in stream, generated from the /status/stream/server_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Connections

Current and total connections, as well as connections per second

Sessions

Number of sessions by status code, as well as total sessions

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

SSL

Cumulative counts of: - successful SSL handshakes; - unsuccessful SSL handshakes; - SSL sessions reused; - SSL handshakes with expired timeout.

Limit Conn Section#

Console Light - "Limit Conn" section on the "TCP/UDP Zones" tab


Displays statistics of limit_conn zones in stream context, generated from the /status/stream/limit_conns/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

TCP/UDP Upstreams Tab#

Console Light - "TCP/UDP Upstreams" tab


Attention

The tab requires setting the zone directive in an upstream block within the stream context.

This tab summarizes upstream monitoring statistics for the stream context, generated from the /status/stream/upstreams/ API section.

  • The Show upstreams list button toggles a summary of upstreams with the number of problematic upstreams and servers.

  • The Failed only switch toggles the output mode focused on problematic upstreams.

  • The edit button (Angie PRO only) toggles the upstream editing interface.

  • The drop-down list on the right side of each upstream table allows you to filter its servers by state (Up, Failed, Checking, Down).

For each upstream, in addition to its name and shared memory zone utilization ratio, the following data is presented:

Server

Names, downtimes, and weights of upstream servers

Hint

Click the arrow next to Server to sort the servers by their state or configuration order.

Requests

Total number and processing speed of requests

Responses

Number of responses by status code

Conns

Number of active connections and their maximum limit, if set

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Server checks

Unsuccessful attempts to reach the server and the number of times the server was considered unavailable (health object in the API)

Editing upstreams#

For Angie PRO, there is an edit button next to each upstream; when clicked, it brings up two more buttons:

Edit selected

Edits selected servers within an upstream. Allows the following parameters to be set for the servers at once: weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

You can also delete the selected servers.

Console Light - editing servers on the "TCP/UDP Upstreams" tab


Add server

Adds a server to the upstream. Allows you to set the following parameters: address (address), backup (backup or not), weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

Console Light - adding a server on the "TCP/UDP Upstreams" tab


Caches Tab#

Console Light - "Caches" tab


Attention

The tab requires setting the proxy_cache_path directive in the http context.

Summarizes monitoring statistics of proxy_cache zones of the http context, generated from the /status/http/caches/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the shard lists for all zones that have them.

State

Cache state: cold (metadata loading) or hot (metadata loaded)

Memory usage

Memory utilization ratio

Max size

Maximum memory size

Used

Used memory size

Disk usage

Disk utilization ratio

Traffic

Traffic transferred from the cache, written to the cache, and returned bypassing the cache

Hit ratio

Cache hit ratio (traffic transferred from the cache to total volume) during the time window configured in settings

If sharding is enabled for a zone, it is labeled as a drop-down list that contains individual shards:

Path

Shard disk path

State

Shard state: cold (metadata loading) or hot (metadata loaded)

Max size

Maximum memory size

Used

Used memory size

Disk usage

Disk utilization ratio

Shared Zones Tab#

Console Light - "Shared Zones" tab


This tab summarizes monitoring statistics for all shared memory zones across all contexts. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones by their size or configuration order.

Total memory pages

Total memory pages

Used memory pages

Total memory pages used

Memory usage

Memory utilization ratio for the zone

Resolvers Tab#

Console Light - "Resolvers" tab


Attention

The tab requires setting the resolver directive in the http context.

Summarizes statistics of queries in the DNS shared memory zones, generated from the /status/resolvers/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones by their state or configuration order.

Requests

Number of A and AAAA, SRV, or PTR requests

Responses

Number of responses by relevant codes (Format error, Server failure, Name Error, Not Implemented, Refused, and others)

Settings Widget#

Console Light - "Settings" widget


Allows you to configure general console parameters:

  • Data refresh rate. Default value — 1 sec.

  • Threshold ratio for 4xx statuses. When the threshold is reached, "yellow" warnings appear in the corresponding sections related to server responses. Default value — 7%.

  • Time window for calculating the successful cache hit ratio. Default value — 300 sec.

  • Error threshold for the resolver. When the specified threshold is reached, the resolver turns "red." Default value — 3%.

  • Console interface language. Available options: English and Russian. By default, the console language is selected based on the locale set in the browser.

Console Control Panel#

On all tabs, in the middle of the left part of the page, there is a sliding panel with two buttons Console Light — control buttons on the "Overview" tab. The upper button pauses and resumes data updates from the API, while the lower button allows manual data updates when automatic updates are paused.