Merge "Add the PROMETHEUS protocol to listeners"
This commit is contained in:
commit
bc0d85da9a
@ -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
|
||||
|
@ -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
|
||||
|
153
doc/source/user/guides/monitoring.rst
Normal file
153
doc/source/user/guides/monitoring.rst
Normal 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.
|
@ -19,6 +19,7 @@ Guides
|
||||
|
||||
guides/l7
|
||||
feature-classification/index
|
||||
guides/monitoring
|
||||
|
||||
References
|
||||
==========
|
||||
|
@ -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"
|
||||
|
@ -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
|
@ -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
|
@ -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
|
12
elements/amphora-agent/post-install.d/12-enable-prometheus-proxy-systemd
Executable file
12
elements/amphora-agent/post-install.d/12-enable-prometheus-proxy-systemd
Executable 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
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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={})
|
||||
|
||||
|
@ -53,6 +53,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
|
||||
lib_consts.PROTOCOL_PROXYV2,
|
||||
lib_consts.PROTOCOL_UDP,
|
||||
lib_consts.PROTOCOL_SCTP,
|
||||
lib_consts.PROTOCOL_PROMETHEUS,
|
||||
]
|
||||
|
||||
|
||||
|
@ -54,6 +54,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
|
||||
lib_consts.PROTOCOL_PROXYV2,
|
||||
lib_consts.PROTOCOL_UDP,
|
||||
lib_consts.PROTOCOL_SCTP,
|
||||
lib_consts.PROTOCOL_PROMETHEUS,
|
||||
]
|
||||
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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(
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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,
|
||||
|
825
octavia/cmd/prometheus_proxy.py
Normal file
825
octavia/cmd/prometheus_proxy.py
Normal 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()
|
@ -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. '
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -50,4 +50,6 @@ defaults
|
||||
|
||||
{% block peers %}{% endblock peers %}
|
||||
|
||||
{% block prometheus %}{% endblock prometheus %}
|
||||
|
||||
{% block proxies %}{% endblock proxies %}
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
||||
|
||||
|
@ -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}
|
||||
]
|
||||
)
|
886
octavia/tests/common/sample_haproxy_prometheus
Normal file
886
octavia/tests/common/sample_haproxy_prometheus
Normal 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
|
695
octavia/tests/common/sample_octavia_prometheus
Normal file
695
octavia/tests/common/sample_octavia_prometheus
Normal 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
|
@ -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'}]
|
||||
|
@ -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,
|
||||
|
@ -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'))
|
||||
|
@ -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,
|
||||
|
@ -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"
|
||||
|
169
octavia/tests/unit/cmd/test_prometheus_proxy.py
Normal file
169
octavia/tests/unit/cmd/test_prometheus_proxy.py
Normal 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()
|
@ -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()]
|
||||
|
@ -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"
|
||||
|
@ -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.
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user