Merge "Add the PROMETHEUS protocol to listeners"
This commit is contained in:
commit
bc0d85da9a
@ -1245,7 +1245,7 @@ project_id-optional-deprecated:
|
|||||||
protocol:
|
protocol:
|
||||||
description: |
|
description: |
|
||||||
The protocol for the resource. One of ``HTTP``, ``HTTPS``, ``SCTP``,
|
The protocol for the resource. One of ``HTTP``, ``HTTPS``, ``SCTP``,
|
||||||
``TCP``, ``TERMINATED_HTTPS``, or ``UDP``.
|
``PROMETHEUS``, ``TCP``, ``TERMINATED_HTTPS``, or ``UDP``.
|
||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
@ -238,6 +238,14 @@ cli=openstack loadbalancer listener create --protocol SCTP <loadbalancer>
|
|||||||
driver.amphora=complete
|
driver.amphora=complete
|
||||||
driver.ovn=missing
|
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]
|
[operation.protocol_port]
|
||||||
title=protocol_port
|
title=protocol_port
|
||||||
status=mandatory
|
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
|
guides/l7
|
||||||
feature-classification/index
|
feature-classification/index
|
||||||
|
guides/monitoring
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
@ -30,6 +30,9 @@ ln -s $AMP_VENV/bin/amphora-health-checker /usr/local/bin/amphora-health-checker
|
|||||||
# Link amphora interface script
|
# Link amphora interface script
|
||||||
ln -s $AMP_VENV/bin/amphora-interface /usr/local/bin/amphora-interface || true
|
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
|
mkdir /etc/octavia
|
||||||
# we assume certs, etc will come in through the config drive
|
# we assume certs, etc will come in through the config drive
|
||||||
mkdir /etc/octavia/certs
|
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
|
case "$DIB_INIT_SYSTEM" in
|
||||||
upstart)
|
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}/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)
|
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}/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)
|
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}/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"
|
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
|
# Enable/disable ability for users to create PING type Health Monitors
|
||||||
# allow_ping_health_monitors = True
|
# allow_ping_health_monitors = True
|
||||||
|
|
||||||
|
# Enable/disable PROMETHEUS listeners
|
||||||
|
# allow_prometheus_listeners = True
|
||||||
|
|
||||||
# Dictionary of enabled provider driver names and descriptions
|
# Dictionary of enabled provider driver names and descriptions
|
||||||
# A comma separated list of dictionaries of the enabled provider driver names
|
# A comma separated list of dictionaries of the enabled provider driver names
|
||||||
# and descriptions.
|
# and descriptions.
|
||||||
|
@ -72,7 +72,7 @@ munch==2.2.0
|
|||||||
netaddr==0.7.19
|
netaddr==0.7.19
|
||||||
netifaces==0.10.4
|
netifaces==0.10.4
|
||||||
networkx==2.1.0
|
networkx==2.1.0
|
||||||
octavia-lib==2.3.0
|
octavia-lib==2.5.0
|
||||||
openstacksdk==0.12.0
|
openstacksdk==0.12.0
|
||||||
os-client-config==1.29.0
|
os-client-config==1.29.0
|
||||||
os-service-types==1.2.0
|
os-service-types==1.2.0
|
||||||
@ -103,7 +103,7 @@ pep8==1.7.1
|
|||||||
pika==0.10.0
|
pika==0.10.0
|
||||||
pika-pool==0.1.3
|
pika-pool==0.1.3
|
||||||
prettytable==0.7.2
|
prettytable==0.7.2
|
||||||
psutil==5.4.3
|
psutil==5.7.1
|
||||||
pyasn1==0.1.8
|
pyasn1==0.1.8
|
||||||
pyasn1-modules==0.0.6
|
pyasn1-modules==0.0.6
|
||||||
pycadf==2.7.0
|
pycadf==2.7.0
|
||||||
|
@ -97,7 +97,11 @@ class HAProxyQuery(object):
|
|||||||
server_id=server_id))
|
server_id=server_id))
|
||||||
list_results = results[2:].split('\n')
|
list_results = results[2:].split('\n')
|
||||||
csv_reader = csv.DictReader(list_results)
|
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):
|
def get_pool_status(self):
|
||||||
"""Get status for each server and the pool as a whole.
|
"""Get status for each server and the pool as a whole.
|
||||||
@ -115,6 +119,11 @@ class HAProxyQuery(object):
|
|||||||
for line in results:
|
for line in results:
|
||||||
# pxname: pool, svname: server_name, status: status
|
# 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:
|
if line['pxname'] not in final_results:
|
||||||
final_results[line['pxname']] = dict(members={})
|
final_results[line['pxname']] = dict(members={})
|
||||||
|
|
||||||
|
@ -53,6 +53,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
|
|||||||
lib_consts.PROTOCOL_PROXYV2,
|
lib_consts.PROTOCOL_PROXYV2,
|
||||||
lib_consts.PROTOCOL_UDP,
|
lib_consts.PROTOCOL_UDP,
|
||||||
lib_consts.PROTOCOL_SCTP,
|
lib_consts.PROTOCOL_SCTP,
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@ AMPHORA_SUPPORTED_PROTOCOLS = [
|
|||||||
lib_consts.PROTOCOL_PROXYV2,
|
lib_consts.PROTOCOL_PROXYV2,
|
||||||
lib_consts.PROTOCOL_UDP,
|
lib_consts.PROTOCOL_UDP,
|
||||||
lib_consts.PROTOCOL_SCTP,
|
lib_consts.PROTOCOL_SCTP,
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,6 +137,9 @@ class RootController(object):
|
|||||||
self._add_a_version(versions, 'v2.23', 'v2', 'SUPPORTED',
|
self._add_a_version(versions, 'v2.23', 'v2', 'SUPPORTED',
|
||||||
'2020-09-07T00:00:00Z', host_url)
|
'2020-09-07T00:00:00Z', host_url)
|
||||||
# ALPN protocols (pool)
|
# 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)
|
'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}
|
return {'versions': versions}
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from octavia_lib.api.drivers import data_models as driver_dm
|
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_config import cfg
|
||||||
from oslo_db import exception as odb_exceptions
|
from oslo_db import exception as odb_exceptions
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
@ -129,6 +130,11 @@ class L7PolicyController(base.BaseController):
|
|||||||
self._auth_validate_action(context, l7policy.project_id,
|
self._auth_validate_action(context, l7policy.project_id,
|
||||||
constants.RBAC_POST)
|
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
|
# Make sure any pool specified by redirect_pool_id exists
|
||||||
if l7policy.redirect_pool_id:
|
if l7policy.redirect_pool_id:
|
||||||
db_pool = self._get_db_pool(
|
db_pool = self._get_db_pool(
|
||||||
|
@ -172,6 +172,11 @@ class ListenersController(base.BaseController):
|
|||||||
"""
|
"""
|
||||||
listener_protocol = listener_dict.get('protocol')
|
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'):
|
if listener_dict and listener_dict.get('insert_headers'):
|
||||||
self._validate_insert_headers(
|
self._validate_insert_headers(
|
||||||
listener_dict['insert_headers'].keys(), listener_protocol)
|
listener_dict['insert_headers'].keys(), listener_protocol)
|
||||||
@ -186,17 +191,25 @@ class ListenersController(base.BaseController):
|
|||||||
|
|
||||||
# Check for TLS disabled
|
# Check for TLS disabled
|
||||||
if (not CONF.api_settings.allow_tls_terminated_listeners and
|
if (not CONF.api_settings.allow_tls_terminated_listeners and
|
||||||
listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS):
|
_can_tls_offload):
|
||||||
raise exceptions.DisabledOption(
|
if listener_protocol == constants.PROTOCOL_PROMETHEUS:
|
||||||
value=constants.PROTOCOL_TERMINATED_HTTPS, option='protocol')
|
msg = f"{listener_protocol} with TLS"
|
||||||
|
else:
|
||||||
|
msg = listener_protocol
|
||||||
|
raise exceptions.DisabledOption(value=msg, option='protocol')
|
||||||
|
|
||||||
# Check for certs when not TERMINATED_HTTPS
|
# Check for PROMETHEUS listeners disabled
|
||||||
if (listener_protocol != constants.PROTOCOL_TERMINATED_HTTPS and
|
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)):
|
self._has_tls_container_refs(listener_dict)):
|
||||||
raise exceptions.ValidationException(detail=_(
|
raise exceptions.ValidationException(detail=_(
|
||||||
"Certificate container references are only allowed on "
|
"Certificate container references are not allowed on "
|
||||||
"%s protocol listeners.") %
|
"%s protocol listeners.") % listener_protocol)
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS)
|
|
||||||
|
|
||||||
# Make sure a base certificate exists if specifying a client ca
|
# Make sure a base certificate exists if specifying a client ca
|
||||||
if (listener_dict.get('client_ca_tls_certificate_id') and
|
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 "
|
"An SNI or default certificate container reference must "
|
||||||
"be provided with a client CA container reference."))
|
"be provided with a client CA container reference."))
|
||||||
|
|
||||||
# Make sure a certificate container is specified for TERMINATED_HTTPS
|
# Make sure a certificate container is specified for TLS protocols
|
||||||
if (listener_protocol == constants.PROTOCOL_TERMINATED_HTTPS and
|
if (_can_tls_offload and
|
||||||
not (listener_dict.get('tls_certificate_id') or
|
not (listener_dict.get('tls_certificate_id') or
|
||||||
listener_dict.get('sni_containers'))):
|
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=_(
|
raise exceptions.ValidationException(detail=_(
|
||||||
"An SNI or default certificate container reference must "
|
"An SNI or default certificate container reference must "
|
||||||
"be provided for %s protocol listeners.") %
|
"be provided for %s protocol listeners.") % msg)
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS)
|
|
||||||
|
|
||||||
# Make sure we have a client CA cert if they enable client auth
|
# Make sure we have a client CA cert if they enable client auth
|
||||||
if (listener_dict.get('client_authentication') !=
|
if (listener_dict.get('client_authentication') !=
|
||||||
@ -295,7 +311,7 @@ class ListenersController(base.BaseController):
|
|||||||
vip_address = vip_db.ip_address
|
vip_address = vip_db.ip_address
|
||||||
self._validate_cidr_compatible_with_vip(vip_address, allowed_cidrs)
|
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 TLS version list
|
||||||
validate.check_tls_version_list(listener_dict['tls_versions'])
|
validate.check_tls_version_list(listener_dict['tls_versions'])
|
||||||
# Validate TLS versions against minimum
|
# Validate TLS versions against minimum
|
||||||
@ -363,6 +379,10 @@ class ListenersController(base.BaseController):
|
|||||||
listener.to_dict(render_unsets=True), None)
|
listener.to_dict(render_unsets=True), None)
|
||||||
|
|
||||||
if listener_dict['default_pool_id']:
|
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,
|
self._validate_pool(context.session, load_balancer_id,
|
||||||
listener_dict['default_pool_id'],
|
listener_dict['default_pool_id'],
|
||||||
listener.protocol)
|
listener.protocol)
|
||||||
@ -406,6 +426,9 @@ class ListenersController(base.BaseController):
|
|||||||
listener_dict, load_balancer_id)
|
listener_dict, load_balancer_id)
|
||||||
l7policies = listener_dict.pop('l7policies', l7policies)
|
l7policies = listener_dict.pop('l7policies', l7policies)
|
||||||
if listener_dict.get('default_pool_id'):
|
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,
|
self._validate_pool(lock_session, load_balancer_id,
|
||||||
listener_dict['default_pool_id'],
|
listener_dict['default_pool_id'],
|
||||||
listener_dict['protocol'])
|
listener_dict['protocol'])
|
||||||
@ -414,6 +437,12 @@ class ListenersController(base.BaseController):
|
|||||||
|
|
||||||
# Now create l7policies
|
# Now create l7policies
|
||||||
new_l7ps = []
|
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:
|
for l7p in l7policies:
|
||||||
l7p['project_id'] = db_listener.project_id
|
l7p['project_id'] = db_listener.project_id
|
||||||
l7p['load_balancer_id'] = load_balancer_id
|
l7p['load_balancer_id'] = load_balancer_id
|
||||||
@ -432,6 +461,11 @@ class ListenersController(base.BaseController):
|
|||||||
return db_listener
|
return db_listener
|
||||||
|
|
||||||
def _validate_listener_PUT(self, listener, 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
|
# TODO(rm_work): Do we need something like this? What do we do on an
|
||||||
# empty body for a PUT?
|
# empty body for a PUT?
|
||||||
if not listener:
|
if not listener:
|
||||||
@ -446,13 +480,12 @@ class ListenersController(base.BaseController):
|
|||||||
"%s protocol listener does not support TLS or header "
|
"%s protocol listener does not support TLS or header "
|
||||||
"insertion.") % db_listener.protocol)
|
"insertion.") % db_listener.protocol)
|
||||||
|
|
||||||
# Check for certs when not TERMINATED_HTTPS
|
# Check for certs when not TLS offload capable
|
||||||
if (db_listener.protocol != constants.PROTOCOL_TERMINATED_HTTPS and
|
if (not _can_tls_offload and
|
||||||
self._has_tls_container_refs(listener.to_dict())):
|
self._has_tls_container_refs(listener.to_dict())):
|
||||||
raise exceptions.ValidationException(detail=_(
|
raise exceptions.ValidationException(detail=_(
|
||||||
"Certificate container references are only allowed on "
|
"Certificate container references are not allowed on "
|
||||||
"%s protocol listeners.") %
|
"%s protocol listeners.") % db_listener.protocol)
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS)
|
|
||||||
|
|
||||||
# Make sure we have a client CA cert if they enable client auth
|
# Make sure we have a client CA cert if they enable client auth
|
||||||
if (listener.client_authentication not in
|
if (listener.client_authentication not in
|
||||||
@ -577,6 +610,9 @@ class ListenersController(base.BaseController):
|
|||||||
self._set_default_on_none(listener)
|
self._set_default_on_none(listener)
|
||||||
|
|
||||||
if listener.default_pool_id:
|
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,
|
self._validate_pool(context.session, load_balancer_id,
|
||||||
listener.default_pool_id, db_listener.protocol)
|
listener.default_pool_id, db_listener.protocol)
|
||||||
|
|
||||||
|
@ -229,6 +229,9 @@ class PoolsController(base.BaseController):
|
|||||||
constants.RBAC_POST)
|
constants.RBAC_POST)
|
||||||
|
|
||||||
if pool.listener_id and listener:
|
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)
|
self._validate_protocol(listener.protocol, pool.protocol)
|
||||||
|
|
||||||
if pool.protocol in (constants.PROTOCOL_UDP,
|
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?")),
|
help=_("Allow users to create TLS Terminated listeners?")),
|
||||||
cfg.BoolOpt('allow_ping_health_monitors', default=True,
|
cfg.BoolOpt('allow_ping_health_monitors', default=True,
|
||||||
help=_("Allow users to create PING type Health Monitors?")),
|
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',
|
cfg.DictOpt('enabled_provider_drivers',
|
||||||
help=_('A comma separated list of dictionaries of the '
|
help=_('A comma separated list of dictionaries of the '
|
||||||
'enabled provider driver names and descriptions. '
|
'enabled provider driver names and descriptions. '
|
||||||
|
@ -150,6 +150,8 @@ PROTOCOL_TERMINATED_HTTPS = lib_consts.PROTOCOL_TERMINATED_HTTPS
|
|||||||
# 'PROXY'
|
# 'PROXY'
|
||||||
PROTOCOL_PROXY = lib_consts.PROTOCOL_PROXY
|
PROTOCOL_PROXY = lib_consts.PROTOCOL_PROXY
|
||||||
SUPPORTED_PROTOCOLS = lib_consts.SUPPORTED_PROTOCOLS
|
SUPPORTED_PROTOCOLS = lib_consts.SUPPORTED_PROTOCOLS
|
||||||
|
# 'PROMETHEUS'
|
||||||
|
PROTOCOL_PROMETHEUS = lib_consts.PROTOCOL_PROMETHEUS
|
||||||
|
|
||||||
# 'provisioning_status'
|
# 'provisioning_status'
|
||||||
PROVISIONING_STATUS = lib_consts.PROVISIONING_STATUS
|
PROVISIONING_STATUS = lib_consts.PROVISIONING_STATUS
|
||||||
@ -215,7 +217,8 @@ VALID_LISTENER_POOL_PROTOCOL_MAP = {
|
|||||||
PROTOCOL_TERMINATED_HTTPS: [PROTOCOL_HTTP, PROTOCOL_PROXY,
|
PROTOCOL_TERMINATED_HTTPS: [PROTOCOL_HTTP, PROTOCOL_PROXY,
|
||||||
lib_consts.PROTOCOL_PROXYV2],
|
lib_consts.PROTOCOL_PROXYV2],
|
||||||
PROTOCOL_UDP: [PROTOCOL_UDP],
|
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
|
# API Integer Ranges
|
||||||
MIN_PORT_NUMBER = 1
|
MIN_PORT_NUMBER = 1
|
||||||
@ -835,6 +838,7 @@ L4_PROTOCOL_MAP = {
|
|||||||
lib_consts.PROTOCOL_PROXYV2: PROTOCOL_TCP,
|
lib_consts.PROTOCOL_PROXYV2: PROTOCOL_TCP,
|
||||||
PROTOCOL_UDP: PROTOCOL_UDP,
|
PROTOCOL_UDP: PROTOCOL_UDP,
|
||||||
lib_consts.PROTOCOL_SCTP: lib_consts.PROTOCOL_SCTP,
|
lib_consts.PROTOCOL_SCTP: lib_consts.PROTOCOL_SCTP,
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS: lib_consts.PROTOCOL_TCP,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Image drivers
|
# Image drivers
|
||||||
|
@ -419,3 +419,8 @@ class InvalidIPAddress(APIException):
|
|||||||
class AmphoraNetworkConfigException(OctaviaException):
|
class AmphoraNetworkConfigException(OctaviaException):
|
||||||
message = _('Cannot configure network resource in the amphora: '
|
message = _('Cannot configure network resource in the amphora: '
|
||||||
'%(detail)s')
|
'%(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_HTTPS: 'tcp',
|
||||||
constants.PROTOCOL_PROXY: 'proxy',
|
constants.PROTOCOL_PROXY: 'proxy',
|
||||||
lib_consts.PROTOCOL_PROXYV2: 'proxy',
|
lib_consts.PROTOCOL_PROXYV2: 'proxy',
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS: 'http'
|
constants.PROTOCOL_TERMINATED_HTTPS: 'http',
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS: 'http'
|
||||||
}
|
}
|
||||||
|
|
||||||
BALANCE_MAP = {
|
BALANCE_MAP = {
|
||||||
@ -102,6 +103,8 @@ class JinjaTemplater(object):
|
|||||||
feature_compatibility[constants.HTTP_REUSE] = True
|
feature_compatibility[constants.HTTP_REUSE] = True
|
||||||
if not (int(haproxy_versions[0]) < 2 and int(haproxy_versions[1]) < 9):
|
if not (int(haproxy_versions[0]) < 2 and int(haproxy_versions[1]) < 9):
|
||||||
feature_compatibility[constants.POOL_ALPN] = True
|
feature_compatibility[constants.POOL_ALPN] = True
|
||||||
|
if int(haproxy_versions[0]) >= 2:
|
||||||
|
feature_compatibility[lib_consts.PROTOCOL_PROMETHEUS] = True
|
||||||
|
|
||||||
return self.render_loadbalancer_obj(
|
return self.render_loadbalancer_obj(
|
||||||
host_amphora, listeners, tls_certs=tls_certs,
|
host_amphora, listeners, tls_certs=tls_certs,
|
||||||
@ -165,6 +168,13 @@ class JinjaTemplater(object):
|
|||||||
state_file_path = '%s/%s/servers-state' % (
|
state_file_path = '%s/%s/servers-state' % (
|
||||||
self.base_amp_path,
|
self.base_amp_path,
|
||||||
listeners[0].load_balancer.id)
|
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(
|
return self._get_template().render(
|
||||||
{'loadbalancer': loadbalancer,
|
{'loadbalancer': loadbalancer,
|
||||||
'stats_sock': socket_path,
|
'stats_sock': socket_path,
|
||||||
@ -174,7 +184,8 @@ class JinjaTemplater(object):
|
|||||||
'administrative_log_facility':
|
'administrative_log_facility':
|
||||||
CONF.amphora_agent.administrative_log_facility,
|
CONF.amphora_agent.administrative_log_facility,
|
||||||
'user_log_facility': CONF.amphora_agent.user_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)
|
constants=constants, lib_consts=lib_consts)
|
||||||
|
|
||||||
def _transform_loadbalancer(self, host_amphora, loadbalancer, listeners,
|
def _transform_loadbalancer(self, host_amphora, loadbalancer, listeners,
|
||||||
@ -262,6 +273,8 @@ class JinjaTemplater(object):
|
|||||||
CONF.haproxy_amphora.timeout_member_data),
|
CONF.haproxy_amphora.timeout_member_data),
|
||||||
'timeout_tcp_inspect': (listener.timeout_tcp_inspect or
|
'timeout_tcp_inspect': (listener.timeout_tcp_inspect or
|
||||||
CONF.haproxy_amphora.timeout_tcp_inspect),
|
CONF.haproxy_amphora.timeout_tcp_inspect),
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS: feature_compatibility.get(
|
||||||
|
lib_consts.PROTOCOL_PROMETHEUS, False)
|
||||||
}
|
}
|
||||||
if self.connection_logging:
|
if self.connection_logging:
|
||||||
ret_value['user_log_format'] = (
|
ret_value['user_log_format'] = (
|
||||||
@ -292,7 +305,8 @@ class JinjaTemplater(object):
|
|||||||
tls_certs[listener.client_crl_container_id]))
|
tls_certs[listener.client_crl_container_id]))
|
||||||
|
|
||||||
tls_enabled = False
|
tls_enabled = False
|
||||||
if listener.protocol == constants.PROTOCOL_TERMINATED_HTTPS:
|
if listener.protocol in (constants.PROTOCOL_TERMINATED_HTTPS,
|
||||||
|
constants.PROTOCOL_PROMETHEUS):
|
||||||
tls_enabled = True
|
tls_enabled = True
|
||||||
if listener.tls_ciphers is not None:
|
if listener.tls_ciphers is not None:
|
||||||
ret_value['tls_ciphers'] = listener.tls_ciphers
|
ret_value['tls_ciphers'] = listener.tls_ciphers
|
||||||
|
@ -50,4 +50,6 @@ defaults
|
|||||||
|
|
||||||
{% block peers %}{% endblock peers %}
|
{% block peers %}{% endblock peers %}
|
||||||
|
|
||||||
|
{% block prometheus %}{% endblock prometheus %}
|
||||||
|
|
||||||
{% block proxies %}{% endblock proxies %}
|
{% block proxies %}{% endblock proxies %}
|
||||||
|
@ -28,6 +28,27 @@
|
|||||||
{{ peers_macro(constants, loadbalancer) }}
|
{{ peers_macro(constants, loadbalancer) }}
|
||||||
{% endblock peers %}
|
{% 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 %}
|
{% block proxies %}
|
||||||
{% if loadbalancer.enabled %}
|
{% if loadbalancer.enabled %}
|
||||||
{% for listener in loadbalancer.listeners if listener.enabled %}
|
{% for listener in loadbalancer.listeners if listener.enabled %}
|
||||||
|
@ -177,12 +177,16 @@ frontend {{ listener.id }}
|
|||||||
default_backend {{ listener.default_pool.id }}:{{ listener.id }}
|
default_backend {{ listener.default_pool.id }}:{{ listener.id }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
timeout client {{ listener.timeout_client_data }}
|
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 %}
|
{% if listener.timeout_tcp_inspect %}
|
||||||
tcp-request inspect-delay {{ listener.timeout_tcp_inspect }}
|
tcp-request inspect-delay {{ listener.timeout_tcp_inspect }}
|
||||||
{% endif %}
|
{% 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 %}
|
{% 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):
|
def test_api_versions(self):
|
||||||
versions = self._get_versions_with_config()
|
versions = self._get_versions_with_config()
|
||||||
version_ids = tuple(v.get('id') for v in versions)
|
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.0', version_ids)
|
||||||
self.assertIn('v2.1', version_ids)
|
self.assertIn('v2.1', version_ids)
|
||||||
self.assertIn('v2.2', 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.22', version_ids)
|
||||||
self.assertIn('v2.23', version_ids)
|
self.assertIn('v2.23', version_ids)
|
||||||
self.assertIn('v2.24', 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
|
# Each version should have a 'self' 'href' to the API version URL
|
||||||
# [{u'rel': u'self', u'href': u'http://localhost/v2'}]
|
# [{u'rel': u'self', u'href': u'http://localhost/v2'}]
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
|
from octavia_lib.common import constants as lib_consts
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_config import fixture as oslo_fixture
|
from oslo_config import fixture as oslo_fixture
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
@ -858,6 +859,14 @@ class TestL7Policy(base.BaseAPITest):
|
|||||||
'redirect_url': 'http://a.com'}
|
'redirect_url': 'http://a.com'}
|
||||||
self.post(self.L7POLICIES_PATH, self._build_body(l7policy), status=403)
|
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):
|
def test_update(self):
|
||||||
api_l7policy = self.create_l7policy(self.listener_id,
|
api_l7policy = self.create_l7policy(self.listener_id,
|
||||||
constants.L7POLICY_ACTION_REJECT,
|
constants.L7POLICY_ACTION_REJECT,
|
||||||
|
@ -799,10 +799,9 @@ class TestListener(base.BaseAPITest):
|
|||||||
resp = self.test_create(response_status=400, **optionals).json
|
resp = self.test_create(response_status=400, **optionals).json
|
||||||
fault = resp.get('faultstring')
|
fault = resp.get('faultstring')
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
'Certificate container references are only allowed on ', fault)
|
'Certificate container references are not allowed on ', fault)
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
'{} protocol listeners.'.format(
|
'{} protocol listeners.'.format(constants.PROTOCOL_TCP), fault)
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS), fault)
|
|
||||||
|
|
||||||
def test_create_without_certs_if_terminated_https(self):
|
def test_create_without_certs_if_terminated_https(self):
|
||||||
optionals = {
|
optionals = {
|
||||||
@ -1361,6 +1360,27 @@ class TestListener(base.BaseAPITest):
|
|||||||
def test_negative_create_UDP_with_headers(self):
|
def test_negative_create_UDP_with_headers(self):
|
||||||
self._test_negative_create_with_headers(constants.PROTOCOL_UDP)
|
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):
|
def test_update_allowed_cidrs(self):
|
||||||
allowed_cidrs = ['10.0.1.0/24', '10.0.2.0/24']
|
allowed_cidrs = ['10.0.1.0/24', '10.0.2.0/24']
|
||||||
new_cidrs = ['10.0.1.0/24', '10.0.3.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
|
response = self.put(listener_path, body, status=400).json
|
||||||
fault = response.get('faultstring')
|
fault = response.get('faultstring')
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
'Certificate container references are only allowed on ', fault)
|
'Certificate container references are not allowed on ', fault)
|
||||||
self.assertIn(
|
self.assertIn('{} protocol listeners.'.format(
|
||||||
'{} protocol listeners.'.format(
|
constants.PROTOCOL_TCP), fault)
|
||||||
constants.PROTOCOL_TERMINATED_HTTPS), fault)
|
|
||||||
|
|
||||||
def test_update_with_ca_cert(self):
|
def test_update_with_ca_cert(self):
|
||||||
self.cert_manager_mock().get_secret.return_value = (
|
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]})
|
body = self._build_body({'sni_container_refs': [sni_id1, sni_id2]})
|
||||||
response = self.put(listener_path, body, status=400).json
|
response = self.put(listener_path, body, status=400).json
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"Validation failure: Certificate container references are only "
|
"Validation failure: Certificate container references are not "
|
||||||
"allowed on TERMINATED_HTTPS protocol listeners.",
|
"allowed on HTTP protocol listeners.",
|
||||||
response['faultstring'])
|
response['faultstring'])
|
||||||
get_listener = self.get(listener_path).json['listener']
|
get_listener = self.get(listener_path).json['listener']
|
||||||
self.assertEqual([], get_listener.get('sni_container_refs'))
|
self.assertEqual([], get_listener.get('sni_container_refs'))
|
||||||
|
@ -1205,6 +1205,19 @@ class TestPool(base.BaseAPITest):
|
|||||||
'project_id': self.project_id}
|
'project_id': self.project_id}
|
||||||
self.post(self.POOLS_PATH, self._build_body(lb_pool), status=403)
|
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):
|
def test_update(self):
|
||||||
api_pool = self.create_pool(
|
api_pool = self.create_pool(
|
||||||
self.lb_id,
|
self.lb_id,
|
||||||
|
@ -40,7 +40,7 @@ class HAProxyCompatTestCase(base.TestCase):
|
|||||||
" option redispatch\n"
|
" option redispatch\n"
|
||||||
" option splice-request\n"
|
" option splice-request\n"
|
||||||
" option splice-response\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"
|
"frontend sample_listener_id_1\n"
|
||||||
" maxconn {maxconn}\n"
|
" maxconn {maxconn}\n"
|
||||||
" bind 10.0.0.2:80\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 copy
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from octavia_lib.common import constants as lib_consts
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_config import fixture as oslo_fixture
|
from oslo_config import fixture as oslo_fixture
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
self.assertEqual('haproxy.cfg.j2', template.name)
|
self.assertEqual('haproxy.cfg.j2', template.name)
|
||||||
|
|
||||||
def test_render_template_tls(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -98,7 +99,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_no_sni(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -150,7 +151,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_no_ciphers(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -201,7 +202,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_no_versions(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -260,7 +261,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_no_ciphers_or_versions(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -312,7 +313,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_alpn(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -366,7 +367,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
rendered_obj)
|
rendered_obj)
|
||||||
|
|
||||||
def test_render_template_tls_no_alpn(self):
|
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')
|
conf.config(group="haproxy_amphora", base_cert_dir='/fake_cert_dir')
|
||||||
FAKE_CRT_LIST_FILENAME = os.path.join(
|
FAKE_CRT_LIST_FILENAME = os.path.join(
|
||||||
CONF.haproxy_amphora.base_cert_dir,
|
CONF.haproxy_amphora.base_cert_dir,
|
||||||
@ -444,6 +445,55 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
sample_configs_combined.sample_base_expected_config(backend=be),
|
sample_configs_combined.sample_base_expected_config(backend=be),
|
||||||
rendered_obj)
|
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):
|
def test_render_template_member_backup(self):
|
||||||
be = ("backend sample_pool_id_1:sample_listener_id_1\n"
|
be = ("backend sample_pool_id_1:sample_listener_id_1\n"
|
||||||
" mode http\n"
|
" mode http\n"
|
||||||
@ -1434,6 +1484,15 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
in_listener.load_balancer)
|
in_listener.load_balancer)
|
||||||
self.assertEqual(sample_configs_combined.RET_LISTENER_L7, ret)
|
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):
|
def test_transform_loadbalancer(self):
|
||||||
in_amphora = sample_configs_combined.sample_amphora_tuple()
|
in_amphora = sample_configs_combined.sample_amphora_tuple()
|
||||||
in_listener = sample_configs_combined.sample_listener_tuple()
|
in_listener = sample_configs_combined.sample_listener_tuple()
|
||||||
@ -1533,7 +1592,7 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
" option redispatch\n"
|
" option redispatch\n"
|
||||||
" option splice-request\n"
|
" option splice-request\n"
|
||||||
" option splice-response\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(
|
rendered_obj = j_cfg.render_loadbalancer_obj(
|
||||||
sample_configs_combined.sample_amphora_tuple(),
|
sample_configs_combined.sample_amphora_tuple(),
|
||||||
[sample_configs_combined.sample_listener_tuple()]
|
[sample_configs_combined.sample_listener_tuple()]
|
||||||
|
@ -310,6 +310,7 @@ RET_LISTENER = {
|
|||||||
'timeout_member_connect': 5000,
|
'timeout_member_connect': 5000,
|
||||||
'timeout_member_data': 50000,
|
'timeout_member_data': 50000,
|
||||||
'timeout_tcp_inspect': 0,
|
'timeout_tcp_inspect': 0,
|
||||||
|
'PROMETHEUS': False,
|
||||||
}
|
}
|
||||||
|
|
||||||
RET_LISTENER_L7 = {
|
RET_LISTENER_L7 = {
|
||||||
@ -332,6 +333,7 @@ RET_LISTENER_L7 = {
|
|||||||
'timeout_member_connect': 5000,
|
'timeout_member_connect': 5000,
|
||||||
'timeout_member_data': 50000,
|
'timeout_member_data': 50000,
|
||||||
'timeout_tcp_inspect': 0,
|
'timeout_tcp_inspect': 0,
|
||||||
|
'PROMETHEUS': False,
|
||||||
}
|
}
|
||||||
|
|
||||||
RET_LISTENER_TLS = {
|
RET_LISTENER_TLS = {
|
||||||
@ -683,7 +685,8 @@ def sample_listener_tuple(proto=None, monitor=True, alloc_default_pool=True,
|
|||||||
sample_default_pool=1,
|
sample_default_pool=1,
|
||||||
pool_enabled=True,
|
pool_enabled=True,
|
||||||
backend_alpn_protocols=constants.
|
backend_alpn_protocols=constants.
|
||||||
AMPHORA_SUPPORTED_ALPN_PROTOCOLS):
|
AMPHORA_SUPPORTED_ALPN_PROTOCOLS,
|
||||||
|
include_pools=True):
|
||||||
proto = 'HTTP' if proto is None else proto
|
proto = 'HTTP' if proto is None else proto
|
||||||
if be_proto is None:
|
if be_proto is None:
|
||||||
be_proto = 'HTTP' if proto == 'TERMINATED_HTTPS' else proto
|
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,
|
intermediates=sample_certs.X509_IMDS_LIST,
|
||||||
primary_cn=sample_certs.X509_CERT_CN_3))]
|
primary_cn=sample_certs.X509_CERT_CN_3))]
|
||||||
if sni else [],
|
if sni else [],
|
||||||
pools=pools,
|
pools=pools if include_pools else '',
|
||||||
l7policies=l7policies,
|
l7policies=l7policies,
|
||||||
enabled=enabled,
|
enabled=enabled,
|
||||||
insert_headers=insert_headers,
|
insert_headers=insert_headers,
|
||||||
@ -1239,7 +1242,7 @@ def sample_base_expected_config(frontend=None, logging=None, backend=None,
|
|||||||
" option redispatch\n"
|
" option redispatch\n"
|
||||||
" option splice-request\n"
|
" option splice-request\n"
|
||||||
" option splice-response\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"
|
return ("# Configuration for loadbalancer sample_loadbalancer_id_1\n"
|
||||||
"global\n"
|
"global\n"
|
||||||
" daemon\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.serialization>=2.28.1 # Apache-2.0
|
||||||
oslo.upgradecheck>=1.3.0 # Apache-2.0
|
oslo.upgradecheck>=1.3.0 # Apache-2.0
|
||||||
oslo.utils>=4.7.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!=0.2.3,>=0.1.8 # BSD
|
||||||
pyasn1-modules>=0.0.6 # BSD
|
pyasn1-modules>=0.0.6 # BSD
|
||||||
python-barbicanclient>=4.5.2 # Apache-2.0
|
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
|
tenacity>=5.0.4 # Apache-2.0
|
||||||
distro>=1.2.0 # Apache-2.0
|
distro>=1.2.0 # Apache-2.0
|
||||||
jsonschema>=3.2.0 # MIT
|
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
|
netaddr>=0.7.19 # BSD
|
||||||
simplejson>=3.13.2 # MIT
|
simplejson>=3.13.2 # MIT
|
||||||
setproctitle>=1.1.10 # BSD
|
setproctitle>=1.1.10 # BSD
|
||||||
|
@ -55,6 +55,7 @@ console_scripts =
|
|||||||
octavia-status = octavia.cmd.status:main
|
octavia-status = octavia.cmd.status:main
|
||||||
amphora-health-checker = octavia.cmd.health_checker:main
|
amphora-health-checker = octavia.cmd.health_checker:main
|
||||||
amphora-interface = octavia.cmd.interface:main
|
amphora-interface = octavia.cmd.interface:main
|
||||||
|
prometheus-proxy = octavia.cmd.prometheus_proxy:main
|
||||||
octavia.api.drivers =
|
octavia.api.drivers =
|
||||||
noop_driver = octavia.api.drivers.noop_driver.driver:NoopProviderDriver
|
noop_driver = octavia.api.drivers.noop_driver.driver:NoopProviderDriver
|
||||||
noop_driver-alt = octavia.api.drivers.noop_driver.driver:NoopProviderDriver
|
noop_driver-alt = octavia.api.drivers.noop_driver.driver:NoopProviderDriver
|
||||||
|
Loading…
x
Reference in New Issue
Block a user