---
title: "Load Balancer Monitoring"
sidebar_label: "Load Balancer Monitoring"
sidebar_position: 8
description: "How to export cloud load balancer metrics in Prometheus format and how to set up a dashboard in Grafana"
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {CustomTable} from '@selectel/docux/components'
import {TabItemLabel} from '@selectel/docux/components'
import ShieldIcon from '@selectel/docux/icons/shield'
import CopyIcon from '@selectel/docux/icons/copy'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Load Balancer Monitoring

For cloud load balancers, you can [set up monitoring](#set-up-monitoring) — collect and export OpenStack Octavia metrics in Prometheus format and connect Grafana to track metrics on dashboards.

You can view the list of available metrics in the [Octavia metrics in Prometheus format](#octavia-metrics) table.

## Set up monitoring \{#set-up-monitoring}

:::warning

We do not recommend setting up monitoring during periods of maximum infrastructure load. As traffic on the load balancer increases, the frequency of metric requests rises, which affects the performance of load balancer instances.

:::

1. Optional: [select a method to restrict access to the load balancer](#opt-way-to-restrict-acccess-to-balancer).
2. [Create a load balancer rule](#create-rule).
3. [Create a cloud server for Prometheus and Grafana](#create-cloud-server).
4. [Install Prometheus on the cloud server and configure metric collection](#install-prometheus).
5. [Install Grafana on the cloud server and log in to Grafana](#install-grafana).
6. [Create a dashboard in Grafana](#create-dashboard).

### 1. Optional: select a method to restrict access to the load balancer \{#opt-way-to-restrict-acccess-to-balancer}

:::danger

Load balancer metrics will be accessible from the internet via an IP address and port without authentication if:

* the load balancer is in a private network and has a public IP address connected;
* or the load balancer is in a public subnet.

:::

You can restrict access to the load balancer from the internet. The available restriction method depends on how the load balancer is connected to the internet.

For a load balancer with a public IP address and for a load balancer in a public subnet, you can specify authorized IP addresses from which the load balancer will accept traffic when [creating a load balancer rule](#create-rule). Traffic filtering (port security) must be enabled in the load balancer network.

For a load balancer with a public IP address, you can also restrict access via a [cloud firewall](/cloud-servers/firewalls/).

### 2. Create a load balancer rule \{#create-rule}

<Tabs queryString="create-rule">
  <TabItem value="panel" default>
    <TabItemLabel>
      Control Panel
    </TabItemLabel>

    1. If you [selected](#opt-way-to-restrict-acccess-to-balancer) a cloud firewall to restrict access to the load balancer, [create a firewall](/cloud-servers/firewalls/create-firewall.mdx) and proceed to step 3.

    2. If you [selected](#opt-way-to-restrict-acccess-to-balancer) specifying authorized IP addresses in a load balancer rule to restrict access — ensure that traffic filtering (port security) is enabled in the load balancer network.

       2.1. [Open OpenStack CLI](/cloud-servers/tools/openstack-cli/).

       2.2. View the network traffic filtering status — the `port_security_enabled` field in the command output:

       ```
       openstack network show
       ```

       2.3. If the `port_security_enabled` field value is `true` — filtering is enabled. Proceed to step 3.

       2.4. If the `port_security_enabled` field value is `false`, filtering is disabled. [Create a new private network](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx#create-private-network) or [public subnet](/cloud-servers/cloud-networks/public-subnets.mdx#create-public-subnet) and [re-create the load balancer in it](/cloud-servers/load-balancers/create-load-balancer.mdx).

    3. In the [control panel](https://my.selectel.ru/vpc/default/lbaas/load-balancers/), in the top menu click **Products** and select **Cloud Servers**.

    4. Go to the **Load Balancers** section → **Load Balancers** tab.

    5. Open the load balancer page.

    6. Click **Create Rule**.

    7. In the **Traffic protocol** field, select **Prometheus**.

    8. Optional: change the load balancer port that Prometheus will query to retrieve metrics. Port 8088 is assigned by default.

    9. If you [selected](#opt-way-to-restrict-acccess-to-balancer) authorized IP addresses — specify the IP address of the cloud server where Prometheus will be installed as the authorized CIDR.

    10. Optional: change the [connection settings](/cloud-servers/load-balancers/about-load-balancers.mdx#connection-settings) for incoming requests to the load balancer. To do this, open the **Advanced rule settings** block and specify the connection timeout and maximum connections.

    11. Click **Create**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. If you [selected](#opt-way-to-restrict-acccess-to-balancer) a cloud firewall to restrict access to the load balancer, [create a firewall](/cloud-servers/firewalls/create-firewall.mdx) and proceed to step 3.

    2. If you [selected](#opt-way-to-restrict-acccess-to-balancer) specifying authorized IP addresses to restrict access — ensure that [traffic filtering (port security](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security)) is enabled in the load balancer network.

       2.1. [Open OpenStack CLI](/cloud-servers/tools/openstack-cli/).

       2.2. View the network traffic filtering status — the `port_security_enabled` field in the command output:

       ```
       openstack network show
       ```

       2.3. If the `port_security_enabled` field value is `true`, filtering is enabled. Proceed to step 3.

       2.4. If the `port_security_enabled` field value is `false`, filtering is disabled. [Create a new private network](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx#create-private-network) or [public subnet](/cloud-servers/cloud-networks/public-subnets.mdx#create-public-subnet) and [re-create the load balancer in it](/cloud-servers/load-balancers/create-load-balancer.mdx).

    3. Create a rule for the load balancer with the PROMETHEUS protocol and port 8088:

       ```bash
       openstack loadbalancer listener create \
         --name <listener_name> \
         --protocol PROMETHEUS \
         --protocol-port 8088 \
         [--allowed-cidr <allowed_cidr>] \
         <loadbalancer>
       ```

       Specify:

       * `<listener_name>` — rule name;
       * optional: `--allowed-cidr <allowed_cidr>` — if you [selected](#opt-way-to-restrict-acccess-to-balancer) authorized IP addresses to restrict access. The `<allowed_cidr>` parameter is the IP address of the cloud server where Prometheus will be installed;
       * `<loadbalancer>` — ID or name of the load balancer. You can view it using the `openstack loadbalancer list`.

    4. To view load balancer metrics in text format, open the following page in your browser:

       ```bash
       http://<loadbalancer_ip_address>:8088
       ```

       Specify `<loadbalancer_ip_address>` — private or public IP address of the load balancer. You can view it in the [control panel](https://my.selectel.ru/vpc/default/lbaas/load-balancers/): in the top menu click **Products** → **Cloud Servers** → **Load Balancers** → tab **Load Balancers** → load balancer page.
  </TabItem>
</Tabs>

### 2. Create a cloud server for Prometheus and Grafana \{#create-cloud-server}

Prometheus and Grafana must be installed and configured on a cloud server located in the same private subnet as the load balancer.

Use the [Create a cloud server](/cloud-servers/create/create-server.mdx) guide.

Select:

* source — any ready-made Ubuntu image, for example `Ubuntu 22.04 LTS 64-bit`;
* configuration — any configuration (fixed or custom) with vCPU from 2, RAM from 4 GB and boot disk size from 10 GB;
* internet — access type with a public floating IP address;
* private network — a private subnet to which a load balancer is connected.

### 3. Install Prometheus on a cloud server and configure metric collection \{#install-prometheus}

1. [Connect to the cloud server](/cloud-servers/manage/connect-to-server.mdx) that you [created](#create-cloud-server) earlier.

2. Download and install Prometheus:

   ```bash
   sudo apt update
   wget https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-2.45.1.linux-amd64.tar.gz
   tar xvf prometheus-2.45.1.linux-amd64.tar.gz
   cd prometheus-2.45.1.linux-amd64
   ```

3. Open the configuration file `prometheus.yml`:

   ```bash
   nano prometheus.yml
   ```

4. Change the `targets` value in the `scrape_configs:` block:

   Example block:

   ```bash
   scrape_configs:
     - job_name: "prometheus"
     static_configs:
       - targets: ["<loadbalancer_private_ip_address>:8088"]
   ```

   Specify `<loadbalancer_private_ip_address>` — the private IP address of the load balancer. You can view it in the [control panel](https://my.selectel.ru/vpc/default/lbaas/load-balancers/): in the top menu, click **Products** → **Cloud servers** → **Load balancers** → **Load balancers** tab → load balancer page.

5. Start Prometheus locally:

   ```bash
   sudo apt install screen
   screen -dm ./prometheus --config.file=./prometheus.yml --web.listen-address=localhost:9090
   ```

### 4. Install Grafana on a cloud server and log in to Grafana \{#install-grafana}

1. [Connect to the cloud server](/cloud-servers/manage/connect-to-server.mdx) that you [created](#create-cloud-server) earlier.

2. Install the fontconfig library, which is required to use Grafana:

   ```bash
   sudo apt install -y libfontconfig1
   ```

3. Download and install Grafana:

   ```bash
   cd ~
   wget https://dl.grafana.com/oss/release/grafana_9.1.0_amd64.deb
   sudo dpkg -i grafana_9.1.0_amd64.deb
   ```

4. Open the following page in your browser:

   ```bash
   http://<server_ip_address>:3000/login
   ```

   Specify `<server_ip_address>` — the public IP address of the cloud server. You can copy it in the [control panel](https://my.selectel.ru/vpc/default/servers/): from the top menu, click **Products** → **Cloud Servers** → server page → **Ports** tab → in the port card, click <CopyIcon /> next to the public IP address.

5. Log in to Grafana. Use the following credentials for your first login:

   * login — `admin`;
   * password — `admin`.

6. Grafana will prompt you to change your password. Enter a new password.

7. Click **Submit**.

### 5. Create a dashboard in Grafana \{#create-dashboard}

There is a ready-made dashboard for collecting Octavia metrics. Read more on the [OpenStack Octavia Amphora Load Balancer](https://grafana.com/grafana/dashboards/15828-openstack-octavia-amphora-load-balancer/) page on the official Grafana website.

1. Add a Data Source (Data Source) in Grafana. To do this, go to the **Configuration** → **Data sources**.
2. Click **Add data source**.
3. Select the data source type **Prometheus**.
4. In the **URL** field, enter `http://localhost:9090`.
5. Click **Save & test**.
6. Add the ready-made dashboard for Octavia metrics. To do this, go to **Dashboards** → **+ Import**.
7. In the **Import via grafana.com** field, enter `15828`.
8. Click **Load**.
9. In the **Prometheus** field, select the Prometheus data source that you created in step 5.
10. Click **Import**.
11. Make sure the dashboard has been created. To do this, go to **Dashboards** → **Browse**.
12. Open the **OpenStack Octavia Amphora Load Balancer** dashboard page.

## Octavia metrics in Prometheus format \{#octavia-metrics}

Metrics are collected for all load balancer components:

* `octavia_loadbalancer`, `octavia_memory_pool` — load balancer metrics;
* `octavia_listener` — listener metrics. Collected for each listener individually, distinguished by ID;
* `octavia_pool` — pool metrics. Collected for each pool individually, distinguished by ID;
* `octavia_member` — member metrics. Collected for each member individually, distinguished by ID.

Read more about load balancer components and the OpenStack Octavia model in the [How Load Balancers Work](/cloud-servers/load-balancers/about-load-balancers.mdx#how-balancer-works) subsection.

<Tabs queryString="octavia-metrics">
  <TabItem value="loadbalancerandmemorypool" default>
    <TabItemLabel>
      Load balancer metrics
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Metric</th><th>Type</th><th>Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>octavia\_loadbalancer\_cpu</td><td>gauge</td><td>Load balancer vCPU usage in percent</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_memory</td><td>gauge</td><td>Load balancer memory (RAM) usage in percent</td>
          </tr>

          <tr>
            <td>octavia\_memory\_pool\_allocated\_bytes</td><td>gauge</td><td>Total amount of memory allocated for memory pools in bytes</td>
          </tr>

          <tr>
            <td>octavia\_memory\_pool\_used\_bytes</td><td>gauge</td><td>Total amount of memory used in memory pools in bytes</td>
          </tr>

          <tr>
            <td>octavia\_memory\_pool\_failures\_total</td><td>counter</td><td>Total number of failed memory pool allocation attempts</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_connections</td><td>gauge</td><td>Maximum number of concurrent connections</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_connections</td><td>gauge</td><td>Number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_connections\_total</td><td>counter</td><td>Total number of sessions created</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_requests\_total</td><td>counter</td><td>Total number of TCP and HTTP requests</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_ssl\_connections</td><td>gauge</td><td>Configured maximum number of concurrent SSL connections</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_ssl\_connections</td><td>gauge</td><td>Current number of active SSL connections</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_ssl\_connections\_total</td><td>counter</td><td>Total number of SSL connections opened</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_connection\_rate</td><td>gauge</td><td>Current connections per second over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_limit\_connection\_rate</td><td>gauge</td><td>Configured maximum connections per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_connection\_rate</td><td>gauge</td><td>Maximum observed connections per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_session\_rate</td><td>gauge</td><td>Current sessions per second over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_limit\_session\_rate</td><td>gauge</td><td>Configured maximum sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_session\_rate</td><td>gauge</td><td>Maximum observed sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_ssl\_rate</td><td>gauge</td><td>Current SSL sessions per second over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_limit\_ssl\_rate</td><td>gauge</td><td>Configured maximum SSL sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_ssl\_rate</td><td>gauge</td><td>Maximum observed SSL sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_frontend\_ssl\_key\_rate</td><td>gauge</td><td>Current frontend SSL key decryption time per second over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_frontend\_ssl\_key\_rate</td><td>gauge</td><td>Maximum observed frontend SSL key decryption time per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_current\_backend\_ssl\_key\_rate</td><td>gauge</td><td>Current backend SSL key decryption time per second over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_max\_backend\_ssl\_key\_rate</td><td>gauge</td><td>Maximum observed backend SSL key decryption time per second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_ssl\_cache\_lookups\_total</td><td>counter</td><td>Total number of SSL session cache lookups</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_ssl\_cache\_misses\_total</td><td>counter</td><td>Total number of SSL session cache misses</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_http\_comp\_bytes\_in\_total</td><td>counter</td><td>HTTP bytes per second before compression over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_http\_comp\_bytes\_out\_total</td><td>counter</td><td>HTTP bytes per second after compression over the last second</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_limit\_http\_comp</td><td>gauge</td><td>Configured maximum input data compression level in bytes</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_listeners</td><td>gauge</td><td>Number of active rules</td>
          </tr>

          <tr>
            <td>octavia\_loadbalancer\_dropped\_logs\_total</td><td>counter</td><td>Total number of dropped logs</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="listener">
    <TabItemLabel>
      Rule metrics
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Metric</th><th>Type</th><th>Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>octavia\_listener\_status</td><td>gauge</td><td>Current status of the rule: 0 — OFFLINE, 1 — ONLINE, 2 — DEGRADED</td>
          </tr>

          <tr>
            <td>octavia\_listener\_current\_sessions</td><td>gauge</td><td>Current number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_listener\_max\_sessions</td><td>gauge</td><td>Maximum observed number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_listener\_limit\_sessions</td><td>gauge</td><td>Configured session limit</td>
          </tr>

          <tr>
            <td>octavia\_listener\_sessions\_total</td><td>counter</td><td>Total number of sessions</td>
          </tr>

          <tr>
            <td>octavia\_listener\_limit\_session\_rate</td><td>gauge</td><td>Configured new sessions per second limit</td>
          </tr>

          <tr>
            <td>octavia\_listener\_max\_session\_rate</td><td>gauge</td><td>Maximum observed sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_listener\_connections\_rate\_max</td><td>gauge</td><td>Maximum observed connections per second</td>
          </tr>

          <tr>
            <td>octavia\_listener\_connections\_total</td><td>counter</td><td>Total number of connections</td>
          </tr>

          <tr>
            <td>octavia\_listener\_bytes\_in\_total</td><td>counter</td><td>Current total number of incoming bytes</td>
          </tr>

          <tr>
            <td>octavia\_listener\_bytes\_out\_total</td><td>counter</td><td>Current total number of outgoing bytes</td>
          </tr>

          <tr>
            <td>octavia\_listener\_requests\_denied\_total</td><td>counter</td><td>Total number of denied requests</td>
          </tr>

          <tr>
            <td>octavia\_listener\_responses\_denied\_total</td><td>counter</td><td>Total number of denied responses</td>
          </tr>

          <tr>
            <td>octavia\_listener\_request\_errors\_total</td><td>counter</td><td>Total number of request errors</td>
          </tr>

          <tr>
            <td>octavia\_listener\_denied\_connections\_total</td><td>counter</td><td>Total number of requests denied by connection configuration rules</td>
          </tr>

          <tr>
            <td>octavia\_listener\_denied\_sessions\_total</td><td>counter</td><td>Total number of requests denied by session rules</td>
          </tr>

          <tr>
            <td>octavia\_listener\_failed\_header\_rewriting\_total</td><td>counter</td><td>Total number of failed header rewriting rules</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_requests\_rate\_max</td><td>gauge</td><td>Maximum observed number of HTTP requests per second</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_requests\_total</td><td>counter</td><td>Total number of HTTP requests received</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_responses\_total</td><td>counter</td><td>Total number of HTTP responses</td>
          </tr>

          <tr>
            <td>octavia\_listener\_intercepted\_requests\_total</td><td>counter</td><td>Total number of interrupted HTTP requests</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_cache\_lookups\_total</td><td>counter</td><td>Total number of HTTP cache lookups</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_cache\_hits\_total</td><td>counter</td><td>Total number of HTTP cache hits</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_comp\_bytes\_in\_total</td><td>counter</td><td>Total number of bytes of HTTP responses eligible for compression</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_comp\_bytes\_out\_total</td><td>counter</td><td>Total number of bytes of HTTP responses processed by compression</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_comp\_bytes\_bypassed\_total</td><td>counter</td><td>Total number of bytes bypassed by HTTP compression (CPU/throughput limit)</td>
          </tr>

          <tr>
            <td>octavia\_listener\_http\_comp\_responses\_total</td><td>counter</td><td>Total number of compressed HTTP responses</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="pool">
    <TabItemLabel>
      Target group metrics
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Metric</th><th>Type</th><th>Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>octavia\_pool\_status</td><td>gauge</td><td>Current status of the target group: 0 — OFFLINE, 1 — ONLINE</td>
          </tr>

          <tr>
            <td>octavia\_pool\_current\_sessions</td><td>gauge</td><td>Current number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_sessions</td><td>gauge</td><td>Maximum observed number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_pool\_limit\_sessions</td><td>gauge</td><td>Configured session limit</td>
          </tr>

          <tr>
            <td>octavia\_pool\_sessions\_total</td><td>counter</td><td>Total number of sessions</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_session\_rate</td><td>gauge</td><td>Maximum observed sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_pool\_last\_session\_seconds</td><td>gauge</td><td>Number of seconds since the last session assigned to the server</td>
          </tr>

          <tr>
            <td>octavia\_pool\_current\_queue</td><td>gauge</td><td>Current number of requests in the queue</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_queue</td><td>gauge</td><td>Maximum observed number of requests in the queue</td>
          </tr>

          <tr>
            <td>octavia\_pool\_connection\_attempts\_total</td><td>counter</td><td>Total number of connection attempts</td>
          </tr>

          <tr>
            <td>octavia\_pool\_connection\_reuses\_total</td><td>counter</td><td>Total number of connection reuses</td>
          </tr>

          <tr>
            <td>octavia\_pool\_bytes\_in\_total</td><td>counter</td><td>Current total number of incoming bytes</td>
          </tr>

          <tr>
            <td>octavia\_pool\_bytes\_out\_total</td><td>counter</td><td>Current total number of outgoing bytes</td>
          </tr>

          <tr>
            <td>octavia\_pool\_queue\_time\_average\_seconds</td><td>gauge</td><td>Average queue time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_pool\_connect\_time\_average\_seconds</td><td>gauge</td><td>Average connect time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_pool\_response\_time\_average\_seconds</td><td>gauge</td><td>Average response time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_pool\_total\_time\_average\_seconds</td><td>gauge</td><td>Average total time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_queue\_time\_seconds</td><td>gauge</td><td>Maximum observed queue wait time</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_connect\_time\_seconds</td><td>gauge</td><td>Maximum observed connection completion wait time</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_response\_time\_seconds</td><td>gauge</td><td>Maximum observed server response wait time</td>
          </tr>

          <tr>
            <td>octavia\_pool\_max\_total\_time\_seconds</td><td>gauge</td><td>Maximum observed total request and response time (request, queue wait, connection, response, and processing)</td>
          </tr>

          <tr>
            <td>octavia\_pool\_requests\_denied\_total</td><td>counter</td><td>Total number of denied requests</td>
          </tr>

          <tr>
            <td>octavia\_pool\_responses\_denied\_total</td><td>counter</td><td>Total number of denied responses</td>
          </tr>

          <tr>
            <td>octavia\_pool\_connection\_errors\_total</td><td>counter</td><td>Total number of connection errors</td>
          </tr>

          <tr>
            <td>octavia\_pool\_response\_errors\_total</td><td>counter</td><td>Total number of response errors</td>
          </tr>

          <tr>
            <td>octavia\_pool\_retry\_warnings\_total</td><td>counter</td><td>Total number of retry warnings</td>
          </tr>

          <tr>
            <td>octavia\_pool\_redispatch\_warnings\_total</td><td>counter</td><td>Total number of redispatch warnings</td>
          </tr>

          <tr>
            <td>octavia\_pool\_failed\_header\_rewriting\_total</td><td>counter</td><td>Total number of header rewriting failure warnings</td>
          </tr>

          <tr>
            <td>octavia\_pool\_client\_aborts\_total</td><td>counter</td><td>Total number of times data transmission was aborted by the client</td>
          </tr>

          <tr>
            <td>octavia\_pool\_member\_aborts\_total</td><td>counter</td><td>Total number of times data transmission was aborted by the server</td>
          </tr>

          <tr>
            <td>octavia\_pool\_active\_members</td><td>gauge</td><td>Current number of active servers (members)</td>
          </tr>

          <tr>
            <td>octavia\_pool\_backup\_members</td><td>gauge</td><td>Current number of backup servers (members)</td>
          </tr>

          <tr>
            <td>octavia\_pool\_check\_up\_down\_total</td><td>counter</td><td>Total number of UP→DOWN transitions</td>
          </tr>

          <tr>
            <td>octavia\_pool\_check\_last\_change\_seconds</td><td>gauge</td><td>Number of seconds since the last UP→DOWN transition</td>
          </tr>

          <tr>
            <td>octavia\_pool\_downtime\_seconds\_total</td><td>counter</td><td>Total target group downtime in seconds</td>
          </tr>

          <tr>
            <td>octavia\_pool\_loadbalanced\_total</td><td>counter</td><td>Total number of times the target group was selected for new sessions or redistributed</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_requests\_total</td><td>counter</td><td>Total number of HTTP requests received</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_responses\_total</td><td>counter</td><td>Total number of HTTP responses</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_cache\_lookups\_total</td><td>counter</td><td>Total number of HTTP cache lookups</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_cache\_hits\_total</td><td>counter</td><td>Total number of HTTP cache hits</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_comp\_bytes\_in\_total</td><td>counter</td><td>Total number of bytes of HTTP responses eligible for compression</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_comp\_bytes\_out\_total</td><td>counter</td><td>Total number of bytes of HTTP responses processed by compression</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_comp\_bytes\_bypassed\_total</td><td>counter</td><td>Total number of bytes bypassed by HTTP compression (CPU/throughput limit)</td>
          </tr>

          <tr>
            <td>octavia\_pool\_http\_comp\_responses\_total</td><td>counter</td><td>Total number of compressed HTTP responses</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="member">
    <TabItemLabel>
      Server metrics
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Metric</th><th>Type</th><th>Description</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>octavia\_member\_status</td><td>gauge</td><td>Current server status: 0 — ERROR, 1 — ONLINE, 2 — OFFLINE, 3 — DRAIN</td>
          </tr>

          <tr>
            <td>octavia\_member\_current\_sessions</td><td>gauge</td><td>Current number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_sessions</td><td>gauge</td><td>Maximum observed number of active sessions</td>
          </tr>

          <tr>
            <td>octavia\_member\_limit\_sessions</td><td>gauge</td><td>Configured session limit</td>
          </tr>

          <tr>
            <td>octavia\_member\_sessions\_total</td><td>counter</td><td>Total number of sessions</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_session\_rate</td><td>gauge</td><td>Maximum observed sessions per second</td>
          </tr>

          <tr>
            <td>octavia\_member\_last\_session\_seconds</td><td>gauge</td><td>Number of seconds since the last session assigned to the server</td>
          </tr>

          <tr>
            <td>octavia\_member\_current\_queue</td><td>gauge</td><td>Current number of requests in the queue</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_queue</td><td>gauge</td><td>Maximum observed number of requests in the queue</td>
          </tr>

          <tr>
            <td>octavia\_member\_queue\_limit</td><td>gauge</td><td>Configured maximum queue value for the server. Value 0 means no limits</td>
          </tr>

          <tr>
            <td>octavia\_member\_bytes\_in\_total</td><td>counter</td><td>Current total number of incoming bytes</td>
          </tr>

          <tr>
            <td>octavia\_member\_bytes\_out\_total</td><td>counter</td><td>Current total number of outgoing bytes</td>
          </tr>

          <tr>
            <td>octavia\_member\_queue\_time\_average\_seconds</td><td>gauge</td><td>Average queue time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_member\_connect\_time\_average\_seconds</td><td>gauge</td><td>Average connect time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_member\_response\_time\_average\_seconds</td><td>gauge</td><td>Average response time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_member\_total\_time\_average\_seconds</td><td>gauge</td><td>Average total time for the last 1024 successful connections</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_queue\_time\_seconds</td><td>gauge</td><td>Maximum observed queue wait time</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_connect\_time\_seconds</td><td>gauge</td><td>Maximum observed connection completion wait time</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_response\_time\_seconds</td><td>gauge</td><td>Maximum observed server response wait time</td>
          </tr>

          <tr>
            <td>octavia\_member\_max\_total\_time\_seconds</td><td>gauge</td><td>Maximum observed total request and response time (request, queue wait, connection, response, and processing)</td>
          </tr>

          <tr>
            <td>octavia\_member\_connection\_attempts\_total</td><td>counter</td><td>Total number of connection attempts</td>
          </tr>

          <tr>
            <td>octavia\_member\_connection\_reuses\_total</td><td>counter</td><td>Total number of connection reuses</td>
          </tr>

          <tr>
            <td>octavia\_member\_responses\_denied\_total</td><td>counter</td><td>Total number of denied responses</td>
          </tr>

          <tr>
            <td>octavia\_member\_connection\_errors\_total</td><td>counter</td><td>Total number of connection errors</td>
          </tr>

          <tr>
            <td>octavia\_member\_response\_errors\_total</td><td>counter</td><td>Total number of response errors</td>
          </tr>

          <tr>
            <td>octavia\_member\_retry\_warnings\_total</td><td>counter</td><td>Total number of retry warnings</td>
          </tr>

          <tr>
            <td>octavia\_member\_redispatch\_warnings\_total</td><td>counter</td><td>Total number of redispatch warnings</td>
          </tr>

          <tr>
            <td>octavia\_member\_failed\_header\_rewriting\_total</td><td>counter</td><td>Total number of header rewriting failure warnings</td>
          </tr>

          <tr>
            <td>octavia\_member\_client\_aborts\_total</td><td>counter</td><td>Total number of times data transmission was aborted by the client</td>
          </tr>

          <tr>
            <td>octavia\_member\_server\_aborts\_total</td><td>counter</td><td>Total number of times data transmission was aborted by the server</td>
          </tr>

          <tr>
            <td>octavia\_member\_weight</td><td>gauge</td><td>Server weight</td>
          </tr>

          <tr>
            <td>octavia\_member\_check\_failures\_total</td><td>counter</td><td>Total number of failed checks. Only checks where the server is active are counted</td>
          </tr>

          <tr>
            <td>octavia\_member\_check\_up\_down\_total</td><td>counter</td><td>Total number of UP→DOWN transitions</td>
          </tr>

          <tr>
            <td>octavia\_member\_downtime\_seconds\_total</td><td>counter</td><td>Total server downtime in seconds</td>
          </tr>

          <tr>
            <td>octavia\_member\_check\_last\_change\_seconds</td><td>gauge</td><td>Number of seconds since the last UP/DOWN transition</td>
          </tr>

          <tr>
            <td>octavia\_member\_current\_throttle</td><td>gauge</td><td>Current throttling percentage for the server if slow start mode is enabled, or if the mode is disabled but a value is missing</td>
          </tr>

          <tr>
            <td>octavia\_member\_loadbalanced\_total</td><td>counter</td><td>Total number of times the server was selected for new sessions or redistributed</td>
          </tr>

          <tr>
            <td>octavia\_member\_http\_responses\_total</td><td>counter</td><td>Total number of HTTP responses</td>
          </tr>

          <tr>
            <td>octavia\_member\_idle\_connections\_current</td><td>gauge</td><td>Current number of idle connections available for reuse</td>
          </tr>

          <tr>
            <td>octavia\_member\_idle\_connections\_limit</td><td>gauge</td><td>Limit on the number of available idle connections</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

<Formbricks />
