Merge "Add the PROMETHEUS protocol to listeners"

This commit is contained in:
Zuul 2022-02-22 18:27:05 +00:00 committed by Gerrit Code Review
commit bc0d85da9a
40 changed files with 3182 additions and 53 deletions

View File

@ -1245,7 +1245,7 @@ project_id-optional-deprecated:
protocol:
description: |
The protocol for the resource. One of ``HTTP``, ``HTTPS``, ``SCTP``,
``TCP``, ``TERMINATED_HTTPS``, or ``UDP``.
``PROMETHEUS``, ``TCP``, ``TERMINATED_HTTPS``, or ``UDP``.
in: body
required: true
type: string

View File

@ -238,6 +238,14 @@ cli=openstack loadbalancer listener create --protocol SCTP <loadbalancer>
driver.amphora=complete
driver.ovn=missing
[operation.protocol.PROMETHEUS]
title=protocol - PROMETHEUS
status=optional
notes=Prometheus exporter support for the listener.
cli=openstack loadbalancer listener create --protocol PROMETHEUS <loadbalancer>
driver.amphora=complete
driver.ovn=missing
[operation.protocol_port]
title=protocol_port
status=mandatory

View File

@ -0,0 +1,153 @@
..
Copyright 2021 Red Hat, Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
=========================
Monitoring Load Balancers
=========================
Introduction
============
Octavia provides multiple ways to monitor your load balancers. You can query
statistics via the Octavia API or directly from your load balancer.
This guide will discuss the various options available to monitor your Octavia
load balancer.
Monitoring Using the Octavia API
================================
Octavia collects key metrics from all load balancers, including load balancers
built with third party provider drivers that support collecting statistics.
Octavia aggregates these statistics and makes them available via the Octavia
API. Load balancer statistics are available at the load balancer or listener
level.
.. _OpenStack Client: https://docs.openstack.org/python-openstackclient/latest/
Load balancer statistics can be queried using the `OpenStack Client`_.
.. code-block:: bash
$ openstack loadbalancer stats show <lb id>
+--------------------+-----------+
| Field | Value |
+--------------------+-----------+
| active_connections | 0 |
| bytes_in | 2236722 |
| bytes_out | 100973832 |
| request_errors | 0 |
| total_connections | 3606 |
+--------------------+-----------+
Individual listener statistics can also be queried using the
`OpenStack Client`_.
.. code-block:: bash
$ openstack loadbalancer listener stats show <listener id>
+--------------------+-------+
| Field | Value |
+--------------------+-------+
| active_connections | 0 |
| bytes_in | 89 |
| bytes_out | 237 |
| request_errors | 0 |
| total_connections | 1 |
+--------------------+-------+
Load balancer statistics queried via the Octavia API include metrics for all
listener protocols.
Monitoring with Prometheus
==========================
Some provider drivers, such as the Octavia amphora driver, provide a prometheus
endpoint. This allows you to configure your Prometheus infrastruture to collect
metrics from Octavia load balancers.
To add a Prometheus endpoint on an Octavia load balancer, create a listener
with a special protocol ``PROMETHEUS``. This will enable the endpoint as
``/metrics`` on the listener. The listener supports all of the features of an
Octavia load balancer, such as allowed_cidrs, but does not support attaching
pools or L7 policies. All metrics will be identified by the Octavia object
ID (UUID) of the resources.
.. note:: Currectly UDP and SCTP metrics are not reported via Prometheus
endpoints when using the amphora provider.
To create a Prometheus endpoint on port 8088 for load balancer lb1, you would
run the following command.
.. code-block:: bash
$ openstack loadbalancer listener create --name stats-listener --protocol PROMETHEUS --protocol-port 8088 lb1
+-----------------------------+--------------------------------------+
| Field | Value |
+-----------------------------+--------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| created_at | 2021-10-03T01:44:25 |
| default_pool_id | None |
| default_tls_container_ref | None |
| description | |
| id | fb57d764-470a-4b6b-8820-627452f55b96 |
| insert_headers | None |
| l7policies | |
| loadbalancers | b081ed89-f6f8-48cb-a498-5e12705e2cf9 |
| name | stats-listener |
| operating_status | OFFLINE |
| project_id | 4c1caeee063747f8878f007d1a323b2f |
| protocol | PROMETHEUS |
| protocol_port | 8088 |
| provisioning_status | PENDING_CREATE |
| sni_container_refs | [] |
| timeout_client_data | 50000 |
| timeout_member_connect | 5000 |
| timeout_member_data | 50000 |
| timeout_tcp_inspect | 0 |
| updated_at | None |
| client_ca_tls_container_ref | None |
| client_authentication | NONE |
| client_crl_container_ref | None |
| allowed_cidrs | None |
| tls_ciphers | None |
| tls_versions | None |
| alpn_protocols | None |
| tags | |
+-----------------------------+--------------------------------------+
Once the ``PROMETHEUS`` listener is ``ACTIVE``, you can configure Prometheus to
collect metrics from the load balancer by updating the prometheus.yml file.
.. code-block:: yaml
[scrape_configs]
- job_name: 'Octavia LB1'
static_configs:
- targets: ['192.0.2.10:8088']
For more information on setting up Prometheus, see the
`Prometheus project web site <https://prometheus.io/>`_.
.. note:: The metrics exposed via the ``/metrics`` endpoint will use a
custom Octavia namespace.
You can connect `Grafana <https://grafana.com>`_ to the
`Prometheus <https://prometheus.io>`_ instance to provide additional graphing
and dashboard capabilities. There are multiple `community built dashboards <https://grafana.com/dashboards?dataSource=prometheus&search=haproxy>`_ available
that can be adapted to the Octavia metrics.

View File

@ -19,6 +19,7 @@ Guides
guides/l7
feature-classification/index
guides/monitoring
References
==========

View File

@ -30,6 +30,9 @@ ln -s $AMP_VENV/bin/amphora-health-checker /usr/local/bin/amphora-health-checker
# Link amphora interface script
ln -s $AMP_VENV/bin/amphora-interface /usr/local/bin/amphora-interface || true
# Link the prometheus proxy
ln -s $AMP_VENV/bin/prometheus-proxy /usr/local/bin/prometheus-proxy || true
mkdir /etc/octavia
# we assume certs, etc will come in through the config drive
mkdir /etc/octavia/certs
@ -40,12 +43,15 @@ install -D -g root -o root -m 0644 ${SCRIPTDIR}/amphora-agent.logrotate /etc/log
case "$DIB_INIT_SYSTEM" in
upstart)
install -D -g root -o root -m 0644 ${SCRIPTDIR}/amphora-agent.conf /etc/init/amphora-agent.conf
install -D -g root -o root -m 0644 ${SCRIPTDIR}/prometheus-proxy.conf /etc/init/prometheus-proxy.conf
;;
systemd)
install -D -g root -o root -m 0644 ${SCRIPTDIR}/amphora-agent.service /usr/lib/systemd/system/amphora-agent.service
install -D -g root -o root -m 0644 ${SCRIPTDIR}/prometheus-proxy.service /usr/lib/systemd/system/prometheus-proxy.service
;;
sysv)
install -D -g root -o root -m 0644 ${SCRIPTDIR}/amphora-agent.init /etc/init.d/amphora-agent.init
install -D -g root -o root -m 0644 ${SCRIPTDIR}/prometheus-proxy.init /etc/init.d/prometheus-proxy.init
;;
*)
echo "Unsupported init system"

View File

@ -0,0 +1,19 @@
description "Start up the Octavia Prometheus Proxy"
start on started amphora-agent
stop on runlevel [!2345]
respawn
# Handle the race condition with the netns being created
respawn limit unlimited
exec /usr/local/bin/prometheus-proxy
post-start script
PID=`status prometheus-proxy | egrep -oi '([0-9]+)$' | head -n1`
echo $PID > /var/run/prometheus-proxy.pid
end script
post-stop script
rm -f /var/run/prometheus-proxy.pid
end script

View File

@ -0,0 +1,65 @@
### BEGIN INIT INFO
# Provides: prometheus-proxy
# Required-Start: $remote_fs $syslog $network certs-ramfs
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Runs the Prometheus Proxy processes
# Description: This script runs Octavia Prometheus Proxy processes.
### END INIT INFO
# Using the lsb functions to perform the operations.
. /lib/lsb/init-functions
# Process name ( For display )
NAME=prometheus-proxy
# Daemon name, where is the actual executable
DAEMON=/usr/local/bin/prometheus-proxy
# pid file for the daemon
PIDFILE=/var/run/prometheus-proxy.pid
# If the daemon is not there, then exit.
test -x $DAEMON || exit 5
case $1 in
start)
# Checked the PID file exists and check the actual status of process
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON "$NAME process" && status="0" || status="$?"
# If the status is SUCCESS then don't need to start again.
if [ $status = "0" ]; then
exit # Exit
fi
fi
# Start the daemon.
log_daemon_msg "Starting the process" "$NAME"
# Start the daemon with the help of start-stop-daemon
# Log the message appropriately
if start-stop-daemon --start -m --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
# Stop the daemon.
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON "Stopping the $NAME process" && status="0" || status="$?"
if [ "$status" = 0 ]; then
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
/bin/rm -rf $PIDFILE
fi
else
log_daemon_msg "$NAME process is not running"
log_end_msg 0
fi
;;
restart)
# Restart the daemon.
$0 stop && sleep 2 && $0 start
;;
*)
# For invalid arguments, print the usage message.
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 2
;;
esac

View File

@ -0,0 +1,14 @@
[Unit]
Description=OpenStack Octavia Prometheus Proxy
After=network.target syslog.service amphora-agent.service
Requires=amphora-agent.service
[Service]
ExecStart=/usr/local/bin/prometheus-proxy
KillMode=mixed
Restart=always
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/prometheus-proxy.pid"
PIDFile=/var/run/prometheus-proxy.pid
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,12 @@
#!/bin/bash
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
set -x
fi
set -eu
set -o pipefail
if [ "$DIB_INIT_SYSTEM" == "systemd" ]; then
systemctl enable prometheus-proxy
fi

View File

@ -41,6 +41,9 @@
# Enable/disable ability for users to create PING type Health Monitors
# allow_ping_health_monitors = True
# Enable/disable PROMETHEUS listeners
# allow_prometheus_listeners = True
# Dictionary of enabled provider driver names and descriptions
# A comma separated list of dictionaries of the enabled provider driver names
# and descriptions.

View File

@ -72,7 +72,7 @@ munch==2.2.0
netaddr==0.7.19
netifaces==0.10.4
networkx==2.1.0
octavia-lib==2.3.0
octavia-lib==2.5.0
openstacksdk==0.12.0
os-client-config==1.29.0
os-service-types==1.2.0
@ -103,7 +103,7 @@ pep8==1.7.1
pika==0.10.0
pika-pool==0.1.3
prettytable==0.7.2
psutil==5.4.3
psutil==5.7.1
pyasn1==0.1.8
pyasn1-modules==0.0.6
pycadf==2.7.0

View File

@ -97,7 +97,11 @@ class HAProxyQuery(object):
server_id=server_id))
list_results = results[2:].split('\n')
csv_reader = csv.DictReader(list_results)
return list(csv_reader)
stats_list = list(csv_reader)
# We don't want to report the internal prometheus proxy stats
# up to the control plane as it shouldn't be billed traffic
return [stat for stat in stats_list
if "prometheus" not in stat['pxname']]
def get_pool_status(self):
"""Get status for each server and the pool as a whole.
@ -115,6 +119,11 @@ class HAProxyQuery(object):
for line in results:
# pxname: pool, svname: server_name, status: status
# We don't want to report the internal prometheus proxy stats
# up to health manager as it shouldn't be billed traffic
if 'prometheus' in line['pxname']:
continue
if line['pxname'] not in final_results:
final_results[line['pxname']] = dict(members={})

View File

@ -53,6 +53,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
lib_consts.PROTOCOL_PROXYV2,
lib_consts.PROTOCOL_UDP,
lib_consts.PROTOCOL_SCTP,
lib_consts.PROTOCOL_PROMETHEUS,
]

View File

@ -54,6 +54,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
lib_consts.PROTOCOL_PROXYV2,
lib_consts.PROTOCOL_UDP,
lib_consts.PROTOCOL_SCTP,
lib_consts.PROTOCOL_PROMETHEUS,
]

View File

@ -137,6 +137,9 @@ class RootController(object):
self._add_a_version(versions, 'v2.23', 'v2', 'SUPPORTED',
'2020-09-07T00:00:00Z', host_url)
# ALPN protocols (pool)
self._add_a_version(versions, 'v2.24', 'v2', 'CURRENT',
self._add_a_version(versions, 'v2.24', 'v2', 'SUPPORTED',
'2020-10-15T00:00:00Z', host_url)
# PROMETHEUS listeners
self._add_a_version(versions, 'v2.25', 'v2', 'CURRENT',
'2021-10-02T00:00:00Z', host_url)
return {'versions': versions}

View File

@ -13,6 +13,7 @@
# under the License.
from octavia_lib.api.drivers import data_models as driver_dm
from octavia_lib.common import constants as lib_consts
from oslo_config import cfg
from oslo_db import exception as odb_exceptions
from oslo_log import log as logging
@ -129,6 +130,11 @@ class L7PolicyController(base.BaseController):
self._auth_validate_action(context, l7policy.project_id,
constants.RBAC_POST)
# PROMETHEUS listeners cannot have l7policies attached
if listener.protocol == lib_consts.PROTOCOL_PROMETHEUS:
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
# Make sure any pool specified by redirect_pool_id exists
if l7policy.redirect_pool_id:
db_pool = self._get_db_pool(

View File

@ -172,6 +172,11 @@ class ListenersController(base.BaseController):
"""
listener_protocol = listener_dict.get('protocol')
_can_tls_offload = (
listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS or
(listener_protocol == constants.PROTOCOL_PROMETHEUS and
self._has_tls_container_refs(listener_dict)))
if listener_dict and listener_dict.get('insert_headers'):
self._validate_insert_headers(
listener_dict['insert_headers'].keys(), listener_protocol)
@ -186,17 +191,25 @@ class ListenersController(base.BaseController):
# Check for TLS disabled
if (not CONF.api_settings.allow_tls_terminated_listeners and
listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS):
raise exceptions.DisabledOption(
value=constants.PROTOCOL_TERMINATED_HTTPS, option='protocol')
_can_tls_offload):
if listener_protocol == constants.PROTOCOL_PROMETHEUS:
msg = f"{listener_protocol} with TLS"
else:
msg = listener_protocol
raise exceptions.DisabledOption(value=msg, option='protocol')
# Check for certs when not TERMINATED_HTTPS
if (listener_protocol != constants.PROTOCOL_TERMINATED_HTTPS and
# Check for PROMETHEUS listeners disabled
if (not CONF.api_settings.allow_prometheus_listeners and
listener_protocol == lib_consts.PROTOCOL_PROMETHEUS):
raise exceptions.DisabledOption(
value=lib_consts.PROTOCOL_PROMETHEUS, option='protocol')
# Check for certs when not TLS offload capable
if (not _can_tls_offload and
self._has_tls_container_refs(listener_dict)):
raise exceptions.ValidationException(detail=_(
"Certificate container references are only allowed on "
"%s protocol listeners.") %
constants.PROTOCOL_TERMINATED_HTTPS)
"Certificate container references are not allowed on "
"%s protocol listeners.") % listener_protocol)
# Make sure a base certificate exists if specifying a client ca
if (listener_dict.get('client_ca_tls_certificate_id') and
@ -206,14 +219,17 @@ class ListenersController(base.BaseController):
"An SNI or default certificate container reference must "
"be provided with a client CA container reference."))
# Make sure a certificate container is specified for TERMINATED_HTTPS
if (listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS and
# Make sure a certificate container is specified for TLS protocols
if (_can_tls_offload and
not (listener_dict.get('tls_certificate_id') or
listener_dict.get('sni_containers'))):
if listener_protocol == constants.PROTOCOL_PROMETHEUS:
msg = f"{listener_protocol} with TLS"
else:
msg = listener_protocol
raise exceptions.ValidationException(detail=_(
"An SNI or default certificate container reference must "
"be provided for %s protocol listeners.") %
constants.PROTOCOL_TERMINATED_HTTPS)
"be provided for %s protocol listeners.") % msg)
# Make sure we have a client CA cert if they enable client auth
if (listener_dict.get('client_authentication') !=
@ -295,7 +311,7 @@ class ListenersController(base.BaseController):
vip_address = vip_db.ip_address
self._validate_cidr_compatible_with_vip(vip_address, allowed_cidrs)
if listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS:
if _can_tls_offload:
# Validate TLS version list
validate.check_tls_version_list(listener_dict['tls_versions'])
# Validate TLS versions against minimum
@ -363,6 +379,10 @@ class ListenersController(base.BaseController):
listener.to_dict(render_unsets=True), None)
if listener_dict['default_pool_id']:
if (listener_dict.get('protocol') ==
lib_consts.PROTOCOL_PROMETHEUS):
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
self._validate_pool(context.session, load_balancer_id,
listener_dict['default_pool_id'],
listener.protocol)
@ -406,6 +426,9 @@ class ListenersController(base.BaseController):
listener_dict, load_balancer_id)
l7policies = listener_dict.pop('l7policies', l7policies)
if listener_dict.get('default_pool_id'):
if listener_dict.get('protocol') == lib_consts.PROTOCOL_PROMETHEUS:
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
self._validate_pool(lock_session, load_balancer_id,
listener_dict['default_pool_id'],
listener_dict['protocol'])
@ -414,6 +437,12 @@ class ListenersController(base.BaseController):
# Now create l7policies
new_l7ps = []
if (listener_dict.get('protocol') == lib_consts.PROTOCOL_PROMETHEUS and
l7policies):
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
for l7p in l7policies:
l7p['project_id'] = db_listener.project_id
l7p['load_balancer_id'] = load_balancer_id
@ -432,6 +461,11 @@ class ListenersController(base.BaseController):
return db_listener
def _validate_listener_PUT(self, listener, db_listener):
_can_tls_offload = (
db_listener.protocol == constants.PROTOCOL_TERMINATED_HTTPS or
(db_listener.protocol == constants.PROTOCOL_PROMETHEUS and
self._has_tls_container_refs(listener.to_dict())))
# TODO(rm_work): Do we need something like this? What do we do on an
# empty body for a PUT?
if not listener:
@ -446,13 +480,12 @@ class ListenersController(base.BaseController):
"%s protocol listener does not support TLS or header "
"insertion.") % db_listener.protocol)
# Check for certs when not TERMINATED_HTTPS
if (db_listener.protocol != constants.PROTOCOL_TERMINATED_HTTPS and
# Check for certs when not TLS offload capable
if (not _can_tls_offload and
self._has_tls_container_refs(listener.to_dict())):
raise exceptions.ValidationException(detail=_(
"Certificate container references are only allowed on "
"%s protocol listeners.") %
constants.PROTOCOL_TERMINATED_HTTPS)
"Certificate container references are not allowed on "
"%s protocol listeners.") % db_listener.protocol)
# Make sure we have a client CA cert if they enable client auth
if (listener.client_authentication not in
@ -577,6 +610,9 @@ class ListenersController(base.BaseController):
self._set_default_on_none(listener)
if listener.default_pool_id:
if db_listener.protocol == lib_consts.PROTOCOL_PROMETHEUS:
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
self._validate_pool(context.session, load_balancer_id,
listener.default_pool_id, db_listener.protocol)

View File

@ -229,6 +229,9 @@ class PoolsController(base.BaseController):
constants.RBAC_POST)
if pool.listener_id and listener:
if listener.protocol == lib_consts.PROTOCOL_PROMETHEUS:
raise exceptions.ListenerNoChildren(
protocol=lib_consts.PROTOCOL_PROMETHEUS)
self._validate_protocol(listener.protocol, pool.protocol)
if pool.protocol in (constants.PROTOCOL_UDP,

View File

@ -0,0 +1,825 @@
#!/usr/bin/python3
# Copyright 2022 Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This prometheus-proxy is intended to abstract the prometheus metrics
# exported from the reference provider driver load balancing engines (haproxy
# and lvs) such that all of the provider drivers can expose a consistent set
# of metrics. It also aligns the terms to be consistent with Octavia
# terminology.
from http.server import HTTPServer
from http.server import SimpleHTTPRequestHandler
import os
import signal
import socketserver
import sys
import threading
import time
import traceback
import urllib.request
import psutil
from octavia.amphorae.backends.utils import network_namespace
from octavia.common import constants as consts
METRICS_URL = "http://127.0.0.1:9101/metrics"
PRINT_REJECTED = False
EXIT_EVENT = threading.Event()
# A dictionary of prometheus metrics mappings.
# Key: The metric string to match
# Value: A tuple of replacement data.
# tuple[0]: The string to replace the key with.
# tuple[1]: If not None, the replacement HELP line for the metric.
# If tuple[1] is None, the key will be replaced in the HELP string.
# tuple[2]: If not None, includes a dictionary of additional substitutions.
# tuple[2] substitutions happen prior to the key replacement in tuple[0].
METRIC_MAP = {
# Load balancer metrics
"haproxy_process_pool_allocated_bytes ":
("octavia_memory_pool_allocated_bytes ",
"# HELP octavia_memory_pool_allocated_bytes Total amount of memory "
"allocated in the memory pools (in bytes).\n", None),
"haproxy_process_pool_used_bytes ":
("octavia_memory_pool_used_bytes ",
"# HELP octavia_memory_pool_used_bytes Total amount of memory used "
"in the memory pools (in bytes).\n", None),
"haproxy_process_pool_failures_total ":
("octavia_memory_pool_failures_total ",
"# HELP octavia_memory_pool_failures_total Total number of failed "
"memory pool allocations.\n", None),
"haproxy_process_max_connections ":
("octavia_loadbalancer_max_connections ", None, None),
"haproxy_process_current_connections ":
("octavia_loadbalancer_current_connections ", None, None),
# TODO(johnsom) consider adding in UDP
"haproxy_process_connections_total ":
("octavia_loadbalancer_connections_total ", None, None),
# TODO(johnsom) consider adding in UDP (and update help string)
"haproxy_process_requests_total ":
("octavia_loadbalancer_requests_total ", None, None),
"haproxy_process_max_ssl_connections ":
("octavia_loadbalancer_max_ssl_connections ", None, None),
"haproxy_process_current_ssl_connections ":
("octavia_loadbalancer_current_ssl_connections ",
"# HELP octavia_loadbalancer_current_ssl_connections Number of "
"active SSL connections.\n", None),
"haproxy_process_ssl_connections_total ":
("octavia_loadbalancer_ssl_connections_total ", None, None),
"haproxy_process_current_connection_rate ":
("octavia_loadbalancer_current_connection_rate ", None, None),
"haproxy_process_limit_connection_rate ":
("octavia_loadbalancer_limit_connection_rate ", None, None),
"haproxy_process_max_connection_rate ":
("octavia_loadbalancer_max_connection_rate ", None, None),
"haproxy_process_current_session_rate ":
("octavia_loadbalancer_current_session_rate ", None, None),
"haproxy_process_limit_session_rate ":
("octavia_loadbalancer_limit_session_rate ", None, None),
"haproxy_process_max_session_rate ":
("octavia_loadbalancer_max_session_rate ", None, None),
"haproxy_process_current_ssl_rate ":
("octavia_loadbalancer_current_ssl_rate ", None, None),
"haproxy_process_limit_ssl_rate ":
("octavia_loadbalancer_limit_ssl_rate ", None, None),
"haproxy_process_max_ssl_rate ":
("octavia_loadbalancer_max_ssl_rate ", None, None),
"haproxy_process_current_frontend_ssl_key_rate ":
("octavia_loadbalancer_current_frontend_ssl_key_rate ", None, None),
"haproxy_process_max_frontend_ssl_key_rate ":
("octavia_loadbalancer_max_frontend_ssl_key_rate ", None, None),
"haproxy_process_frontent_ssl_reuse ":
("octavia_loadbalancer_frontent_ssl_reuse ", None, None),
"haproxy_process_current_backend_ssl_key_rate ":
("octavia_loadbalancer_current_backend_ssl_key_rate ", None, None),
"haproxy_process_max_backend_ssl_key_rate ":
("octavia_loadbalancer_max_backend_ssl_key_rate ", None, None),
"haproxy_process_ssl_cache_lookups_total ":
("octavia_loadbalancer_ssl_cache_lookups_total ", None, None),
"haproxy_process_ssl_cache_misses_total ":
("octavia_loadbalancer_ssl_cache_misses_total ", None, None),
"haproxy_process_http_comp_bytes_in_total ":
("octavia_loadbalancer_http_comp_bytes_in_total ", None, None),
"haproxy_process_http_comp_bytes_out_total ":
("octavia_loadbalancer_http_comp_bytes_out_total ", None, None),
"haproxy_process_limit_http_comp ":
("octavia_loadbalancer_limit_http_comp ", None, None),
"haproxy_process_listeners ":
("octavia_loadbalancer_listeners ", None, None),
"haproxy_process_dropped_logs_total ":
("octavia_loadbalancer_dropped_logs_total ", None, None),
# Listener metrics
"haproxy_frontend_status ":
("octavia_listener_status ",
"# HELP octavia_listener_status Current status of the listener. "
"0=OFFLINE, 1=ONLINE, 2=DEGRADED.\n", None),
"haproxy_frontend_status{":
("octavia_listener_status{", None, {"proxy=": "listener="}),
"haproxy_frontend_current_sessions ":
("octavia_listener_current_sessions ", None, None),
"haproxy_frontend_current_sessions{":
("octavia_listener_current_sessions{", None,
{"proxy=": "listener="}),
"haproxy_frontend_max_sessions ":
("octavia_listener_max_sessions ", None, None),
"haproxy_frontend_max_sessions{":
("octavia_listener_max_sessions{", None, {"proxy=": "listener="}),
"haproxy_frontend_limit_sessions ":
("octavia_listener_limit_sessions ", None, None),
"haproxy_frontend_limit_sessions{":
("octavia_listener_limit_sessions{", None, {"proxy=": "listener="}),
"haproxy_frontend_sessions_total ":
("octavia_listener_sessions_total ", None, None),
"haproxy_frontend_sessions_total{":
("octavia_listener_sessions_total{", None, {"proxy=": "listener="}),
"haproxy_frontend_limit_session_rate ":
("octavia_listener_limit_session_rate ", None, None),
"haproxy_frontend_limit_session_rate{":
("octavia_listener_limit_session_rate{", None,
{"proxy=": "listener="}),
"haproxy_frontend_max_session_rate ":
("octavia_listener_max_session_rate ", None, None),
"haproxy_frontend_max_session_rate{":
("octavia_listener_max_session_rate{", None,
{"proxy=": "listener="}),
"haproxy_frontend_connections_rate_max ":
("octavia_listener_connections_rate_max ", None, None),
"haproxy_frontend_connections_rate_max{":
("octavia_listener_connections_rate_max{", None,
{"proxy=": "listener="}),
"haproxy_frontend_connections_total ":
("octavia_listener_connections_total ", None, None),
"haproxy_frontend_connections_total{":
("octavia_listener_connections_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_bytes_in_total ":
("octavia_listener_bytes_in_total ", None, None),
"haproxy_frontend_bytes_in_total{":
("octavia_listener_bytes_in_total{", None, {"proxy=": "listener="}),
"haproxy_frontend_bytes_out_total ":
("octavia_listener_bytes_out_total ", None, None),
"haproxy_frontend_bytes_out_total{":
("octavia_listener_bytes_out_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_requests_denied_total ":
("octavia_listener_requests_denied_total ", None, None),
"haproxy_frontend_requests_denied_total{":
("octavia_listener_requests_denied_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_responses_denied_total ":
("octavia_listener_responses_denied_total ", None, None),
"haproxy_frontend_responses_denied_total{":
("octavia_listener_responses_denied_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_request_errors_total ":
("octavia_listener_request_errors_total ", None, None),
"haproxy_frontend_request_errors_total{":
("octavia_listener_request_errors_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_denied_connections_total ":
("octavia_listener_denied_connections_total ",
"# HELP octavia_listener_denied_connections_total Total number of "
"requests denied by connection rules.\n", None),
"haproxy_frontend_denied_connections_total{":
("octavia_listener_denied_connections_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_denied_sessions_total ":
("octavia_listener_denied_sessions_total ",
"# HELP octavia_listener_denied_sessions_total Total number of "
"requests denied by session rules.\n", None),
"haproxy_frontend_denied_sessions_total{":
("octavia_listener_denied_sessions_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_failed_header_rewriting_total ":
("octavia_listener_failed_header_rewriting_total ",
"# HELP octavia_listener_failed_header_rewriting_total Total number "
"of failed header rewriting rules.\n", None),
"haproxy_frontend_failed_header_rewriting_total{":
("octavia_listener_failed_header_rewriting_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_requests_rate_max ":
("octavia_listener_http_requests_rate_max ", None, None),
"haproxy_frontend_http_requests_rate_max{":
("octavia_listener_http_requests_rate_max{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_requests_total ":
("octavia_listener_http_requests_total ", None, None),
"haproxy_frontend_http_requests_total{":
("octavia_listener_http_requests_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_responses_total ":
("octavia_listener_http_responses_total ", None, None),
"haproxy_frontend_http_responses_total{":
("octavia_listener_http_responses_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_intercepted_requests_total ":
("octavia_listener_intercepted_requests_total ", None, None),
"haproxy_frontend_intercepted_requests_total{":
("octavia_listener_intercepted_requests_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_cache_lookups_total ":
("octavia_listener_http_cache_lookups_total ", None, None),
"haproxy_frontend_http_cache_lookups_total{":
("octavia_listener_http_cache_lookups_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_cache_hits_total ":
("octavia_listener_http_cache_hits_total ", None, None),
"haproxy_frontend_http_cache_hits_total{":
("octavia_listener_http_cache_hits_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_comp_bytes_in_total ":
("octavia_listener_http_comp_bytes_in_total ", None, None),
"haproxy_frontend_http_comp_bytes_in_total{":
("octavia_listener_http_comp_bytes_in_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_comp_bytes_out_total ":
("octavia_listener_http_comp_bytes_out_total ", None, None),
"haproxy_frontend_http_comp_bytes_out_total{":
("octavia_listener_http_comp_bytes_out_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_comp_bytes_bypassed_total ":
("octavia_listener_http_comp_bytes_bypassed_total ", None, None),
"haproxy_frontend_http_comp_bytes_bypassed_total{":
("octavia_listener_http_comp_bytes_bypassed_total{", None,
{"proxy=": "listener="}),
"haproxy_frontend_http_comp_responses_total ":
("octavia_listener_http_comp_responses_total ", None, None),
"haproxy_frontend_http_comp_responses_total{":
("octavia_listener_http_comp_responses_total{", None,
{"proxy=": "listener="}),
# Pool Metrics
"haproxy_backend_status ":
("octavia_pool_status ",
"# HELP octavia_pool_status Current status of the pool. 0=OFFLINE, "
"1=ONLINE.\n", None),
"haproxy_backend_status{":
("octavia_pool_status{", None, {"proxy=": "pool="}),
"haproxy_backend_current_sessions ":
("octavia_pool_current_sessions ", None, None),
"haproxy_backend_current_sessions{":
("octavia_pool_current_sessions{", None, {"proxy=": "pool="}),
"haproxy_backend_max_sessions ":
("octavia_pool_max_sessions ", None, None),
"haproxy_backend_max_sessions{":
("octavia_pool_max_sessions{", None, {"proxy=": "pool="}),
"haproxy_backend_limit_sessions ":
("octavia_pool_limit_sessions ", None, None),
"haproxy_backend_limit_sessions{":
("octavia_pool_limit_sessions{", None, {"proxy=": "pool="}),
"haproxy_backend_sessions_total ":
("octavia_pool_sessions_total ", None, None),
"haproxy_backend_sessions_total{":
("octavia_pool_sessions_total{", None, {"proxy=": "pool="}),
"haproxy_backend_max_session_rate ":
("octavia_pool_max_session_rate ", None, None),
"haproxy_backend_max_session_rate{":
("octavia_pool_max_session_rate{", None, {"proxy=": "pool="}),
"haproxy_backend_last_session_seconds ":
("octavia_pool_last_session_seconds ",
"# HELP octavia_pool_last_session_seconds Number of seconds since "
"last session assigned to a member.\n", None, None),
"haproxy_backend_last_session_seconds{":
("octavia_pool_last_session_seconds{", None, {"proxy=": "pool="}),
"haproxy_backend_current_queue ":
("octavia_pool_current_queue ", None, None),
"haproxy_backend_current_queue{":
("octavia_pool_current_queue{", None, {"proxy=": "pool="}),
"haproxy_backend_max_queue ":
("octavia_pool_max_queue ", None, None),
"haproxy_backend_max_queue{":
("octavia_pool_max_queue{", None, {"proxy=": "pool="}),
"haproxy_backend_connection_attempts_total ":
("octavia_pool_connection_attempts_total ", None, None),
"haproxy_backend_connection_attempts_total{":
("octavia_pool_connection_attempts_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_connection_reuses_total ":
("octavia_pool_connection_reuses_total ", None, None),
"haproxy_backend_connection_reuses_total{":
("octavia_pool_connection_reuses_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_bytes_in_total ":
("octavia_pool_bytes_in_total ", None, None),
"haproxy_backend_bytes_in_total{":
("octavia_pool_bytes_in_total{", None, {"proxy=": "pool="}),
"haproxy_backend_bytes_out_total ":
("octavia_pool_bytes_out_total ", None, None),
"haproxy_backend_bytes_out_total{":
("octavia_pool_bytes_out_total{", None, {"proxy=": "pool="}),
"haproxy_backend_queue_time_average_seconds ":
("octavia_pool_queue_time_average_seconds ", None, None),
"haproxy_backend_queue_time_average_seconds{":
("octavia_pool_queue_time_average_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_connect_time_average_seconds ":
("octavia_pool_connect_time_average_seconds ", None, None),
"haproxy_backend_connect_time_average_seconds{":
("octavia_pool_connect_time_average_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_response_time_average_seconds ":
("octavia_pool_response_time_average_seconds ", None, None),
"haproxy_backend_response_time_average_seconds{":
("octavia_pool_response_time_average_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_total_time_average_seconds ":
("octavia_pool_total_time_average_seconds ", None, None),
"haproxy_backend_total_time_average_seconds{":
("octavia_pool_total_time_average_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_max_queue_time_seconds ":
("octavia_pool_max_queue_time_seconds ", None, None),
"haproxy_backend_max_queue_time_seconds{":
("octavia_pool_max_queue_time_seconds{", None, {"proxy=": "pool="}),
"haproxy_backend_max_connect_time_seconds ":
("octavia_pool_max_connect_time_seconds ", None, None),
"haproxy_backend_max_connect_time_seconds{":
("octavia_pool_max_connect_time_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_max_response_time_seconds ":
("octavia_pool_max_response_time_seconds ",
"# HELP octavia_pool_max_response_time_seconds Maximum observed "
"time spent waiting for a member response.\n", None),
"haproxy_backend_max_response_time_seconds{":
("octavia_pool_max_response_time_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_max_total_time_seconds ":
("octavia_pool_max_total_time_seconds ", None, None),
"haproxy_backend_max_total_time_seconds{":
("octavia_pool_max_total_time_seconds{", None, {"proxy=": "pool="}),
"haproxy_backend_requests_denied_total ":
("octavia_pool_requests_denied_total ", None, None),
"haproxy_backend_requests_denied_total{":
("octavia_pool_requests_denied_total{", None, {"proxy=": "pool="}),
"haproxy_backend_responses_denied_total ":
("octavia_pool_responses_denied_total ", None, None),
"haproxy_backend_responses_denied_total{":
("octavia_pool_responses_denied_total{", None, {"proxy=": "pool="}),
"haproxy_backend_connection_errors_total ":
("octavia_pool_connection_errors_total ", None, None),
"haproxy_backend_connection_errors_total{":
("octavia_pool_connection_errors_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_response_errors_total ":
("octavia_pool_response_errors_total ", None, None),
"haproxy_backend_response_errors_total{":
("octavia_pool_response_errors_total{", None, {"proxy=": "pool="}),
"haproxy_backend_retry_warnings_total ":
("octavia_pool_retry_warnings_total ", None, None),
"haproxy_backend_retry_warnings_total{":
("octavia_pool_retry_warnings_total{", None, {"proxy=": "pool="}),
"haproxy_backend_redispatch_warnings_total ":
("octavia_pool_redispatch_warnings_total ", None, None),
"haproxy_backend_redispatch_warnings_total{":
("octavia_pool_redispatch_warnings_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_failed_header_rewriting_total ":
("octavia_pool_failed_header_rewriting_total ", None, None),
"haproxy_backend_failed_header_rewriting_total{":
("octavia_pool_failed_header_rewriting_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_client_aborts_total ":
("octavia_pool_client_aborts_total ", None, None),
"haproxy_backend_client_aborts_total{":
("octavia_pool_client_aborts_total{", None, {"proxy=": "pool="}),
"haproxy_backend_server_aborts_total ":
("octavia_pool_member_aborts_total ",
"# HELP octavia_pool_server_aborts_total Total number of data "
"transfers aborted by the server.\n", None),
"haproxy_backend_server_aborts_total{":
("octavia_pool_member_aborts_total{", None, {"proxy=": "pool="}),
"haproxy_backend_active_servers ":
("octavia_pool_active_members ",
"# HELP octavia_pool_active_members Current number of active "
"members.\n", None),
"haproxy_backend_active_servers{":
("octavia_pool_active_members{", None, {"proxy=": "pool="}),
"haproxy_backend_backup_servers ":
("octavia_pool_backup_members ",
"# HELP octavia_pool_backup_members Current number of backup "
"members.\n", None),
"haproxy_backend_backup_servers{":
("octavia_pool_backup_members{", None, {"proxy=": "pool="}),
"haproxy_backend_check_up_down_total ":
("octavia_pool_check_up_down_total ", None, None),
"haproxy_backend_check_up_down_total{":
("octavia_pool_check_up_down_total{", None, {"proxy=": "pool="}),
"haproxy_backend_check_last_change_seconds ":
("octavia_pool_check_last_change_seconds ", None, None),
"haproxy_backend_check_last_change_seconds{":
("octavia_pool_check_last_change_seconds{", None,
{"proxy=": "pool="}),
"haproxy_backend_downtime_seconds_total ":
("octavia_pool_downtime_seconds_total ",
"# HELP octavia_pool_downtime_seconds_total Total downtime "
"(in seconds) for the pool.\n", None),
"haproxy_backend_downtime_seconds_total{":
("octavia_pool_downtime_seconds_total{", None, {"proxy=": "pool="}),
"haproxy_backend_loadbalanced_total ":
("octavia_pool_loadbalanced_total ",
"# HELP octavia_pool_loadbalanced_total Total number of times a "
"pool was selected, either for new sessions, or when "
"redispatching.\n", None),
"haproxy_backend_loadbalanced_total{":
("octavia_pool_loadbalanced_total{", None, {"proxy=": "pool="}),
"haproxy_backend_http_requests_total ":
("octavia_pool_http_requests_total ", None, None),
"haproxy_backend_http_requests_total{":
("octavia_pool_http_requests_total{", None, {"proxy=": "pool="}),
"haproxy_backend_http_responses_total ":
("octavia_pool_http_responses_total ", None, None),
"haproxy_backend_http_responses_total{":
("octavia_pool_http_responses_total{", None, {"proxy=": "pool="}),
"haproxy_backend_http_cache_lookups_total ":
("octavia_pool_http_cache_lookups_total ", None, None),
"haproxy_backend_http_cache_lookups_total{":
("octavia_pool_http_cache_lookups_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_http_cache_hits_total ":
("octavia_pool_http_cache_hits_total ", None, None),
"haproxy_backend_http_cache_hits_total{":
("octavia_pool_http_cache_hits_total{", None, {"proxy=": "pool="}),
"haproxy_backend_http_comp_bytes_in_total ":
("octavia_pool_http_comp_bytes_in_total ", None, None),
"haproxy_backend_http_comp_bytes_in_total{":
("octavia_pool_http_comp_bytes_in_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_http_comp_bytes_out_total ":
("octavia_pool_http_comp_bytes_out_total ", None, None),
"haproxy_backend_http_comp_bytes_out_total{":
("octavia_pool_http_comp_bytes_out_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_http_comp_bytes_bypassed_total ":
("octavia_pool_http_comp_bytes_bypassed_total ", None, None),
"haproxy_backend_http_comp_bytes_bypassed_total{":
("octavia_pool_http_comp_bytes_bypassed_total{", None,
{"proxy=": "pool="}),
"haproxy_backend_http_comp_responses_total ":
("octavia_pool_http_comp_responses_total ", None, None),
"haproxy_backend_http_comp_responses_total{":
("octavia_pool_http_comp_responses_total{", None,
{"proxy=": "pool="}),
# Member Metrics
"haproxy_server_status ":
("octavia_member_status ",
"# HELP octavia_member_status Current status of the member. "
"0=ERROR, 1=ONLINE, 2=OFFLINE, 3=DRAIN.\n", None),
"haproxy_server_status{":
("octavia_member_status{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_current_sessions ":
("octavia_member_current_sessions ", None, None),
"haproxy_server_current_sessions{":
("octavia_member_current_sessions{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_sessions ":
("octavia_member_max_sessions ", None, None),
"haproxy_server_max_sessions{":
("octavia_member_max_sessions{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_limit_sessions ":
("octavia_member_limit_sessions ", None, None),
"haproxy_server_limit_sessions{":
("octavia_member_limit_sessions{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_sessions_total ":
("octavia_member_sessions_total ", None, None),
"haproxy_server_sessions_total{":
("octavia_member_sessions_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_session_rate ":
("octavia_member_max_session_rate ", None, None),
"haproxy_server_max_session_rate{":
("octavia_member_max_session_rate{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_last_session_seconds ":
("octavia_member_last_session_seconds ",
"# HELP octavia_member_last_session_seconds Number of seconds since "
"last session assigned to the member.\n", None),
"haproxy_server_last_session_seconds{":
("octavia_member_last_session_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_current_queue ":
("octavia_member_current_queue ", None, None),
"haproxy_server_current_queue{":
("octavia_member_current_queue{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_queue ":
("octavia_member_max_queue ", None, None),
"haproxy_server_max_queue{":
("octavia_member_max_queue{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_queue_limit ":
("octavia_member_queue_limit ",
"# HELP octavia_member_queue_limit Configured maxqueue for the "
"member (0 meaning no limit).\n", None),
"haproxy_server_queue_limit{":
("octavia_member_queue_limit{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_bytes_in_total ":
("octavia_member_bytes_in_total ", None, None),
"haproxy_server_bytes_in_total{":
("octavia_member_bytes_in_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_bytes_out_total ":
("octavia_member_bytes_out_total ", None, None),
"haproxy_server_bytes_out_total{":
("octavia_member_bytes_out_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_queue_time_average_seconds ":
("octavia_member_queue_time_average_seconds ", None, None),
"haproxy_server_queue_time_average_seconds{":
("octavia_member_queue_time_average_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_connect_time_average_seconds ":
("octavia_member_connect_time_average_seconds ", None, None),
"haproxy_server_connect_time_average_seconds{":
("octavia_member_connect_time_average_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_response_time_average_seconds ":
("octavia_member_response_time_average_seconds ", None, None),
"haproxy_server_response_time_average_seconds{":
("octavia_member_response_time_average_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_total_time_average_seconds ":
("octavia_member_total_time_average_seconds ", None, None),
"haproxy_server_total_time_average_seconds{":
("octavia_member_total_time_average_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_queue_time_seconds ":
("octavia_member_max_queue_time_seconds ", None, None),
"haproxy_server_max_queue_time_seconds{":
("octavia_member_max_queue_time_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_connect_time_seconds ":
("octavia_member_max_connect_time_seconds ", None, None),
"haproxy_server_max_connect_time_seconds{":
("octavia_member_max_connect_time_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_response_time_seconds ":
("octavia_member_max_response_time_seconds ",
"# HELP octavia_member_max_response_time_seconds Maximum observed "
"time spent waiting for a member response.\n", None),
"haproxy_server_max_response_time_seconds{":
("octavia_member_max_response_time_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_max_total_time_seconds ":
("octavia_member_max_total_time_seconds ", None, None),
"haproxy_server_max_total_time_seconds{":
("octavia_member_max_total_time_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_connection_attempts_total ":
("octavia_member_connection_attempts_total ", None, None),
"haproxy_server_connection_attempts_total{":
("octavia_member_connection_attempts_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_connection_reuses_total ":
("octavia_member_connection_reuses_total ", None, None),
"haproxy_server_connection_reuses_total{":
("octavia_member_connection_reuses_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_responses_denied_total ":
("octavia_member_responses_denied_total ", None, None),
"haproxy_server_responses_denied_total{":
("octavia_member_responses_denied_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_connection_errors_total ":
("octavia_member_connection_errors_total ", None, None),
"haproxy_server_connection_errors_total{":
("octavia_member_connection_errors_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_response_errors_total ":
("octavia_member_response_errors_total ", None, None),
"haproxy_server_response_errors_total{":
("octavia_member_response_errors_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_retry_warnings_total ":
("octavia_member_retry_warnings_total ", None, None),
"haproxy_server_retry_warnings_total{":
("octavia_member_retry_warnings_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_redispatch_warnings_total ":
("octavia_member_redispatch_warnings_total ", None, None),
"haproxy_server_redispatch_warnings_total{":
("octavia_member_redispatch_warnings_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_failed_header_rewriting_total ":
("octavia_member_failed_header_rewriting_total ", None, None),
"haproxy_server_failed_header_rewriting_total{":
("octavia_member_failed_header_rewriting_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_client_aborts_total ":
("octavia_member_client_aborts_total ", None, None),
"haproxy_server_client_aborts_total{":
("octavia_member_client_aborts_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_server_aborts_total ":
("octavia_member_server_aborts_total ", None, None),
"haproxy_server_server_aborts_total{":
("octavia_member_server_aborts_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_weight ":
("octavia_member_weight ",
"# HELP octavia_member_weight Member weight.\n", None),
"haproxy_server_weight{":
("octavia_member_weight{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_check_failures_total ":
("octavia_member_check_failures_total ",
"# HELP octavia_member_check_failures_total Total number of failed "
"check (Only counts checks failed when the member is up).\n", None),
"haproxy_server_check_failures_total{":
("octavia_member_check_failures_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_check_up_down_total ":
("octavia_member_check_up_down_total ", None, None),
"haproxy_server_check_up_down_total{":
("octavia_member_check_up_down_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_downtime_seconds_total ":
("octavia_member_downtime_seconds_total ",
"# HELP octavia_member_downtime_seconds_total Total downtime (in "
"seconds) for the member.\n", None),
"haproxy_server_downtime_seconds_total{":
("octavia_member_downtime_seconds_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_check_last_change_seconds ":
("octavia_member_check_last_change_seconds ", None, None),
"haproxy_server_check_last_change_seconds{":
("octavia_member_check_last_change_seconds{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_current_throttle ":
("octavia_member_current_throttle ",
"# HELP octavia_member_current_throttle Current throttle percentage "
"for the member, when slowstart is active, or no value if not in "
"slowstart.\n", None),
"haproxy_server_current_throttle{":
("octavia_member_current_throttle{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_loadbalanced_total ":
("octavia_member_loadbalanced_total ",
"# HELP octavia_member_loadbalanced_total Total number of times a "
"member was selected, either for new sessions, or when "
"redispatching.\n", None),
"haproxy_server_loadbalanced_total{":
("octavia_member_loadbalanced_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_http_responses_total ":
("octavia_member_http_responses_total ", None, None),
"haproxy_server_http_responses_total{":
("octavia_member_http_responses_total{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_server_idle_connections_current ":
("octavia_member_idle_connections_current ", None, None),
"haproxy_server_server_idle_connections_current{":
("octavia_member_idle_connections_current{", None,
{"proxy=": "pool=", "server=": "member="}),
"haproxy_server_server_idle_connections_limit ":
("octavia_member_idle_connections_limit ", None, None),
"haproxy_server_server_idle_connections_limit{":
("octavia_member_idle_connections_limit{", None,
{"proxy=": "pool=", "server=": "member="}),
}
METRIC_KEYS = METRIC_MAP.keys()
class PrometheusProxy(SimpleHTTPRequestHandler):
protocol_version = 'HTTP/1.1'
# No need to log every request through the proxy
def log_request(self, *args, **kwargs):
pass
def _add_cpu_utilization(self, metrics_buffer):
cpu_pcnt = (psutil.getloadavg()[0] / os.cpu_count()) * 100
metrics_buffer += ("# HELP octavia_loadbalancer_cpu Load balancer "
"CPU utilization (percentage).\n")
metrics_buffer += "# TYPE octavia_loadbalancer_cpu gauge\n"
cpu_metric_string = f"octavia_loadbalancer_cpu {cpu_pcnt:.1f}\n"
metrics_buffer += cpu_metric_string
return metrics_buffer
def _add_memory_utilization(self, metrics_buffer):
mem_pcnt = psutil.virtual_memory()[2]
metrics_buffer += ("# HELP octavia_loadbalancer_memory Load balancer "
"memory utilization (percentage).\n")
metrics_buffer += "# TYPE octavia_loadbalancer_memory gauge\n"
mem_metric_string = f"octavia_loadbalancer_memory {mem_pcnt:.1f}\n"
metrics_buffer += mem_metric_string
return metrics_buffer
def do_GET(self):
metrics_buffer = ""
metrics_buffer = self._add_cpu_utilization(metrics_buffer)
metrics_buffer = self._add_memory_utilization(metrics_buffer)
try:
with urllib.request.urlopen(METRICS_URL) as source: # nosec
lines = source.readlines()
for line in lines:
line = line.decode("utf-8")
# Don't report metrics for the internal prometheus
# proxy loop. The user facing listener will still be
# reported.
if "prometheus-exporter" in line:
continue
match = next((x for x in METRIC_KEYS if x in line), False)
if match:
map_tuple = METRIC_MAP[match]
if map_tuple[1] and "HELP" in line:
metrics_buffer += map_tuple[1]
else:
if map_tuple[2] and not line.startswith("#"):
for key in map_tuple[2].keys():
line = line.replace(key,
map_tuple[2][key])
metrics_buffer += line.replace(match,
map_tuple[0])
elif PRINT_REJECTED:
print("REJECTED: %s" % line)
except Exception as e:
print(str(e), flush=True)
traceback.print_tb(e.__traceback__)
self.send_response(502)
self.send_header("connection", "close")
self.end_headers()
return
self.send_response(200)
self.send_header("cache-control", "no-cache")
self.send_header("content-type", "text/plain; version=0.0.4")
self.send_header("connection", "close")
self.end_headers()
self.wfile.write(metrics_buffer.encode("utf-8"))
class SignalHandler:
def __init__(self):
signal.signal(signal.SIGINT, self.shutdown)
signal.signal(signal.SIGTERM, self.shutdown)
def shutdown(self, *args):
EXIT_EVENT.set()
def shutdown_thread(http):
EXIT_EVENT.wait()
http.shutdown()
# TODO(johnsom) Remove and switch to ThreadingHTTPServer once python3.7 is
# the minimum version supported.
class ThreadedHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
daemon_threads = True
def main():
global PRINT_REJECTED
try:
if sys.argv[1] == "--rejected":
PRINT_REJECTED = True
except Exception:
pass
SignalHandler()
while not EXIT_EVENT.is_set():
# The amphora-haproxy network namespace may not be present, so handle
# it gracefully.
try:
with network_namespace.NetworkNamespace(consts.AMPHORA_NAMESPACE):
httpd = ThreadedHTTPServer(('127.0.0.1', 9102),
PrometheusProxy)
shutdownthread = threading.Thread(target=shutdown_thread,
args=(httpd,))
shutdownthread.start()
# TODO(johnsom) Uncomment this when we move to
# ThreadingHTTPServer
# httpd.daemon_threads = True
print("Now serving on port 9102")
httpd.serve_forever()
except Exception:
time.sleep(1)
if __name__ == "__main__":
main()

View File

@ -84,6 +84,8 @@ api_opts = [
help=_("Allow users to create TLS Terminated listeners?")),
cfg.BoolOpt('allow_ping_health_monitors', default=True,
help=_("Allow users to create PING type Health Monitors?")),
cfg.BoolOpt('allow_prometheus_listeners', default=True,
help=_("Allow users to create PROMETHEUS type listeners?")),
cfg.DictOpt('enabled_provider_drivers',
help=_('A comma separated list of dictionaries of the '
'enabled provider driver names and descriptions. '

View File

@ -150,6 +150,8 @@ PROTOCOL_TERMINATED_HTTPS = lib_consts.PROTOCOL_TERMINATED_HTTPS
# 'PROXY'
PROTOCOL_PROXY = lib_consts.PROTOCOL_PROXY
SUPPORTED_PROTOCOLS = lib_consts.SUPPORTED_PROTOCOLS
# 'PROMETHEUS'
PROTOCOL_PROMETHEUS = lib_consts.PROTOCOL_PROMETHEUS
# 'provisioning_status'
PROVISIONING_STATUS = lib_consts.PROVISIONING_STATUS
@ -215,7 +217,8 @@ VALID_LISTENER_POOL_PROTOCOL_MAP = {
PROTOCOL_TERMINATED_HTTPS: [PROTOCOL_HTTP, PROTOCOL_PROXY,
lib_consts.PROTOCOL_PROXYV2],
PROTOCOL_UDP: [PROTOCOL_UDP],
lib_consts.PROTOCOL_SCTP: [lib_consts.PROTOCOL_SCTP]}
lib_consts.PROTOCOL_SCTP: [lib_consts.PROTOCOL_SCTP],
lib_consts.PROTOCOL_PROMETHEUS: []}
# API Integer Ranges
MIN_PORT_NUMBER = 1
@ -835,6 +838,7 @@ L4_PROTOCOL_MAP = {
lib_consts.PROTOCOL_PROXYV2: PROTOCOL_TCP,
PROTOCOL_UDP: PROTOCOL_UDP,
lib_consts.PROTOCOL_SCTP: lib_consts.PROTOCOL_SCTP,
lib_consts.PROTOCOL_PROMETHEUS: lib_consts.PROTOCOL_TCP,
}
# Image drivers

View File

@ -419,3 +419,8 @@ class InvalidIPAddress(APIException):
class AmphoraNetworkConfigException(OctaviaException):
message = _('Cannot configure network resource in the amphora: '
'%(detail)s')
class ListenerNoChildren(APIException):
msg = _('Protocol %(protocol)s listeners cannot have child objects.')
code = 400

View File

@ -28,7 +28,8 @@ PROTOCOL_MAP = {
constants.PROTOCOL_HTTPS: 'tcp',
constants.PROTOCOL_PROXY: 'proxy',
lib_consts.PROTOCOL_PROXYV2: 'proxy',
constants.PROTOCOL_TERMINATED_HTTPS: 'http'
constants.PROTOCOL_TERMINATED_HTTPS: 'http',
lib_consts.PROTOCOL_PROMETHEUS: 'http'
}
BALANCE_MAP = {
@ -102,6 +103,8 @@ class JinjaTemplater(object):
feature_compatibility[constants.HTTP_REUSE] = True
if not (int(haproxy_versions[0]) < 2 and int(haproxy_versions[1]) < 9):
feature_compatibility[constants.POOL_ALPN] = True
if int(haproxy_versions[0]) >= 2:
feature_compatibility[lib_consts.PROTOCOL_PROMETHEUS] = True
return self.render_loadbalancer_obj(
host_amphora, listeners, tls_certs=tls_certs,
@ -165,6 +168,13 @@ class JinjaTemplater(object):
state_file_path = '%s/%s/servers-state' % (
self.base_amp_path,
listeners[0].load_balancer.id)
prometheus_listener = False
for listener in listeners:
if listener.protocol == lib_consts.PROTOCOL_PROMETHEUS:
prometheus_listener = True
break
enable_prometheus = prometheus_listener and feature_compatibility.get(
lib_consts.PROTOCOL_PROMETHEUS, False)
return self._get_template().render(
{'loadbalancer': loadbalancer,
'stats_sock': socket_path,
@ -174,7 +184,8 @@ class JinjaTemplater(object):
'administrative_log_facility':
CONF.amphora_agent.administrative_log_facility,
'user_log_facility': CONF.amphora_agent.user_log_facility,
'connection_logging': self.connection_logging},
'connection_logging': self.connection_logging,
'enable_prometheus': enable_prometheus},
constants=constants, lib_consts=lib_consts)
def _transform_loadbalancer(self, host_amphora, loadbalancer, listeners,
@ -262,6 +273,8 @@ class JinjaTemplater(object):
CONF.haproxy_amphora.timeout_member_data),
'timeout_tcp_inspect': (listener.timeout_tcp_inspect or
CONF.haproxy_amphora.timeout_tcp_inspect),
lib_consts.PROTOCOL_PROMETHEUS: feature_compatibility.get(
lib_consts.PROTOCOL_PROMETHEUS, False)
}
if self.connection_logging:
ret_value['user_log_format'] = (
@ -292,7 +305,8 @@ class JinjaTemplater(object):
tls_certs[listener.client_crl_container_id]))
tls_enabled = False
if listener.protocol == constants.PROTOCOL_TERMINATED_HTTPS:
if listener.protocol in (constants.PROTOCOL_TERMINATED_HTTPS,
constants.PROTOCOL_PROMETHEUS):
tls_enabled = True
if listener.tls_ciphers is not None:
ret_value['tls_ciphers'] = listener.tls_ciphers

View File

@ -50,4 +50,6 @@ defaults
{% block peers %}{% endblock peers %}
{% block prometheus %}{% endblock prometheus %}
{% block proxies %}{% endblock proxies %}

View File

@ -28,6 +28,27 @@
{{ peers_macro(constants, loadbalancer) }}
{% endblock peers %}
{% block prometheus %}
{% if enable_prometheus %}
frontend prometheus-exporter-internal-endpoint
bind 127.0.0.1:9101
mode http
no log
option http-use-htx
http-request use-service prometheus-exporter if { path /metrics }
http-request reject
timeout http-request 5s
timeout client 5s
backend prometheus-exporter-internal
mode http
no log
balance first
timeout connect 5s
timeout server 5s
server prometheus-internal 127.0.0.1:9102
{% endif %}
{% endblock prometheus %}
{% block proxies %}
{% if loadbalancer.enabled %}
{% for listener in loadbalancer.listeners if listener.enabled %}

View File

@ -177,12 +177,16 @@ frontend {{ listener.id }}
default_backend {{ listener.default_pool.id }}:{{ listener.id }}
{% endif %}
timeout client {{ listener.timeout_client_data }}
{% if listener.user_log_format is defined %}
log-format {{ listener.user_log_format }}
{% endif %}
{% if listener.timeout_tcp_inspect %}
tcp-request inspect-delay {{ listener.timeout_tcp_inspect }}
{% endif %}
{% if listener.protocol == lib_consts.PROTOCOL_PROMETHEUS and
listener.get(lib_consts.PROTOCOL_PROMETHEUS, False) %}
default_backend prometheus-exporter-internal
{% endif %}
{% if listener.user_log_format is defined %}
log-format {{ listener.user_log_format }}
{% endif %}
{% endmacro %}

View File

@ -0,0 +1,45 @@
# Copyright 2021 Red Hat, Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Add prometheus listener protocol
Revision ID: 6ac558d7fc21
Revises: b8bd389cbae7
Create Date: 2021-10-01 20:06:46.813842
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import sql
# revision identifiers, used by Alembic.
revision = '6ac558d7fc21'
down_revision = 'b8bd389cbae7'
new_protocol = 'PROMETHEUS'
def upgrade():
insert_table = sql.table(
u'protocol',
sql.column(u'name', sa.String),
sql.column(u'description', sa.String)
)
op.bulk_insert(
insert_table,
[
{'name': new_protocol}
]
)

View File

@ -0,0 +1,886 @@
# HELP haproxy_process_nbthread Configured number of threads.
# TYPE haproxy_process_nbthread gauge
haproxy_process_nbthread 1
# HELP haproxy_process_nbproc Configured number of processes.
# TYPE haproxy_process_nbproc gauge
haproxy_process_nbproc 1
# HELP haproxy_process_relative_process_id Relative process id, starting at 1.
# TYPE haproxy_process_relative_process_id gauge
haproxy_process_relative_process_id 1
# HELP haproxy_process_start_time_seconds Start time in seconds.
# TYPE haproxy_process_start_time_seconds gauge
haproxy_process_start_time_seconds 1644875239
# HELP haproxy_process_max_memory_bytes Per-process memory limit (in bytes); 0=unset.
# TYPE haproxy_process_max_memory_bytes gauge
haproxy_process_max_memory_bytes 0
# HELP haproxy_process_pool_allocated_bytes Total amount of memory allocated in pools (in bytes).
# TYPE haproxy_process_pool_allocated_bytes gauge
haproxy_process_pool_allocated_bytes 111616
# HELP haproxy_process_pool_used_bytes Total amount of memory used in pools (in bytes).
# TYPE haproxy_process_pool_used_bytes gauge
haproxy_process_pool_used_bytes 78848
# HELP haproxy_process_pool_failures_total Total number of failed pool allocations.
# TYPE haproxy_process_pool_failures_total counter
haproxy_process_pool_failures_total 0
# HELP haproxy_process_max_fds Maximum number of open file descriptors; 0=unset.
# TYPE haproxy_process_max_fds gauge
haproxy_process_max_fds 375033
# HELP haproxy_process_max_sockets Maximum numer of open sockets.
# TYPE haproxy_process_max_sockets gauge
haproxy_process_max_sockets 375033
# HELP haproxy_process_max_connections Maximum number of concurrent connections.
# TYPE haproxy_process_max_connections gauge
haproxy_process_max_connections 150000
# HELP haproxy_process_hard_max_connections Initial Maximum number of concurrent connections.
# TYPE haproxy_process_hard_max_connections gauge
haproxy_process_hard_max_connections 150000
# HELP haproxy_process_current_connections Number of active sessions.
# TYPE haproxy_process_current_connections gauge
haproxy_process_current_connections 1
# HELP haproxy_process_connections_total Total number of created sessions.
# TYPE haproxy_process_connections_total counter
haproxy_process_connections_total 680
# HELP haproxy_process_requests_total Total number of requests (TCP or HTTP).
# TYPE haproxy_process_requests_total counter
haproxy_process_requests_total 680
# HELP haproxy_process_max_ssl_connections Configured maximum number of concurrent SSL connections.
# TYPE haproxy_process_max_ssl_connections gauge
haproxy_process_max_ssl_connections 0
# HELP haproxy_process_current_ssl_connections Number of opened SSL connections.
# TYPE haproxy_process_current_ssl_connections gauge
haproxy_process_current_ssl_connections 0
# HELP haproxy_process_ssl_connections_total Total number of opened SSL connections.
# TYPE haproxy_process_ssl_connections_total counter
haproxy_process_ssl_connections_total 0
# HELP haproxy_process_max_pipes Configured maximum number of pipes.
# TYPE haproxy_process_max_pipes gauge
haproxy_process_max_pipes 37500
# HELP haproxy_process_pipes_used_total Number of pipes in used.
# TYPE haproxy_process_pipes_used_total counter
haproxy_process_pipes_used_total 0
# HELP haproxy_process_pipes_free_total Number of pipes unused.
# TYPE haproxy_process_pipes_free_total counter
haproxy_process_pipes_free_total 0
# HELP haproxy_process_current_connection_rate Current number of connections per second over last elapsed second.
# TYPE haproxy_process_current_connection_rate gauge
haproxy_process_current_connection_rate 1
# HELP haproxy_process_limit_connection_rate Configured maximum number of connections per second.
# TYPE haproxy_process_limit_connection_rate gauge
haproxy_process_limit_connection_rate 0
# HELP haproxy_process_max_connection_rate Maximum observed number of connections per second.
# TYPE haproxy_process_max_connection_rate gauge
haproxy_process_max_connection_rate 2
# HELP haproxy_process_current_session_rate Current number of sessions per second over last elapsed second.
# TYPE haproxy_process_current_session_rate gauge
haproxy_process_current_session_rate 1
# HELP haproxy_process_limit_session_rate Configured maximum number of sessions per second.
# TYPE haproxy_process_limit_session_rate gauge
haproxy_process_limit_session_rate 0
# HELP haproxy_process_max_session_rate Maximum observed number of sessions per second.
# TYPE haproxy_process_max_session_rate gauge
haproxy_process_max_session_rate 2
# HELP haproxy_process_current_ssl_rate Current number of SSL sessions per second over last elapsed second.
# TYPE haproxy_process_current_ssl_rate gauge
haproxy_process_current_ssl_rate 0
# HELP haproxy_process_limit_ssl_rate Configured maximum number of SSL sessions per second.
# TYPE haproxy_process_limit_ssl_rate gauge
haproxy_process_limit_ssl_rate 0
# HELP haproxy_process_max_ssl_rate Maximum observed number of SSL sessions per second.
# TYPE haproxy_process_max_ssl_rate gauge
haproxy_process_max_ssl_rate 0
# HELP haproxy_process_current_frontend_ssl_key_rate Current frontend SSL Key computation per second over last elapsed second.
# TYPE haproxy_process_current_frontend_ssl_key_rate gauge
haproxy_process_current_frontend_ssl_key_rate 0
# HELP haproxy_process_max_frontend_ssl_key_rate Maximum observed frontend SSL Key computation per second.
# TYPE haproxy_process_max_frontend_ssl_key_rate gauge
haproxy_process_max_frontend_ssl_key_rate 0
# HELP haproxy_process_frontent_ssl_reuse SSL session reuse ratio (percent).
# TYPE haproxy_process_frontent_ssl_reuse gauge
haproxy_process_frontent_ssl_reuse 0
# HELP haproxy_process_current_backend_ssl_key_rate Current backend SSL Key computation per second over last elapsed second.
# TYPE haproxy_process_current_backend_ssl_key_rate gauge
haproxy_process_current_backend_ssl_key_rate 0
# HELP haproxy_process_max_backend_ssl_key_rate Maximum observed backend SSL Key computation per second.
# TYPE haproxy_process_max_backend_ssl_key_rate gauge
haproxy_process_max_backend_ssl_key_rate 0
# HELP haproxy_process_ssl_cache_lookups_total Total number of SSL session cache lookups.
# TYPE haproxy_process_ssl_cache_lookups_total counter
haproxy_process_ssl_cache_lookups_total 0
# HELP haproxy_process_ssl_cache_misses_total Total number of SSL session cache misses.
# TYPE haproxy_process_ssl_cache_misses_total counter
haproxy_process_ssl_cache_misses_total 0
# HELP haproxy_process_http_comp_bytes_in_total Number of bytes per second over last elapsed second, before http compression.
# TYPE haproxy_process_http_comp_bytes_in_total counter
haproxy_process_http_comp_bytes_in_total 0
# HELP haproxy_process_http_comp_bytes_out_total Number of bytes per second over last elapsed second, after http compression.
# TYPE haproxy_process_http_comp_bytes_out_total counter
haproxy_process_http_comp_bytes_out_total 0
# HELP haproxy_process_limit_http_comp Configured maximum input compression rate in bytes.
# TYPE haproxy_process_limit_http_comp gauge
haproxy_process_limit_http_comp 0
# HELP haproxy_process_current_zlib_memory Current memory used for zlib in bytes.
# TYPE haproxy_process_current_zlib_memory gauge
haproxy_process_current_zlib_memory 0
# HELP haproxy_process_max_zlib_memory Configured maximum amount of memory for zlib in bytes.
# TYPE haproxy_process_max_zlib_memory gauge
haproxy_process_max_zlib_memory 0
# HELP haproxy_process_current_tasks Current number of tasks.
# TYPE haproxy_process_current_tasks gauge
haproxy_process_current_tasks 20
# HELP haproxy_process_current_run_queue Current number of tasks in the run-queue.
# TYPE haproxy_process_current_run_queue gauge
haproxy_process_current_run_queue 1
# HELP haproxy_process_idle_time_percent Idle to total ratio over last sample (percent).
# TYPE haproxy_process_idle_time_percent gauge
haproxy_process_idle_time_percent 100
# HELP haproxy_process_stopping Non zero means stopping in progress.
# TYPE haproxy_process_stopping gauge
haproxy_process_stopping 0
# HELP haproxy_process_jobs Current number of active jobs (listeners, sessions, open devices).
# TYPE haproxy_process_jobs gauge
haproxy_process_jobs 7
# HELP haproxy_process_unstoppable_jobs Current number of active jobs that can''t be stopped during a soft stop.
# TYPE haproxy_process_unstoppable_jobs gauge
haproxy_process_unstoppable_jobs 0
# HELP haproxy_process_listeners Current number of active listeners.
# TYPE haproxy_process_listeners gauge
haproxy_process_listeners 6
# HELP haproxy_process_active_peers Current number of active peers.
# TYPE haproxy_process_active_peers gauge
haproxy_process_active_peers 0
# HELP haproxy_process_connected_peers Current number of connected peers.
# TYPE haproxy_process_connected_peers gauge
haproxy_process_connected_peers 0
# HELP haproxy_process_dropped_logs_total Total number of dropped logs.
# TYPE haproxy_process_dropped_logs_total counter
haproxy_process_dropped_logs_total 0
# HELP haproxy_process_busy_polling_enabled Non zero if the busy polling is enabled.
# TYPE haproxy_process_busy_polling_enabled gauge
haproxy_process_busy_polling_enabled 0
# HELP haproxy_frontend_status Current status of the service (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB).
# TYPE haproxy_frontend_status gauge
haproxy_frontend_status{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_status{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 1
haproxy_frontend_status{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
haproxy_frontend_status{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 1
# HELP haproxy_frontend_current_sessions Current number of active sessions.
# TYPE haproxy_frontend_current_sessions gauge
haproxy_frontend_current_sessions{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_current_sessions{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_current_sessions{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_current_sessions{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_max_sessions Maximum observed number of active sessions.
# TYPE haproxy_frontend_max_sessions gauge
haproxy_frontend_max_sessions{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_max_sessions{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_max_sessions{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
haproxy_frontend_max_sessions{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_limit_sessions Configured session limit.
# TYPE haproxy_frontend_limit_sessions gauge
haproxy_frontend_limit_sessions{proxy="prometheus-exporter-internal-endpoint"} 150000
haproxy_frontend_limit_sessions{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 50000
haproxy_frontend_limit_sessions{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 50000
haproxy_frontend_limit_sessions{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 50000
# HELP haproxy_frontend_sessions_total Total number of sessions.
# TYPE haproxy_frontend_sessions_total counter
haproxy_frontend_sessions_total{proxy="prometheus-exporter-internal-endpoint"} 4
haproxy_frontend_sessions_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_sessions_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
haproxy_frontend_sessions_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_limit_session_rate Configured limit on new sessions per second.
# TYPE haproxy_frontend_limit_session_rate gauge
haproxy_frontend_limit_session_rate{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_limit_session_rate{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_limit_session_rate{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_limit_session_rate{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_max_session_rate Maximum observed number of sessions per second.
# TYPE haproxy_frontend_max_session_rate gauge
haproxy_frontend_max_session_rate{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_max_session_rate{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_max_session_rate{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
haproxy_frontend_max_session_rate{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_connections_rate_max Maximum observed number of connections per second.
# TYPE haproxy_frontend_connections_rate_max gauge
haproxy_frontend_connections_rate_max{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_connections_rate_max{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_connections_rate_max{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
haproxy_frontend_connections_rate_max{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_connections_total Total number of connections.
# TYPE haproxy_frontend_connections_total counter
haproxy_frontend_connections_total{proxy="prometheus-exporter-internal-endpoint"} 4
haproxy_frontend_connections_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_connections_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
haproxy_frontend_connections_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_bytes_in_total Current total of incoming bytes.
# TYPE haproxy_frontend_bytes_in_total counter
haproxy_frontend_bytes_in_total{proxy="prometheus-exporter-internal-endpoint"} 312
haproxy_frontend_bytes_in_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_bytes_in_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 176
haproxy_frontend_bytes_in_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_bytes_out_total Current total of outgoing bytes.
# TYPE haproxy_frontend_bytes_out_total counter
haproxy_frontend_bytes_out_total{proxy="prometheus-exporter-internal-endpoint"} 177027
haproxy_frontend_bytes_out_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_bytes_out_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 145918
haproxy_frontend_bytes_out_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_requests_denied_total Total number of denied requests.
# TYPE haproxy_frontend_requests_denied_total counter
haproxy_frontend_requests_denied_total{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_requests_denied_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_requests_denied_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_requests_denied_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_responses_denied_total Total number of denied responses.
# TYPE haproxy_frontend_responses_denied_total counter
haproxy_frontend_responses_denied_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_responses_denied_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_responses_denied_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_responses_denied_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_request_errors_total Total number of request errors.
# TYPE haproxy_frontend_request_errors_total counter
haproxy_frontend_request_errors_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_request_errors_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_request_errors_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_request_errors_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_denied_connections_total Total number of requests denied by "tcp-request connection" rules.
# TYPE haproxy_frontend_denied_connections_total counter
haproxy_frontend_denied_connections_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_denied_connections_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_denied_connections_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_denied_connections_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_denied_sessions_total Total number of requests denied by "tcp-request session" rules.
# TYPE haproxy_frontend_denied_sessions_total counter
haproxy_frontend_denied_sessions_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_denied_sessions_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_denied_sessions_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_denied_sessions_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_failed_header_rewriting_total Total number of failed header rewriting warnings.
# TYPE haproxy_frontend_failed_header_rewriting_total counter
haproxy_frontend_failed_header_rewriting_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_failed_header_rewriting_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_failed_header_rewriting_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_failed_header_rewriting_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_requests_rate_max Maximum observed number of HTTP requests per second.
# TYPE haproxy_frontend_http_requests_rate_max gauge
haproxy_frontend_http_requests_rate_max{proxy="prometheus-exporter-internal-endpoint"} 1
haproxy_frontend_http_requests_rate_max{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_requests_rate_max{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
haproxy_frontend_http_requests_rate_max{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_requests_total Total number of HTTP requests received.
# TYPE haproxy_frontend_http_requests_total counter
haproxy_frontend_http_requests_total{proxy="prometheus-exporter-internal-endpoint"} 4
haproxy_frontend_http_requests_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_requests_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
haproxy_frontend_http_requests_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_responses_total Total number of HTTP responses.
# TYPE haproxy_frontend_http_responses_total counter
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="1xx"} 0
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="1xx"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="1xx"} 0
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="1xx"} 0
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="2xx"} 2
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="2xx"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="2xx"} 2
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="2xx"} 0
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="3xx"} 0
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="3xx"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="3xx"} 0
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="3xx"} 0
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="4xx"} 0
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="4xx"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="4xx"} 0
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="4xx"} 0
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="5xx"} 0
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="5xx"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="5xx"} 0
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="5xx"} 0
haproxy_frontend_http_responses_total{proxy="prometheus-exporter-internal-endpoint",code="other"} 1
haproxy_frontend_http_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="other"} 0
haproxy_frontend_http_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="other"} 0
haproxy_frontend_http_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db",code="other"} 0
# HELP haproxy_frontend_intercepted_requests_total Total number of intercepted HTTP requests.
# TYPE haproxy_frontend_intercepted_requests_total counter
haproxy_frontend_intercepted_requests_total{proxy="prometheus-exporter-internal-endpoint"} 3
haproxy_frontend_intercepted_requests_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_intercepted_requests_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_intercepted_requests_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_cache_lookups_total Total number of HTTP cache lookups.
# TYPE haproxy_frontend_http_cache_lookups_total counter
haproxy_frontend_http_cache_lookups_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_cache_lookups_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_cache_lookups_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_cache_lookups_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_cache_hits_total Total number of HTTP cache hits.
# TYPE haproxy_frontend_http_cache_hits_total counter
haproxy_frontend_http_cache_hits_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_cache_hits_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_cache_hits_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_cache_hits_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_comp_bytes_in_total Total number of HTTP response bytes fed to the compressor.
# TYPE haproxy_frontend_http_comp_bytes_in_total counter
haproxy_frontend_http_comp_bytes_in_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_comp_bytes_in_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_comp_bytes_in_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_comp_bytes_in_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_comp_bytes_out_total Total number of HTTP response bytes emitted by the compressor.
# TYPE haproxy_frontend_http_comp_bytes_out_total counter
haproxy_frontend_http_comp_bytes_out_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_comp_bytes_out_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_comp_bytes_out_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_comp_bytes_out_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_comp_bytes_bypassed_total Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
# TYPE haproxy_frontend_http_comp_bytes_bypassed_total counter
haproxy_frontend_http_comp_bytes_bypassed_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_comp_bytes_bypassed_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_comp_bytes_bypassed_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_comp_bytes_bypassed_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_frontend_http_comp_responses_total Total number of HTTP responses that were compressed.
# TYPE haproxy_frontend_http_comp_responses_total counter
haproxy_frontend_http_comp_responses_total{proxy="prometheus-exporter-internal-endpoint"} 0
haproxy_frontend_http_comp_responses_total{proxy="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_frontend_http_comp_responses_total{proxy="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
haproxy_frontend_http_comp_responses_total{proxy="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_status Current status of the service (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB).
# TYPE haproxy_backend_status gauge
haproxy_backend_status{proxy="prometheus-exporter-internal"} 1
haproxy_backend_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_current_sessions Current number of active sessions.
# TYPE haproxy_backend_current_sessions gauge
haproxy_backend_current_sessions{proxy="prometheus-exporter-internal"} 0
haproxy_backend_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_max_sessions Maximum observed number of active sessions.
# TYPE haproxy_backend_max_sessions gauge
haproxy_backend_max_sessions{proxy="prometheus-exporter-internal"} 1
haproxy_backend_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_limit_sessions Configured session limit.
# TYPE haproxy_backend_limit_sessions gauge
haproxy_backend_limit_sessions{proxy="prometheus-exporter-internal"} 5000
haproxy_backend_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 50000
haproxy_backend_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 50000
# HELP haproxy_backend_sessions_total Total number of sessions.
# TYPE haproxy_backend_sessions_total counter
haproxy_backend_sessions_total{proxy="prometheus-exporter-internal"} 2
haproxy_backend_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_max_session_rate Maximum observed number of sessions per second.
# TYPE haproxy_backend_max_session_rate gauge
haproxy_backend_max_session_rate{proxy="prometheus-exporter-internal"} 1
haproxy_backend_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_last_session_seconds Number of seconds since last session assigned to server/backend.
# TYPE haproxy_backend_last_session_seconds gauge
haproxy_backend_last_session_seconds{proxy="prometheus-exporter-internal"} 1829
haproxy_backend_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} -1
haproxy_backend_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} -1
# HELP haproxy_backend_current_queue Current number of queued requests.
# TYPE haproxy_backend_current_queue gauge
haproxy_backend_current_queue{proxy="prometheus-exporter-internal"} 0
haproxy_backend_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_max_queue Maximum observed number of queued requests.
# TYPE haproxy_backend_max_queue gauge
haproxy_backend_max_queue{proxy="prometheus-exporter-internal"} 0
haproxy_backend_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_connection_attempts_total Total number of connection establishment attempts.
# TYPE haproxy_backend_connection_attempts_total counter
haproxy_backend_connection_attempts_total{proxy="prometheus-exporter-internal"} 2
haproxy_backend_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_connection_reuses_total Total number of connection reuses.
# TYPE haproxy_backend_connection_reuses_total counter
haproxy_backend_connection_reuses_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_bytes_in_total Current total of incoming bytes.
# TYPE haproxy_backend_bytes_in_total counter
haproxy_backend_bytes_in_total{proxy="prometheus-exporter-internal"} 176
haproxy_backend_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_bytes_out_total Current total of outgoing bytes.
# TYPE haproxy_backend_bytes_out_total counter
haproxy_backend_bytes_out_total{proxy="prometheus-exporter-internal"} 145918
haproxy_backend_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_queue_time_average_seconds Avg. queue time for last 1024 successful connections.
# TYPE haproxy_backend_queue_time_average_seconds gauge
haproxy_backend_queue_time_average_seconds{proxy="prometheus-exporter-internal"} 0.000000
haproxy_backend_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_connect_time_average_seconds Avg. connect time for last 1024 successful connections.
# TYPE haproxy_backend_connect_time_average_seconds gauge
haproxy_backend_connect_time_average_seconds{proxy="prometheus-exporter-internal"} 0.000000
haproxy_backend_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_response_time_average_seconds Avg. response time for last 1024 successful connections.
# TYPE haproxy_backend_response_time_average_seconds gauge
haproxy_backend_response_time_average_seconds{proxy="prometheus-exporter-internal"} 0.001000
haproxy_backend_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_total_time_average_seconds Avg. total time for last 1024 successful connections.
# TYPE haproxy_backend_total_time_average_seconds gauge
haproxy_backend_total_time_average_seconds{proxy="prometheus-exporter-internal"} 0.001000
haproxy_backend_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_max_queue_time_seconds Maximum observed time spent in the queue
# TYPE haproxy_backend_max_queue_time_seconds gauge
haproxy_backend_max_queue_time_seconds{proxy="prometheus-exporter-internal"} 0.000000
haproxy_backend_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_max_connect_time_seconds Maximum observed time spent waiting for a connection to complete
# TYPE haproxy_backend_max_connect_time_seconds gauge
haproxy_backend_max_connect_time_seconds{proxy="prometheus-exporter-internal"} 0.001000
haproxy_backend_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_max_response_time_seconds Maximum observed time spent waiting for a server response
# TYPE haproxy_backend_max_response_time_seconds gauge
haproxy_backend_max_response_time_seconds{proxy="prometheus-exporter-internal"} 0.038000
haproxy_backend_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_max_total_time_seconds Maximum observed total request+response time (request+queue+connect+response+processing)
# TYPE haproxy_backend_max_total_time_seconds gauge
haproxy_backend_max_total_time_seconds{proxy="prometheus-exporter-internal"} 0.038000
haproxy_backend_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
haproxy_backend_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP haproxy_backend_requests_denied_total Total number of denied requests.
# TYPE haproxy_backend_requests_denied_total counter
haproxy_backend_requests_denied_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_requests_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_requests_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_responses_denied_total Total number of denied responses.
# TYPE haproxy_backend_responses_denied_total counter
haproxy_backend_responses_denied_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_connection_errors_total Total number of connection errors.
# TYPE haproxy_backend_connection_errors_total counter
haproxy_backend_connection_errors_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_response_errors_total Total number of response errors.
# TYPE haproxy_backend_response_errors_total counter
haproxy_backend_response_errors_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_retry_warnings_total Total number of retry warnings.
# TYPE haproxy_backend_retry_warnings_total counter
haproxy_backend_retry_warnings_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_redispatch_warnings_total Total number of redispatch warnings.
# TYPE haproxy_backend_redispatch_warnings_total counter
haproxy_backend_redispatch_warnings_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_failed_header_rewriting_total Total number of failed header rewriting warnings.
# TYPE haproxy_backend_failed_header_rewriting_total counter
haproxy_backend_failed_header_rewriting_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_client_aborts_total Total number of data transfers aborted by the client.
# TYPE haproxy_backend_client_aborts_total counter
haproxy_backend_client_aborts_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_server_aborts_total Total number of data transfers aborted by the server.
# TYPE haproxy_backend_server_aborts_total counter
haproxy_backend_server_aborts_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_weight Service weight.
# TYPE haproxy_backend_weight gauge
haproxy_backend_weight{proxy="prometheus-exporter-internal"} 1
haproxy_backend_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_active_servers Current number of active servers.
# TYPE haproxy_backend_active_servers gauge
haproxy_backend_active_servers{proxy="prometheus-exporter-internal"} 1
haproxy_backend_active_servers{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_active_servers{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_backup_servers Current number of backup servers.
# TYPE haproxy_backend_backup_servers gauge
haproxy_backend_backup_servers{proxy="prometheus-exporter-internal"} 0
haproxy_backend_backup_servers{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_backup_servers{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_check_up_down_total Total number of UP->DOWN transitions.
# TYPE haproxy_backend_check_up_down_total counter
haproxy_backend_check_up_down_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 1
haproxy_backend_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 1
# HELP haproxy_backend_check_last_change_seconds Number of seconds since the last UP<->DOWN transition.
# TYPE haproxy_backend_check_last_change_seconds gauge
haproxy_backend_check_last_change_seconds{proxy="prometheus-exporter-internal"} 3378
haproxy_backend_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 3352
haproxy_backend_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 3349
# HELP haproxy_backend_downtime_seconds_total Total downtime (in seconds) for the service.
# TYPE haproxy_backend_downtime_seconds_total counter
haproxy_backend_downtime_seconds_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 3352
haproxy_backend_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 3349
# HELP haproxy_backend_loadbalanced_total Total number of times a service was selected, either for new sessions, or when redispatching.
# TYPE haproxy_backend_loadbalanced_total counter
haproxy_backend_loadbalanced_total{proxy="prometheus-exporter-internal"} 2
haproxy_backend_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_requests_total Total number of HTTP requests received.
# TYPE haproxy_backend_http_requests_total counter
haproxy_backend_http_requests_total{proxy="prometheus-exporter-internal"} 2
haproxy_backend_http_requests_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_requests_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_responses_total Total number of HTTP responses.
# TYPE haproxy_backend_http_responses_total counter
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="1xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="1xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="1xx"} 0
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="2xx"} 2
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="2xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="2xx"} 0
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="3xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="3xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="3xx"} 0
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="4xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="4xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="4xx"} 0
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="5xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="5xx"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="5xx"} 0
haproxy_backend_http_responses_total{proxy="prometheus-exporter-internal",code="other"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="other"} 0
haproxy_backend_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="other"} 0
# HELP haproxy_backend_http_cache_lookups_total Total number of HTTP cache lookups.
# TYPE haproxy_backend_http_cache_lookups_total counter
haproxy_backend_http_cache_lookups_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_cache_lookups_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_cache_lookups_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_cache_hits_total Total number of HTTP cache hits.
# TYPE haproxy_backend_http_cache_hits_total counter
haproxy_backend_http_cache_hits_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_cache_hits_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_cache_hits_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_comp_bytes_in_total Total number of HTTP response bytes fed to the compressor.
# TYPE haproxy_backend_http_comp_bytes_in_total counter
haproxy_backend_http_comp_bytes_in_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_comp_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_comp_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_comp_bytes_out_total Total number of HTTP response bytes emitted by the compressor.
# TYPE haproxy_backend_http_comp_bytes_out_total counter
haproxy_backend_http_comp_bytes_out_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_comp_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_comp_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_comp_bytes_bypassed_total Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
# TYPE haproxy_backend_http_comp_bytes_bypassed_total counter
haproxy_backend_http_comp_bytes_bypassed_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_comp_bytes_bypassed_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_comp_bytes_bypassed_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_backend_http_comp_responses_total Total number of HTTP responses that were compressed.
# TYPE haproxy_backend_http_comp_responses_total counter
haproxy_backend_http_comp_responses_total{proxy="prometheus-exporter-internal"} 0
haproxy_backend_http_comp_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
haproxy_backend_http_comp_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP haproxy_server_status Current status of the service (frontend: 0=STOP, 1=UP, 2=FULL - backend: 0=DOWN, 1=UP - server: 0=DOWN, 1=UP, 2=MAINT, 3=DRAIN, 4=NOLB).
# TYPE haproxy_server_status gauge
haproxy_server_status{proxy="prometheus-exporter-internal",server="prometheus-internal"} 1
haproxy_server_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_status{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_current_sessions Current number of active sessions.
# TYPE haproxy_server_current_sessions gauge
haproxy_server_current_sessions{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_current_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_max_sessions Maximum observed number of active sessions.
# TYPE haproxy_server_max_sessions gauge
haproxy_server_max_sessions{proxy="prometheus-exporter-internal",server="prometheus-internal"} 1
haproxy_server_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_limit_sessions Configured session limit.
# TYPE haproxy_server_limit_sessions gauge
haproxy_server_limit_sessions{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_limit_sessions{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_sessions_total Total number of sessions.
# TYPE haproxy_server_sessions_total counter
haproxy_server_sessions_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 2
haproxy_server_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_sessions_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_max_session_rate Maximum observed number of sessions per second.
# TYPE haproxy_server_max_session_rate gauge
haproxy_server_max_session_rate{proxy="prometheus-exporter-internal",server="prometheus-internal"} 1
haproxy_server_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_session_rate{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_last_session_seconds Number of seconds since last session assigned to server/backend.
# TYPE haproxy_server_last_session_seconds gauge
haproxy_server_last_session_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 1829
haproxy_server_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} -1
haproxy_server_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} -1
haproxy_server_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} -1
haproxy_server_last_session_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} -1
# HELP haproxy_server_current_queue Current number of queued requests.
# TYPE haproxy_server_current_queue gauge
haproxy_server_current_queue{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_current_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_max_queue Maximum observed number of queued requests.
# TYPE haproxy_server_max_queue gauge
haproxy_server_max_queue{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_max_queue{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_queue_limit Configured maxqueue for the server (0 meaning no limit).
# TYPE haproxy_server_queue_limit gauge
haproxy_server_queue_limit{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_queue_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_queue_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_queue_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_queue_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_bytes_in_total Current total of incoming bytes.
# TYPE haproxy_server_bytes_in_total counter
haproxy_server_bytes_in_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 176
haproxy_server_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_bytes_in_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_bytes_out_total Current total of outgoing bytes.
# TYPE haproxy_server_bytes_out_total counter
haproxy_server_bytes_out_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 145918
haproxy_server_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_bytes_out_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_queue_time_average_seconds Avg. queue time for last 1024 successful connections.
# TYPE haproxy_server_queue_time_average_seconds gauge
haproxy_server_queue_time_average_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.000000
haproxy_server_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_queue_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_connect_time_average_seconds Avg. connect time for last 1024 successful connections.
# TYPE haproxy_server_connect_time_average_seconds gauge
haproxy_server_connect_time_average_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.000000
haproxy_server_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_connect_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_response_time_average_seconds Avg. response time for last 1024 successful connections.
# TYPE haproxy_server_response_time_average_seconds gauge
haproxy_server_response_time_average_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.001000
haproxy_server_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_response_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_total_time_average_seconds Avg. total time for last 1024 successful connections.
# TYPE haproxy_server_total_time_average_seconds gauge
haproxy_server_total_time_average_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.001000
haproxy_server_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_total_time_average_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_max_queue_time_seconds Maximum observed time spent in the queue
# TYPE haproxy_server_max_queue_time_seconds gauge
haproxy_server_max_queue_time_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.000000
haproxy_server_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_queue_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_max_connect_time_seconds Maximum observed time spent waiting for a connection to complete
# TYPE haproxy_server_max_connect_time_seconds gauge
haproxy_server_max_connect_time_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.001000
haproxy_server_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_connect_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_max_response_time_seconds Maximum observed time spent waiting for a server response
# TYPE haproxy_server_max_response_time_seconds gauge
haproxy_server_max_response_time_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.038000
haproxy_server_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_response_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_max_total_time_seconds Maximum observed total request+response time (request+queue+connect+response+processing)
# TYPE haproxy_server_max_total_time_seconds gauge
haproxy_server_max_total_time_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0.038000
haproxy_server_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
haproxy_server_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
haproxy_server_max_total_time_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP haproxy_server_connection_attempts_total Total number of connection establishment attempts.
# TYPE haproxy_server_connection_attempts_total counter
haproxy_server_connection_attempts_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 2
haproxy_server_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_attempts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_connection_reuses_total Total number of connection reuses.
# TYPE haproxy_server_connection_reuses_total counter
haproxy_server_connection_reuses_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_reuses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_responses_denied_total Total number of denied responses.
# TYPE haproxy_server_responses_denied_total counter
haproxy_server_responses_denied_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_responses_denied_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_connection_errors_total Total number of connection errors.
# TYPE haproxy_server_connection_errors_total counter
haproxy_server_connection_errors_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_connection_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_response_errors_total Total number of response errors.
# TYPE haproxy_server_response_errors_total counter
haproxy_server_response_errors_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_response_errors_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_retry_warnings_total Total number of retry warnings.
# TYPE haproxy_server_retry_warnings_total counter
haproxy_server_retry_warnings_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_retry_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_redispatch_warnings_total Total number of redispatch warnings.
# TYPE haproxy_server_redispatch_warnings_total counter
haproxy_server_redispatch_warnings_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_redispatch_warnings_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_failed_header_rewriting_total Total number of failed header rewriting warnings.
# TYPE haproxy_server_failed_header_rewriting_total counter
haproxy_server_failed_header_rewriting_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_failed_header_rewriting_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_client_aborts_total Total number of data transfers aborted by the client.
# TYPE haproxy_server_client_aborts_total counter
haproxy_server_client_aborts_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_client_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_server_aborts_total Total number of data transfers aborted by the server.
# TYPE haproxy_server_server_aborts_total counter
haproxy_server_server_aborts_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_aborts_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_weight Service weight.
# TYPE haproxy_server_weight gauge
haproxy_server_weight{proxy="prometheus-exporter-internal",server="prometheus-internal"} 1
haproxy_server_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
haproxy_server_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 1
haproxy_server_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
haproxy_server_weight{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 1
# HELP haproxy_server_check_failures_total Total number of failed check (Only counts checks failed when the server is up).
# TYPE haproxy_server_check_failures_total counter
haproxy_server_check_failures_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_check_failures_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3
haproxy_server_check_failures_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 3
haproxy_server_check_failures_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3
haproxy_server_check_failures_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 3
# HELP haproxy_server_check_up_down_total Total number of UP->DOWN transitions.
# TYPE haproxy_server_check_up_down_total counter
haproxy_server_check_up_down_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
haproxy_server_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 1
haproxy_server_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
haproxy_server_check_up_down_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 1
# HELP haproxy_server_downtime_seconds_total Total downtime (in seconds) for the service.
# TYPE haproxy_server_downtime_seconds_total counter
haproxy_server_downtime_seconds_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3353
haproxy_server_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 3352
haproxy_server_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3350
haproxy_server_downtime_seconds_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 3349
# HELP haproxy_server_check_last_change_seconds Number of seconds since the last UP<->DOWN transition.
# TYPE haproxy_server_check_last_change_seconds gauge
haproxy_server_check_last_change_seconds{proxy="prometheus-exporter-internal",server="prometheus-internal"} 3378
haproxy_server_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3353
haproxy_server_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 3352
haproxy_server_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3350
haproxy_server_check_last_change_seconds{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 3349
# HELP haproxy_server_current_throttle Current throttle percentage for the server, when slowstart is active, or no value if not in slowstart.
# TYPE haproxy_server_current_throttle gauge
haproxy_server_current_throttle{proxy="prometheus-exporter-internal",server="prometheus-internal"} 100
haproxy_server_current_throttle{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 100
haproxy_server_current_throttle{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 100
haproxy_server_current_throttle{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 100
haproxy_server_current_throttle{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 100
# HELP haproxy_server_loadbalanced_total Total number of times a service was selected, either for new sessions, or when redispatching.
# TYPE haproxy_server_loadbalanced_total counter
haproxy_server_loadbalanced_total{proxy="prometheus-exporter-internal",server="prometheus-internal"} 2
haproxy_server_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_loadbalanced_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_http_responses_total Total number of HTTP responses.
# TYPE haproxy_server_http_responses_total counter
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="1xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="1xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="1xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="1xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="1xx"} 0
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="2xx"} 2
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="2xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="2xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="2xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="2xx"} 0
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="3xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="3xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="3xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="3xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="3xx"} 0
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="4xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="4xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="4xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="4xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="4xx"} 0
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="5xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="5xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="5xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="5xx"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="5xx"} 0
haproxy_server_http_responses_total{proxy="prometheus-exporter-internal",server="prometheus-internal",code="other"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="other"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f",code="other"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="other"} 0
haproxy_server_http_responses_total{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f",code="other"} 0
# HELP haproxy_server_server_idle_connections_current Current number of idle connections available for reuse
# TYPE haproxy_server_server_idle_connections_current gauge
haproxy_server_server_idle_connections_current{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_server_idle_connections_current{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_idle_connections_current{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_server_idle_connections_current{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_idle_connections_current{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP haproxy_server_server_idle_connections_limit Limit on the number of available idle connections
# TYPE haproxy_server_server_idle_connections_limit gauge
haproxy_server_server_idle_connections_limit{proxy="prometheus-exporter-internal",server="prometheus-internal"} 0
haproxy_server_server_idle_connections_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_idle_connections_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",server="88ee5795-d594-478b-8591-455acf30164f"} 0
haproxy_server_server_idle_connections_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
haproxy_server_server_idle_connections_limit{proxy="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",server="88ee5795-d594-478b-8591-455acf30164f"} 0

View File

@ -0,0 +1,695 @@
# HELP octavia_loadbalancer_cpu Load balancer CPU utilization (percentage).
# TYPE octavia_loadbalancer_cpu gauge
octavia_loadbalancer_cpu 50.0
# HELP octavia_loadbalancer_memory Load balancer memory utilization (percentage).
# TYPE octavia_loadbalancer_memory gauge
octavia_loadbalancer_memory 23.5
# HELP octavia_memory_pool_allocated_bytes Total amount of memory allocated in the memory pools (in bytes).
# TYPE octavia_memory_pool_allocated_bytes gauge
octavia_memory_pool_allocated_bytes 111616
# HELP octavia_memory_pool_used_bytes Total amount of memory used in the memory pools (in bytes).
# TYPE octavia_memory_pool_used_bytes gauge
octavia_memory_pool_used_bytes 78848
# HELP octavia_memory_pool_failures_total Total number of failed memory pool allocations.
# TYPE octavia_memory_pool_failures_total counter
octavia_memory_pool_failures_total 0
# HELP octavia_loadbalancer_max_connections Maximum number of concurrent connections.
# TYPE octavia_loadbalancer_max_connections gauge
octavia_loadbalancer_max_connections 150000
# HELP octavia_loadbalancer_current_connections Number of active sessions.
# TYPE octavia_loadbalancer_current_connections gauge
octavia_loadbalancer_current_connections 1
# HELP octavia_loadbalancer_connections_total Total number of created sessions.
# TYPE octavia_loadbalancer_connections_total counter
octavia_loadbalancer_connections_total 680
# HELP octavia_loadbalancer_requests_total Total number of requests (TCP or HTTP).
# TYPE octavia_loadbalancer_requests_total counter
octavia_loadbalancer_requests_total 680
# HELP octavia_loadbalancer_max_ssl_connections Configured maximum number of concurrent SSL connections.
# TYPE octavia_loadbalancer_max_ssl_connections gauge
octavia_loadbalancer_max_ssl_connections 0
# HELP octavia_loadbalancer_current_ssl_connections Number of active SSL connections.
# TYPE octavia_loadbalancer_current_ssl_connections gauge
octavia_loadbalancer_current_ssl_connections 0
# HELP octavia_loadbalancer_ssl_connections_total Total number of opened SSL connections.
# TYPE octavia_loadbalancer_ssl_connections_total counter
octavia_loadbalancer_ssl_connections_total 0
# HELP octavia_loadbalancer_current_connection_rate Current number of connections per second over last elapsed second.
# TYPE octavia_loadbalancer_current_connection_rate gauge
octavia_loadbalancer_current_connection_rate 1
# HELP octavia_loadbalancer_limit_connection_rate Configured maximum number of connections per second.
# TYPE octavia_loadbalancer_limit_connection_rate gauge
octavia_loadbalancer_limit_connection_rate 0
# HELP octavia_loadbalancer_max_connection_rate Maximum observed number of connections per second.
# TYPE octavia_loadbalancer_max_connection_rate gauge
octavia_loadbalancer_max_connection_rate 2
# HELP octavia_loadbalancer_current_session_rate Current number of sessions per second over last elapsed second.
# TYPE octavia_loadbalancer_current_session_rate gauge
octavia_loadbalancer_current_session_rate 1
# HELP octavia_loadbalancer_limit_session_rate Configured maximum number of sessions per second.
# TYPE octavia_loadbalancer_limit_session_rate gauge
octavia_loadbalancer_limit_session_rate 0
# HELP octavia_loadbalancer_max_session_rate Maximum observed number of sessions per second.
# TYPE octavia_loadbalancer_max_session_rate gauge
octavia_loadbalancer_max_session_rate 2
# HELP octavia_loadbalancer_current_ssl_rate Current number of SSL sessions per second over last elapsed second.
# TYPE octavia_loadbalancer_current_ssl_rate gauge
octavia_loadbalancer_current_ssl_rate 0
# HELP octavia_loadbalancer_limit_ssl_rate Configured maximum number of SSL sessions per second.
# TYPE octavia_loadbalancer_limit_ssl_rate gauge
octavia_loadbalancer_limit_ssl_rate 0
# HELP octavia_loadbalancer_max_ssl_rate Maximum observed number of SSL sessions per second.
# TYPE octavia_loadbalancer_max_ssl_rate gauge
octavia_loadbalancer_max_ssl_rate 0
# HELP octavia_loadbalancer_current_frontend_ssl_key_rate Current frontend SSL Key computation per second over last elapsed second.
# TYPE octavia_loadbalancer_current_frontend_ssl_key_rate gauge
octavia_loadbalancer_current_frontend_ssl_key_rate 0
# HELP octavia_loadbalancer_max_frontend_ssl_key_rate Maximum observed frontend SSL Key computation per second.
# TYPE octavia_loadbalancer_max_frontend_ssl_key_rate gauge
octavia_loadbalancer_max_frontend_ssl_key_rate 0
# HELP octavia_loadbalancer_frontent_ssl_reuse SSL session reuse ratio (percent).
# TYPE octavia_loadbalancer_frontent_ssl_reuse gauge
octavia_loadbalancer_frontent_ssl_reuse 0
# HELP octavia_loadbalancer_current_backend_ssl_key_rate Current backend SSL Key computation per second over last elapsed second.
# TYPE octavia_loadbalancer_current_backend_ssl_key_rate gauge
octavia_loadbalancer_current_backend_ssl_key_rate 0
# HELP octavia_loadbalancer_max_backend_ssl_key_rate Maximum observed backend SSL Key computation per second.
# TYPE octavia_loadbalancer_max_backend_ssl_key_rate gauge
octavia_loadbalancer_max_backend_ssl_key_rate 0
# HELP octavia_loadbalancer_ssl_cache_lookups_total Total number of SSL session cache lookups.
# TYPE octavia_loadbalancer_ssl_cache_lookups_total counter
octavia_loadbalancer_ssl_cache_lookups_total 0
# HELP octavia_loadbalancer_ssl_cache_misses_total Total number of SSL session cache misses.
# TYPE octavia_loadbalancer_ssl_cache_misses_total counter
octavia_loadbalancer_ssl_cache_misses_total 0
# HELP octavia_loadbalancer_http_comp_bytes_in_total Number of bytes per second over last elapsed second, before http compression.
# TYPE octavia_loadbalancer_http_comp_bytes_in_total counter
octavia_loadbalancer_http_comp_bytes_in_total 0
# HELP octavia_loadbalancer_http_comp_bytes_out_total Number of bytes per second over last elapsed second, after http compression.
# TYPE octavia_loadbalancer_http_comp_bytes_out_total counter
octavia_loadbalancer_http_comp_bytes_out_total 0
# HELP octavia_loadbalancer_limit_http_comp Configured maximum input compression rate in bytes.
# TYPE octavia_loadbalancer_limit_http_comp gauge
octavia_loadbalancer_limit_http_comp 0
# HELP octavia_loadbalancer_listeners Current number of active listeners.
# TYPE octavia_loadbalancer_listeners gauge
octavia_loadbalancer_listeners 6
# HELP octavia_loadbalancer_dropped_logs_total Total number of dropped logs.
# TYPE octavia_loadbalancer_dropped_logs_total counter
octavia_loadbalancer_dropped_logs_total 0
# HELP octavia_listener_status Current status of the listener. 0=OFFLINE, 1=ONLINE, 2=DEGRADED.
# TYPE octavia_listener_status gauge
octavia_listener_status{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 1
octavia_listener_status{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
octavia_listener_status{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 1
# HELP octavia_listener_current_sessions Current number of active sessions.
# TYPE octavia_listener_current_sessions gauge
octavia_listener_current_sessions{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_current_sessions{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_current_sessions{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_max_sessions Maximum observed number of active sessions.
# TYPE octavia_listener_max_sessions gauge
octavia_listener_max_sessions{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_max_sessions{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
octavia_listener_max_sessions{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_limit_sessions Configured session limit.
# TYPE octavia_listener_limit_sessions gauge
octavia_listener_limit_sessions{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 50000
octavia_listener_limit_sessions{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 50000
octavia_listener_limit_sessions{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 50000
# HELP octavia_listener_sessions_total Total number of sessions.
# TYPE octavia_listener_sessions_total counter
octavia_listener_sessions_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_sessions_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
octavia_listener_sessions_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_limit_session_rate Configured limit on new sessions per second.
# TYPE octavia_listener_limit_session_rate gauge
octavia_listener_limit_session_rate{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_limit_session_rate{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_limit_session_rate{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_max_session_rate Maximum observed number of sessions per second.
# TYPE octavia_listener_max_session_rate gauge
octavia_listener_max_session_rate{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_max_session_rate{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
octavia_listener_max_session_rate{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_connections_rate_max Maximum observed number of connections per second.
# TYPE octavia_listener_connections_rate_max gauge
octavia_listener_connections_rate_max{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_connections_rate_max{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
octavia_listener_connections_rate_max{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_connections_total Total number of connections.
# TYPE octavia_listener_connections_total counter
octavia_listener_connections_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_connections_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
octavia_listener_connections_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_bytes_in_total Current total of incoming bytes.
# TYPE octavia_listener_bytes_in_total counter
octavia_listener_bytes_in_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_bytes_in_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 176
octavia_listener_bytes_in_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_bytes_out_total Current total of outgoing bytes.
# TYPE octavia_listener_bytes_out_total counter
octavia_listener_bytes_out_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_bytes_out_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 145918
octavia_listener_bytes_out_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_requests_denied_total Total number of denied requests.
# TYPE octavia_listener_requests_denied_total counter
octavia_listener_requests_denied_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_requests_denied_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_requests_denied_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_responses_denied_total Total number of denied responses.
# TYPE octavia_listener_responses_denied_total counter
octavia_listener_responses_denied_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_responses_denied_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_responses_denied_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_request_errors_total Total number of request errors.
# TYPE octavia_listener_request_errors_total counter
octavia_listener_request_errors_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_request_errors_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_request_errors_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_denied_connections_total Total number of requests denied by connection rules.
# TYPE octavia_listener_denied_connections_total counter
octavia_listener_denied_connections_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_denied_connections_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_denied_connections_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_denied_sessions_total Total number of requests denied by session rules.
# TYPE octavia_listener_denied_sessions_total counter
octavia_listener_denied_sessions_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_denied_sessions_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_denied_sessions_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_failed_header_rewriting_total Total number of failed header rewriting rules.
# TYPE octavia_listener_failed_header_rewriting_total counter
octavia_listener_failed_header_rewriting_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_failed_header_rewriting_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_failed_header_rewriting_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_requests_rate_max Maximum observed number of HTTP requests per second.
# TYPE octavia_listener_http_requests_rate_max gauge
octavia_listener_http_requests_rate_max{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_requests_rate_max{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 1
octavia_listener_http_requests_rate_max{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_requests_total Total number of HTTP requests received.
# TYPE octavia_listener_http_requests_total counter
octavia_listener_http_requests_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_requests_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 2
octavia_listener_http_requests_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_responses_total Total number of HTTP responses.
# TYPE octavia_listener_http_responses_total counter
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="1xx"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="1xx"} 0
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="1xx"} 0
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="2xx"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="2xx"} 2
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="2xx"} 0
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="3xx"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="3xx"} 0
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="3xx"} 0
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="4xx"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="4xx"} 0
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="4xx"} 0
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="5xx"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="5xx"} 0
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="5xx"} 0
octavia_listener_http_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="other"} 0
octavia_listener_http_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7",code="other"} 0
octavia_listener_http_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db",code="other"} 0
# HELP octavia_listener_intercepted_requests_total Total number of intercepted HTTP requests.
# TYPE octavia_listener_intercepted_requests_total counter
octavia_listener_intercepted_requests_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_intercepted_requests_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_intercepted_requests_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_cache_lookups_total Total number of HTTP cache lookups.
# TYPE octavia_listener_http_cache_lookups_total counter
octavia_listener_http_cache_lookups_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_cache_lookups_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_cache_lookups_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_cache_hits_total Total number of HTTP cache hits.
# TYPE octavia_listener_http_cache_hits_total counter
octavia_listener_http_cache_hits_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_cache_hits_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_cache_hits_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_comp_bytes_in_total Total number of HTTP response bytes fed to the compressor.
# TYPE octavia_listener_http_comp_bytes_in_total counter
octavia_listener_http_comp_bytes_in_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_comp_bytes_in_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_comp_bytes_in_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_comp_bytes_out_total Total number of HTTP response bytes emitted by the compressor.
# TYPE octavia_listener_http_comp_bytes_out_total counter
octavia_listener_http_comp_bytes_out_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_comp_bytes_out_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_comp_bytes_out_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_comp_bytes_bypassed_total Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
# TYPE octavia_listener_http_comp_bytes_bypassed_total counter
octavia_listener_http_comp_bytes_bypassed_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_comp_bytes_bypassed_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_comp_bytes_bypassed_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_listener_http_comp_responses_total Total number of HTTP responses that were compressed.
# TYPE octavia_listener_http_comp_responses_total counter
octavia_listener_http_comp_responses_total{listener="1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_listener_http_comp_responses_total{listener="4919eeb2-b3ed-40c5-8200-057400b83bb7"} 0
octavia_listener_http_comp_responses_total{listener="0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_status Current status of the pool. 0=OFFLINE, 1=ONLINE.
# TYPE octavia_pool_status gauge
octavia_pool_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_current_sessions Current number of active sessions.
# TYPE octavia_pool_current_sessions gauge
octavia_pool_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_max_sessions Maximum observed number of active sessions.
# TYPE octavia_pool_max_sessions gauge
octavia_pool_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_limit_sessions Configured session limit.
# TYPE octavia_pool_limit_sessions gauge
octavia_pool_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 50000
octavia_pool_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 50000
# HELP octavia_pool_sessions_total Total number of sessions.
# TYPE octavia_pool_sessions_total counter
octavia_pool_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_max_session_rate Maximum observed number of sessions per second.
# TYPE octavia_pool_max_session_rate gauge
octavia_pool_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_last_session_seconds Number of seconds since last session assigned to a member.
# TYPE octavia_pool_last_session_seconds gauge
octavia_pool_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} -1
octavia_pool_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} -1
# HELP octavia_pool_current_queue Current number of queued requests.
# TYPE octavia_pool_current_queue gauge
octavia_pool_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_max_queue Maximum observed number of queued requests.
# TYPE octavia_pool_max_queue gauge
octavia_pool_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_connection_attempts_total Total number of connection establishment attempts.
# TYPE octavia_pool_connection_attempts_total counter
octavia_pool_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_connection_reuses_total Total number of connection reuses.
# TYPE octavia_pool_connection_reuses_total counter
octavia_pool_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_bytes_in_total Current total of incoming bytes.
# TYPE octavia_pool_bytes_in_total counter
octavia_pool_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_bytes_out_total Current total of outgoing bytes.
# TYPE octavia_pool_bytes_out_total counter
octavia_pool_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_queue_time_average_seconds Avg. queue time for last 1024 successful connections.
# TYPE octavia_pool_queue_time_average_seconds gauge
octavia_pool_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_connect_time_average_seconds Avg. connect time for last 1024 successful connections.
# TYPE octavia_pool_connect_time_average_seconds gauge
octavia_pool_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_response_time_average_seconds Avg. response time for last 1024 successful connections.
# TYPE octavia_pool_response_time_average_seconds gauge
octavia_pool_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_total_time_average_seconds Avg. total time for last 1024 successful connections.
# TYPE octavia_pool_total_time_average_seconds gauge
octavia_pool_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_max_queue_time_seconds Maximum observed time spent in the queue
# TYPE octavia_pool_max_queue_time_seconds gauge
octavia_pool_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_max_connect_time_seconds Maximum observed time spent waiting for a connection to complete
# TYPE octavia_pool_max_connect_time_seconds gauge
octavia_pool_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_max_response_time_seconds Maximum observed time spent waiting for a member response.
# TYPE octavia_pool_max_response_time_seconds gauge
octavia_pool_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_max_total_time_seconds Maximum observed total request+response time (request+queue+connect+response+processing)
# TYPE octavia_pool_max_total_time_seconds gauge
octavia_pool_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0.000000
octavia_pool_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0.000000
# HELP octavia_pool_requests_denied_total Total number of denied requests.
# TYPE octavia_pool_requests_denied_total counter
octavia_pool_requests_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_requests_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_responses_denied_total Total number of denied responses.
# TYPE octavia_pool_responses_denied_total counter
octavia_pool_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_connection_errors_total Total number of connection errors.
# TYPE octavia_pool_connection_errors_total counter
octavia_pool_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_response_errors_total Total number of response errors.
# TYPE octavia_pool_response_errors_total counter
octavia_pool_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_retry_warnings_total Total number of retry warnings.
# TYPE octavia_pool_retry_warnings_total counter
octavia_pool_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_redispatch_warnings_total Total number of redispatch warnings.
# TYPE octavia_pool_redispatch_warnings_total counter
octavia_pool_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_failed_header_rewriting_total Total number of failed header rewriting warnings.
# TYPE octavia_pool_failed_header_rewriting_total counter
octavia_pool_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_client_aborts_total Total number of data transfers aborted by the client.
# TYPE octavia_pool_client_aborts_total counter
octavia_pool_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_server_aborts_total Total number of data transfers aborted by the server.
# TYPE octavia_pool_member_aborts_total counter
octavia_pool_member_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_member_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_active_members Current number of active members.
# TYPE octavia_pool_active_members gauge
octavia_pool_active_members{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_active_members{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_backup_members Current number of backup members.
# TYPE octavia_pool_backup_members gauge
octavia_pool_backup_members{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_backup_members{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_check_up_down_total Total number of UP->DOWN transitions.
# TYPE octavia_pool_check_up_down_total counter
octavia_pool_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 1
octavia_pool_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 1
# HELP octavia_pool_check_last_change_seconds Number of seconds since the last UP<->DOWN transition.
# TYPE octavia_pool_check_last_change_seconds gauge
octavia_pool_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 3352
octavia_pool_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 3349
# HELP octavia_pool_downtime_seconds_total Total downtime (in seconds) for the pool.
# TYPE octavia_pool_downtime_seconds_total counter
octavia_pool_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 3352
octavia_pool_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 3349
# HELP octavia_pool_loadbalanced_total Total number of times a pool was selected, either for new sessions, or when redispatching.
# TYPE octavia_pool_loadbalanced_total counter
octavia_pool_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_requests_total Total number of HTTP requests received.
# TYPE octavia_pool_http_requests_total counter
octavia_pool_http_requests_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_requests_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_responses_total Total number of HTTP responses.
# TYPE octavia_pool_http_responses_total counter
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="1xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="1xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="2xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="2xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="3xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="3xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="4xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="4xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="5xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="5xx"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",code="other"} 0
octavia_pool_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",code="other"} 0
# HELP octavia_pool_http_cache_lookups_total Total number of HTTP cache lookups.
# TYPE octavia_pool_http_cache_lookups_total counter
octavia_pool_http_cache_lookups_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_cache_lookups_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_cache_hits_total Total number of HTTP cache hits.
# TYPE octavia_pool_http_cache_hits_total counter
octavia_pool_http_cache_hits_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_cache_hits_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_comp_bytes_in_total Total number of HTTP response bytes fed to the compressor.
# TYPE octavia_pool_http_comp_bytes_in_total counter
octavia_pool_http_comp_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_comp_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_comp_bytes_out_total Total number of HTTP response bytes emitted by the compressor.
# TYPE octavia_pool_http_comp_bytes_out_total counter
octavia_pool_http_comp_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_comp_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_comp_bytes_bypassed_total Total number of bytes that bypassed the HTTP compressor (CPU/BW limit).
# TYPE octavia_pool_http_comp_bytes_bypassed_total counter
octavia_pool_http_comp_bytes_bypassed_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_comp_bytes_bypassed_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_pool_http_comp_responses_total Total number of HTTP responses that were compressed.
# TYPE octavia_pool_http_comp_responses_total counter
octavia_pool_http_comp_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74"} 0
octavia_pool_http_comp_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db"} 0
# HELP octavia_member_status Current status of the member. 0=ERROR, 1=ONLINE, 2=OFFLINE, 3=DRAIN.
# TYPE octavia_member_status gauge
octavia_member_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_status{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_current_sessions Current number of active sessions.
# TYPE octavia_member_current_sessions gauge
octavia_member_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_current_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_max_sessions Maximum observed number of active sessions.
# TYPE octavia_member_max_sessions gauge
octavia_member_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_limit_sessions Configured session limit.
# TYPE octavia_member_limit_sessions gauge
octavia_member_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_limit_sessions{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_sessions_total Total number of sessions.
# TYPE octavia_member_sessions_total counter
octavia_member_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_sessions_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_max_session_rate Maximum observed number of sessions per second.
# TYPE octavia_member_max_session_rate gauge
octavia_member_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_session_rate{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_last_session_seconds Number of seconds since last session assigned to the member.
# TYPE octavia_member_last_session_seconds gauge
octavia_member_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} -1
octavia_member_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} -1
octavia_member_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} -1
octavia_member_last_session_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} -1
# HELP octavia_member_current_queue Current number of queued requests.
# TYPE octavia_member_current_queue gauge
octavia_member_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_current_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_max_queue Maximum observed number of queued requests.
# TYPE octavia_member_max_queue gauge
octavia_member_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_max_queue{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_queue_limit Configured maxqueue for the member (0 meaning no limit).
# TYPE octavia_member_queue_limit gauge
octavia_member_queue_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_queue_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_queue_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_queue_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_bytes_in_total Current total of incoming bytes.
# TYPE octavia_member_bytes_in_total counter
octavia_member_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_bytes_in_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_bytes_out_total Current total of outgoing bytes.
# TYPE octavia_member_bytes_out_total counter
octavia_member_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_bytes_out_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_queue_time_average_seconds Avg. queue time for last 1024 successful connections.
# TYPE octavia_member_queue_time_average_seconds gauge
octavia_member_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_queue_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_connect_time_average_seconds Avg. connect time for last 1024 successful connections.
# TYPE octavia_member_connect_time_average_seconds gauge
octavia_member_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_connect_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_response_time_average_seconds Avg. response time for last 1024 successful connections.
# TYPE octavia_member_response_time_average_seconds gauge
octavia_member_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_response_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_total_time_average_seconds Avg. total time for last 1024 successful connections.
# TYPE octavia_member_total_time_average_seconds gauge
octavia_member_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_total_time_average_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_max_queue_time_seconds Maximum observed time spent in the queue
# TYPE octavia_member_max_queue_time_seconds gauge
octavia_member_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_queue_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_max_connect_time_seconds Maximum observed time spent waiting for a connection to complete
# TYPE octavia_member_max_connect_time_seconds gauge
octavia_member_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_connect_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_max_response_time_seconds Maximum observed time spent waiting for a member response.
# TYPE octavia_member_max_response_time_seconds gauge
octavia_member_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_response_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_max_total_time_seconds Maximum observed total request+response time (request+queue+connect+response+processing)
# TYPE octavia_member_max_total_time_seconds gauge
octavia_member_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
octavia_member_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0.000000
octavia_member_max_total_time_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0.000000
# HELP octavia_member_connection_attempts_total Total number of connection establishment attempts.
# TYPE octavia_member_connection_attempts_total counter
octavia_member_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_attempts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_connection_reuses_total Total number of connection reuses.
# TYPE octavia_member_connection_reuses_total counter
octavia_member_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_reuses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_responses_denied_total Total number of denied responses.
# TYPE octavia_member_responses_denied_total counter
octavia_member_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_responses_denied_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_connection_errors_total Total number of connection errors.
# TYPE octavia_member_connection_errors_total counter
octavia_member_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_connection_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_response_errors_total Total number of response errors.
# TYPE octavia_member_response_errors_total counter
octavia_member_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_response_errors_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_retry_warnings_total Total number of retry warnings.
# TYPE octavia_member_retry_warnings_total counter
octavia_member_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_retry_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_redispatch_warnings_total Total number of redispatch warnings.
# TYPE octavia_member_redispatch_warnings_total counter
octavia_member_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_redispatch_warnings_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_failed_header_rewriting_total Total number of failed header rewriting warnings.
# TYPE octavia_member_failed_header_rewriting_total counter
octavia_member_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_failed_header_rewriting_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_client_aborts_total Total number of data transfers aborted by the client.
# TYPE octavia_member_client_aborts_total counter
octavia_member_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_client_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_server_aborts_total Total number of data transfers aborted by the server.
# TYPE octavia_member_server_aborts_total counter
octavia_member_server_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_server_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_server_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_server_aborts_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_weight Member weight.
# TYPE octavia_member_weight gauge
octavia_member_weight{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
octavia_member_weight{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 1
octavia_member_weight{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
octavia_member_weight{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 1
# HELP octavia_member_check_failures_total Total number of failed check (Only counts checks failed when the member is up).
# TYPE octavia_member_check_failures_total counter
octavia_member_check_failures_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3
octavia_member_check_failures_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 3
octavia_member_check_failures_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3
octavia_member_check_failures_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 3
# HELP octavia_member_check_up_down_total Total number of UP->DOWN transitions.
# TYPE octavia_member_check_up_down_total counter
octavia_member_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
octavia_member_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 1
octavia_member_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 1
octavia_member_check_up_down_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 1
# HELP octavia_member_downtime_seconds_total Total downtime (in seconds) for the member.
# TYPE octavia_member_downtime_seconds_total counter
octavia_member_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3353
octavia_member_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 3352
octavia_member_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3350
octavia_member_downtime_seconds_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 3349
# HELP octavia_member_check_last_change_seconds Number of seconds since the last UP<->DOWN transition.
# TYPE octavia_member_check_last_change_seconds gauge
octavia_member_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3353
octavia_member_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 3352
octavia_member_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 3350
octavia_member_check_last_change_seconds{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 3349
# HELP octavia_member_current_throttle Current throttle percentage for the member, when slowstart is active, or no value if not in slowstart.
# TYPE octavia_member_current_throttle gauge
octavia_member_current_throttle{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 100
octavia_member_current_throttle{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 100
octavia_member_current_throttle{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 100
octavia_member_current_throttle{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 100
# HELP octavia_member_loadbalanced_total Total number of times a member was selected, either for new sessions, or when redispatching.
# TYPE octavia_member_loadbalanced_total counter
octavia_member_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_loadbalanced_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_http_responses_total Total number of HTTP responses.
# TYPE octavia_member_http_responses_total counter
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="1xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="1xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="1xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="1xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="2xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="2xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="2xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="2xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="3xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="3xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="3xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="3xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="4xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="4xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="4xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="4xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="5xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="5xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="5xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="5xx"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="other"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f",code="other"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77",code="other"} 0
octavia_member_http_responses_total{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f",code="other"} 0
# HELP octavia_member_idle_connections_current Current number of idle connections available for reuse
# TYPE octavia_member_idle_connections_current gauge
octavia_member_idle_connections_current{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_idle_connections_current{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_idle_connections_current{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_idle_connections_current{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0
# HELP octavia_member_idle_connections_limit Limit on the number of available idle connections
# TYPE octavia_member_idle_connections_limit gauge
octavia_member_idle_connections_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_idle_connections_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:1a0c13c0-8e69-46c7-a68a-ca4937996d74",member="88ee5795-d594-478b-8591-455acf30164f"} 0
octavia_member_idle_connections_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="edf6ca81-b5d5-4d94-a656-f6028d8bbb77"} 0
octavia_member_idle_connections_limit{pool="6034884d-ed47-49d5-ade7-8fa2c4501a74:0b248d39-eb90-4180-91aa-5363be7df4db",member="88ee5795-d594-478b-8591-455acf30164f"} 0

View File

@ -45,7 +45,7 @@ class TestRootController(base_db_test.OctaviaDBTestBase):
def test_api_versions(self):
versions = self._get_versions_with_config()
version_ids = tuple(v.get('id') for v in versions)
self.assertEqual(25, len(version_ids))
self.assertEqual(26, len(version_ids))
self.assertIn('v2.0', version_ids)
self.assertIn('v2.1', version_ids)
self.assertIn('v2.2', version_ids)
@ -71,6 +71,7 @@ class TestRootController(base_db_test.OctaviaDBTestBase):
self.assertIn('v2.22', version_ids)
self.assertIn('v2.23', version_ids)
self.assertIn('v2.24', version_ids)
self.assertIn('v2.25', version_ids)
# Each version should have a 'self' 'href' to the API version URL
# [{u'rel': u'self', u'href': u'http://localhost/v2'}]

View File

@ -14,6 +14,7 @@
from unittest import mock
from octavia_lib.common import constants as lib_consts
from oslo_config import cfg
from oslo_config import fixture as oslo_fixture
from oslo_utils import uuidutils
@ -858,6 +859,14 @@ class TestL7Policy(base.BaseAPITest):
'redirect_url': 'http://a.com'}
self.post(self.L7POLICIES_PATH, self._build_body(l7policy), status=403)
def test_negative_create_prometheus_listener(self):
prometheus_listener = self.create_listener(
lib_consts.PROTOCOL_PROMETHEUS, 8123, lb_id=self.lb_id)
prometheus_listener_id = prometheus_listener.get('listener').get('id')
self.set_lb_status(self.lb_id)
l7policy = {'listener_id': prometheus_listener_id, 'name': 'test1'}
self.post(self.L7POLICIES_PATH, self._build_body(l7policy), status=400)
def test_update(self):
api_l7policy = self.create_l7policy(self.listener_id,
constants.L7POLICY_ACTION_REJECT,

View File

@ -799,10 +799,9 @@ class TestListener(base.BaseAPITest):
resp = self.test_create(response_status=400, **optionals).json
fault = resp.get('faultstring')
self.assertIn(
'Certificate container references are only allowed on ', fault)
'Certificate container references are not allowed on ', fault)
self.assertIn(
'{} protocol listeners.'.format(
constants.PROTOCOL_TERMINATED_HTTPS), fault)
'{} protocol listeners.'.format(constants.PROTOCOL_TCP), fault)
def test_create_without_certs_if_terminated_https(self):
optionals = {
@ -1361,6 +1360,27 @@ class TestListener(base.BaseAPITest):
def test_negative_create_UDP_with_headers(self):
self._test_negative_create_with_headers(constants.PROTOCOL_UDP)
def test_create_prometheus(self):
self.conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
self.conf.config(group='api_settings', allow_prometheus_listeners=True)
listener = self.create_listener(lib_consts.PROTOCOL_PROMETHEUS,
80, self.lb_id)
listener_path = self.LISTENER_PATH.format(
listener_id=listener['listener']['id'])
get_listener = self.get(listener_path).json['listener']
self.assertEqual(lib_consts.PROTOCOL_PROMETHEUS,
get_listener['protocol'])
def test_create_prometheus_disabled(self):
self.conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
self.conf.config(group='api_settings',
allow_prometheus_listeners=False)
req_dict = {'name': 'create_listener_prometheus_disabled',
'protocol': lib_consts.PROTOCOL_PROMETHEUS,
'protocol_port': 6666,
'loadbalancer_id': self.lb_id}
self.post(self.LISTENERS_PATH, self._build_body(req_dict), status=400)
def test_update_allowed_cidrs(self):
allowed_cidrs = ['10.0.1.0/24', '10.0.2.0/24']
new_cidrs = ['10.0.1.0/24', '10.0.3.0/24']
@ -1620,10 +1640,9 @@ class TestListener(base.BaseAPITest):
response = self.put(listener_path, body, status=400).json
fault = response.get('faultstring')
self.assertIn(
'Certificate container references are only allowed on ', fault)
self.assertIn(
'{} protocol listeners.'.format(
constants.PROTOCOL_TERMINATED_HTTPS), fault)
'Certificate container references are not allowed on ', fault)
self.assertIn('{} protocol listeners.'.format(
constants.PROTOCOL_TCP), fault)
def test_update_with_ca_cert(self):
self.cert_manager_mock().get_secret.return_value = (
@ -2617,8 +2636,8 @@ class TestListener(base.BaseAPITest):
body = self._build_body({'sni_container_refs': [sni_id1, sni_id2]})
response = self.put(listener_path, body, status=400).json
self.assertEqual(
"Validation failure: Certificate container references are only "
"allowed on TERMINATED_HTTPS protocol listeners.",
"Validation failure: Certificate container references are not "
"allowed on HTTP protocol listeners.",
response['faultstring'])
get_listener = self.get(listener_path).json['listener']
self.assertEqual([], get_listener.get('sni_container_refs'))

View File

@ -1205,6 +1205,19 @@ class TestPool(base.BaseAPITest):
'project_id': self.project_id}
self.post(self.POOLS_PATH, self._build_body(lb_pool), status=403)
def test_negative_create_prometheus_listener(self):
stats_listener = self.create_listener(
lib_constants.PROTOCOL_PROMETHEUS, 8123,
self.lb_id).get('listener')
stats_listener_id = stats_listener.get('id')
self.set_lb_status(self.lb_id)
lb_pool = {
'listener_id': stats_listener_id,
'protocol': 'HTTP',
'lb_algorithm': constants.LB_ALGORITHM_ROUND_ROBIN}
self.post(self.POOLS_PATH, self._build_body(lb_pool), status=400)
def test_update(self):
api_pool = self.create_pool(
self.lb_id,

View File

@ -40,7 +40,7 @@ class HAProxyCompatTestCase(base.TestCase):
" option redispatch\n"
" option splice-request\n"
" option splice-response\n"
" option http-keep-alive\n\n\n\n"
" option http-keep-alive\n\n\n\n\n"
"frontend sample_listener_id_1\n"
" maxconn {maxconn}\n"
" bind 10.0.0.2:80\n"

View File

@ -0,0 +1,169 @@
# Copyright 2022 Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import signal
from unittest import mock
from octavia.cmd import prometheus_proxy
from octavia.tests.unit import base
class TestPrometheusProxyCMD(base.TestCase):
@mock.patch('http.server.SimpleHTTPRequestHandler.log_request')
@mock.patch('http.server.SimpleHTTPRequestHandler.__init__')
def test_log_request(self, mock_req_handler_init, mock_log_request):
mock_req_handler_init.return_value = None
proxy = prometheus_proxy.PrometheusProxy()
proxy.log_request()
mock_log_request.assert_not_called()
@mock.patch('os.cpu_count', return_value=2)
@mock.patch('psutil.getloadavg', return_value=(1, 2, 3))
@mock.patch('http.server.SimpleHTTPRequestHandler.__init__')
def test_add_cpu_utilization(self, mock_req_handler_init, mock_getloadavg,
mock_cpu_count):
mock_req_handler_init.return_value = None
proxy = prometheus_proxy.PrometheusProxy()
test_buffer = "TestStringBuffer\n"
result = proxy._add_cpu_utilization(test_buffer)
expected_result = (
"TestStringBuffer\n"
"# HELP octavia_loadbalancer_cpu Load balancer CPU utilization "
"(percentage).\n"
"# TYPE octavia_loadbalancer_cpu gauge\n"
"octavia_loadbalancer_cpu 50.0\n")
self.assertEqual(expected_result, result)
@mock.patch('psutil.virtual_memory', return_value=(1, 2, 23.5))
@mock.patch('http.server.SimpleHTTPRequestHandler.__init__')
def test__add_memory_utilization(self, mock_req_handler_init,
mock_virt_mem):
mock_req_handler_init.return_value = None
proxy = prometheus_proxy.PrometheusProxy()
test_buffer = "TestStringMemoryBuffer\n"
result = proxy._add_memory_utilization(test_buffer)
expected_result = (
"TestStringMemoryBuffer\n"
"# HELP octavia_loadbalancer_memory Load balancer memory "
"utilization (percentage).\n"
"# TYPE octavia_loadbalancer_memory gauge\n"
"octavia_loadbalancer_memory 23.5\n")
self.assertEqual(expected_result, result)
@mock.patch('octavia.cmd.prometheus_proxy.PRINT_REJECTED', True)
# No need to print all of the rejected lines to the log
@mock.patch('builtins.print')
@mock.patch('urllib.request.urlopen')
@mock.patch('os.cpu_count', return_value=2)
@mock.patch('psutil.getloadavg', return_value=(1, 2, 3))
@mock.patch('psutil.virtual_memory', return_value=(1, 2, 23.5))
@mock.patch('http.server.SimpleHTTPRequestHandler.__init__')
def test_do_get(self, mock_req_handler_init, mock_virt_mem,
mock_getloadavg, mock_cpu_count, mock_urlopen, mock_print):
mock_req_handler_init.return_value = None
proxy = prometheus_proxy.PrometheusProxy()
mock_send_response = mock.MagicMock()
proxy.send_response = mock_send_response
mock_send_header = mock.MagicMock()
proxy.send_header = mock_send_header
mock_end_headers = mock.MagicMock()
proxy.end_headers = mock_end_headers
mock_wfile = mock.MagicMock()
proxy.wfile = mock_wfile
with open("octavia/tests/common/sample_haproxy_prometheus",
"rb") as file:
mock_urlopen.return_value = file
proxy.do_GET()
mock_send_response.assert_called_once_with(200)
with open("octavia/tests/common/sample_octavia_prometheus",
"rb") as file2:
octavia_metrics = file2.read()
mock_wfile.write.assert_called_once_with(octavia_metrics)
@mock.patch('urllib.request.urlopen')
@mock.patch('os.cpu_count', return_value=2)
@mock.patch('psutil.getloadavg', return_value=(1, 2, 3))
@mock.patch('psutil.virtual_memory', return_value=(1, 2, 23.5))
@mock.patch('http.server.SimpleHTTPRequestHandler.__init__')
def test_do_get_exception(self, mock_req_handler_init, mock_virt_mem,
mock_getloadavg, mock_cpu_count, mock_urlopen):
mock_urlopen.side_effect = [Exception('boom')]
mock_req_handler_init.return_value = None
proxy = prometheus_proxy.PrometheusProxy()
mock_send_response = mock.MagicMock()
proxy.send_response = mock_send_response
mock_send_header = mock.MagicMock()
proxy.send_header = mock_send_header
mock_end_headers = mock.MagicMock()
proxy.end_headers = mock_end_headers
proxy.do_GET()
mock_send_response.assert_called_once_with(502)
@mock.patch('signal.signal')
def test_signalhandler(self, mock_signal):
sig_handler = prometheus_proxy.SignalHandler()
calls = [mock.call(signal.SIGINT, sig_handler.shutdown),
mock.call(signal.SIGTERM, sig_handler.shutdown)]
mock_signal.assert_has_calls(calls)
self.assertFalse(prometheus_proxy.EXIT_EVENT.is_set())
sig_handler.shutdown()
self.assertTrue(prometheus_proxy.EXIT_EVENT.is_set())
@mock.patch('octavia.cmd.prometheus_proxy.EXIT_EVENT')
@mock.patch('signal.signal')
def test_shutdown_thread(self, mock_signal, mock_exit_event):
mock_http = mock.MagicMock()
prometheus_proxy.shutdown_thread(mock_http)
mock_exit_event.wait.assert_called_once()
mock_http.shutdown.assert_called_once()
@mock.patch('threading.Thread')
# TODO(johnsom) Switch this when we move to ThreadingHTTPServer
# @mock.patch('http.server.ThreadingHTTPServer.serve_forever')
@mock.patch('octavia.cmd.prometheus_proxy.ThreadedHTTPServer.'
'serve_forever')
@mock.patch('octavia.amphorae.backends.utils.network_namespace.'
'NetworkNamespace.__exit__')
@mock.patch('octavia.amphorae.backends.utils.network_namespace.'
'NetworkNamespace.__enter__')
@mock.patch('octavia.cmd.prometheus_proxy.EXIT_EVENT')
@mock.patch('octavia.cmd.prometheus_proxy.SignalHandler')
def test_main(self, mock_signal_handler, mock_exit_event, mock_netns_enter,
mock_netns_exit, mock_serve_forever, mock_thread):
mock_exit_event.is_set.side_effect = [False, False, True]
mock_netns_enter.side_effect = [Exception('boom'), True]
prometheus_proxy.main()
mock_signal_handler.assert_called_once()
mock_serve_forever.assert_called_once()

View File

@ -16,6 +16,7 @@
import copy
import os
from octavia_lib.common import constants as lib_consts
from oslo_config import cfg
from oslo_config import fixture as oslo_fixture
@ -39,7 +40,7 @@ class TestHaproxyCfg(base.TestCase):
self.assertEqual('haproxy.cfg.j2', template.name)
def test_render_template_tls(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -98,7 +99,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_no_sni(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -150,7 +151,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_no_ciphers(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -201,7 +202,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_no_versions(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -260,7 +261,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_no_ciphers_or_versions(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -312,7 +313,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_alpn(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -366,7 +367,7 @@ class TestHaproxyCfg(base.TestCase):
rendered_obj)
def test_render_template_tls_no_alpn(self):
conf = oslo_fixture.Config(cfg.CONF)
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
FAKE_CRT_LIST_FILENAME = os.path.join(
CONF.haproxy_amphora.base_cert_dir,
@ -444,6 +445,55 @@ class TestHaproxyCfg(base.TestCase):
sample_configs_combined.sample_base_expected_config(backend=be),
rendered_obj)
def test_render_template_prometheus(self):
fe = ("frontend sample_listener_id_1\n"
" maxconn {maxconn}\n"
" bind 10.0.0.2:80\n"
" mode http\n"
" timeout client 50000\n"
" default_backend prometheus-exporter-internal\n").format(
maxconn=constants.HAPROXY_DEFAULT_MAXCONN)
be = ""
defaults = ("defaults\n"
" log global\n"
" retries 3\n"
" option redispatch\n"
" option splice-request\n"
" option splice-response\n"
" option http-keep-alive\n\n\n\n"
"frontend prometheus-exporter-internal-endpoint\n"
" bind 127.0.0.1:9101\n"
" mode http\n"
" no log\n"
" option http-use-htx\n"
" http-request use-service prometheus-exporter if { "
"path /metrics }\n"
" http-request reject\n"
" timeout http-request 5s\n"
" timeout client 5s\n"
"backend prometheus-exporter-internal\n"
" mode http\n"
" no log\n"
" balance first\n"
" timeout connect 5s\n"
" timeout server 5s\n"
" server prometheus-internal 127.0.0.1:9102")
logging = (" log-format 12345\\ sample_loadbalancer_id_1\\ %f\\ "
"%ci\\ %cp\\ %t\\ -\\ -\\ %B\\ %U\\ "
"%[ssl_c_verify]\\ %{+Q}[ssl_c_s_dn]\\ %b\\ %s\\ %Tt\\ "
"%tsc\n\n")
rendered_obj = self.jinja_cfg.render_loadbalancer_obj(
sample_configs_combined.sample_amphora_tuple(),
[sample_configs_combined.sample_listener_tuple(
proto=lib_consts.PROTOCOL_PROMETHEUS, include_pools=False)],
feature_compatibility={lib_consts.PROTOCOL_PROMETHEUS: True})
self.assertEqual(
sample_configs_combined.sample_base_expected_config(
frontend=fe, backend=be, logging=logging, defaults=defaults),
rendered_obj)
def test_render_template_member_backup(self):
be = ("backend sample_pool_id_1:sample_listener_id_1\n"
" mode http\n"
@ -1434,6 +1484,15 @@ class TestHaproxyCfg(base.TestCase):
in_listener.load_balancer)
self.assertEqual(sample_configs_combined.RET_LISTENER_L7, ret)
def test_transform_listener_PROMETHEUS(self):
in_listener = sample_configs_combined.sample_listener_tuple()
ret = self.jinja_cfg._transform_listener(
in_listener, None, {lib_consts.PROTOCOL_PROMETHEUS: True},
in_listener.load_balancer)
expected_config = copy.copy(sample_configs_combined.RET_LISTENER)
expected_config[lib_consts.PROTOCOL_PROMETHEUS] = True
self.assertEqual(expected_config, ret)
def test_transform_loadbalancer(self):
in_amphora = sample_configs_combined.sample_amphora_tuple()
in_listener = sample_configs_combined.sample_listener_tuple()
@ -1533,7 +1592,7 @@ class TestHaproxyCfg(base.TestCase):
" option redispatch\n"
" option splice-request\n"
" option splice-response\n"
" option http-keep-alive\n\n")
" option http-keep-alive\n\n\n")
rendered_obj = j_cfg.render_loadbalancer_obj(
sample_configs_combined.sample_amphora_tuple(),
[sample_configs_combined.sample_listener_tuple()]

View File

@ -310,6 +310,7 @@ RET_LISTENER = {
'timeout_member_connect': 5000,
'timeout_member_data': 50000,
'timeout_tcp_inspect': 0,
'PROMETHEUS': False,
}
RET_LISTENER_L7 = {
@ -332,6 +333,7 @@ RET_LISTENER_L7 = {
'timeout_member_connect': 5000,
'timeout_member_data': 50000,
'timeout_tcp_inspect': 0,
'PROMETHEUS': False,
}
RET_LISTENER_TLS = {
@ -683,7 +685,8 @@ def sample_listener_tuple(proto=None, monitor=True, alloc_default_pool=True,
sample_default_pool=1,
pool_enabled=True,
backend_alpn_protocols=constants.
AMPHORA_SUPPORTED_ALPN_PROTOCOLS):
AMPHORA_SUPPORTED_ALPN_PROTOCOLS,
include_pools=True):
proto = 'HTTP' if proto is None else proto
if be_proto is None:
be_proto = 'HTTP' if proto == 'TERMINATED_HTTPS' else proto
@ -815,7 +818,7 @@ def sample_listener_tuple(proto=None, monitor=True, alloc_default_pool=True,
intermediates=sample_certs.X509_IMDS_LIST,
primary_cn=sample_certs.X509_CERT_CN_3))]
if sni else [],
pools=pools,
pools=pools if include_pools else '',
l7policies=l7policies,
enabled=enabled,
insert_headers=insert_headers,
@ -1239,7 +1242,7 @@ def sample_base_expected_config(frontend=None, logging=None, backend=None,
" option redispatch\n"
" option splice-request\n"
" option splice-response\n"
" option http-keep-alive\n\n")
" option http-keep-alive\n\n\n")
return ("# Configuration for loadbalancer sample_loadbalancer_id_1\n"
"global\n"
" daemon\n"

View File

@ -0,0 +1,11 @@
---
features:
- |
Added a new PROMETHEUS listener that exposes a prometheus exporter
endpoint.
upgrade:
- |
PROMETHEUS listeners require an amphora image with HAProxy 2.0 or newer.
issues:
- |
PROMETHEUS listeners will not report information for UDP or SCTP listeners.

View File

@ -27,6 +27,7 @@ oslo.reports>=1.18.0 # Apache-2.0
oslo.serialization>=2.28.1 # Apache-2.0
oslo.upgradecheck>=1.3.0 # Apache-2.0
oslo.utils>=4.7.0 # Apache-2.0
psutil>=5.7.1 # BSD
pyasn1!=0.2.3,>=0.1.8 # BSD
pyasn1-modules>=0.0.6 # BSD
python-barbicanclient>=4.5.2 # Apache-2.0
@ -41,7 +42,7 @@ castellan>=0.16.0 # Apache-2.0
tenacity>=5.0.4 # Apache-2.0
distro>=1.2.0 # Apache-2.0
jsonschema>=3.2.0 # MIT
octavia-lib>=2.3.0 # Apache-2.0
octavia-lib>=2.5.0 # Apache-2.0
netaddr>=0.7.19 # BSD
simplejson>=3.13.2 # MIT
setproctitle>=1.1.10 # BSD

View File

@ -55,6 +55,7 @@ console_scripts =
octavia-status = octavia.cmd.status:main
amphora-health-checker = octavia.cmd.health_checker:main
amphora-interface = octavia.cmd.interface:main
prometheus-proxy = octavia.cmd.prometheus_proxy:main
octavia.api.drivers =
noop_driver = octavia.api.drivers.noop_driver.driver:NoopProviderDriver
noop_driver-alt = octavia.api.drivers.noop_driver.driver:NoopProviderDriver