diff options
author | Micah Anderson <micah@riseup.net> | 2022-07-21 17:18:14 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2022-07-21 17:18:14 -0400 |
commit | 7f7135baf543a9504534964b80a4cec6088e59c4 (patch) | |
tree | a40dc4d448ad7172e67570ce3c19510f487b3f3e | |
parent | 2196ddb84fe5d195fe78532a6706b11a66ecade8 (diff) |
git subrepo pull (merge) float
subrepo:
subdir: "float"
merged: "aa47bbbf"
upstream:
origin: "https://git.autistici.org/ai3/float.git"
branch: "master"
commit: "4251afa4"
git-subrepo:
version: "0.4.1"
origin: "https://github.com/ingydotnet/git-subrepo"
commit: "a04d8c2"
47 files changed, 14355 insertions, 1319 deletions
diff --git a/float/.gitlab-ci.yml b/float/.gitlab-ci.yml index eaca15b..7e93b27 100644 --- a/float/.gitlab-ci.yml +++ b/float/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - docker_build - test + - cleanup variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG @@ -24,12 +25,12 @@ variables: ${APT_PROXY:+-e config.apt_proxy=${APT_PROXY}} $CREATE_ENV_VARS $BUILD_DIR - - with-ssh-key ./scripts/floatup.py ${LIBVIRT:+--ssh $LIBVIRT} --inventory $BUILD_DIR/hosts.yml --ram 2048 --cpu 2 --image ${VM_IMAGE:-bullseye} up + - with-ssh-key floatup ${LIBVIRT:+--ssh $LIBVIRT} --inventory $BUILD_DIR/hosts.yml --ram 2048 --cpu 2 --image ${VM_IMAGE:-bullseye} ${FLOATUP_ARGS} up - with-ssh-key ./test-driver init --no-vagrant $BUILD_DIR - with-ssh-key ./test-driver run $BUILD_DIR after_script: - with-ssh-key ./test-driver cleanup --no-vagrant $BUILD_DIR - - with-ssh-key ./scripts/floatup.py ${LIBVIRT:+--ssh $LIBVIRT} down + - with-ssh-key floatup ${LIBVIRT:+--ssh $LIBVIRT} down variables: CREATE_ENV_VARS: "" TEST_DIR: "" @@ -55,6 +56,45 @@ full_test: VM_IMAGE: "bullseye" CREATE_ENV_VARS: "-e config.float_debian_dist=bullseye -e inventory.group_vars.vagrant.ansible_python_interpreter=/usr/bin/python3" TEST_DIR: "test/full.ref" + rules: + - if: $CI_MERGE_REQUEST_ID == '' + +full_test_review: + <<: *base_test + after_script: + - with-ssh-key ./test-driver cleanup --no-vagrant $BUILD_DIR + variables: + VM_IMAGE: "bullseye" + CREATE_ENV_VARS: "-e config.float_debian_dist=bullseye -e inventory.group_vars.vagrant.ansible_python_interpreter=/usr/bin/python3" + FLOATUP_ARGS: "--state-file .vmine_group_review_$CI_MERGE_REQUEST_ID --ttl 6h --env deploy.env --dashboard-url https://vm.investici.org" + TEST_DIR: "test/full.ref" + allow_failure: true + artifacts: + when: always + reports: + dotenv: deploy.env + paths: ['.vmine_group_review*'] + environment: + name: review/$CI_COMMIT_REF_SLUG + url: $VMINE_GROUP_URL + on_stop: stop_full_test_review + auto_stop_in: "6 hours" + rules: + - if: $CI_MERGE_REQUEST_ID + +stop_full_test_review: + stage: cleanup + dependencies: [full_test_review] + image: registry.git.autistici.org/ai3/docker/float-runner:master + script: + - with-ssh-key floatup --state-file .vmine_group_review_$CI_MERGE_REQUEST_ID ${LIBVIRT:+--ssh $LIBVIRT} down + allow_failure: true + environment: + name: review/$CI_COMMIT_REF_SLUG + action: stop + rules: + - if: $CI_MERGE_REQUEST_ID + when: manual backup_test: <<: *base_test @@ -69,7 +109,7 @@ docker_build_and_release_tests: services: - docker:dind script: - - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.git.autistici.org + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - cd test && docker build --build-arg ci_token=$CI_JOB_TOKEN --pull -t $IMAGE_TAG . - docker tag $IMAGE_TAG $CI_REGISTRY_IMAGE:integration-test - docker push $CI_REGISTRY_IMAGE:integration-test diff --git a/float/.gitrepo b/float/.gitrepo index 73f55db..0d468d8 100644 --- a/float/.gitrepo +++ b/float/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://git.autistici.org/ai3/float.git branch = master - commit = c75bee814b58bd73e3d5388d6d81b2aa1e370781 + commit = 4251afa4979c48b9dd36946b2a955d9b57a39d59 parent = d9b2f97887292b92babad1990bd760c23e952416 cmdver = 0.4.1 method = merge diff --git a/float/README.md b/float/README.md index d11e2dd..e3c39cf 100644 --- a/float/README.md +++ b/float/README.md @@ -77,8 +77,8 @@ on the local machine using [Go](https://golang.org): ```shell sudo apt-get install golang -go get -u git.autistici.org/ale/x509ca -go get -u git.autistici.org/ale/ed25519gen +go install git.autistici.org/ale/x509ca@latest +go install git.autistici.org/ale/ed25519gen@latest export PATH=$PATH:$HOME/go/bin ``` diff --git a/float/ci/deploy.yml b/float/ci/deploy.yml new file mode 100644 index 0000000..04354f1 --- /dev/null +++ b/float/ci/deploy.yml @@ -0,0 +1,128 @@ +# Build a simple float-based environment off a +# services.yml/passwords.yml combination. +# +# Example usage: +# +# include: +# - project: ai3/float +# file: ci/deploy.yml +# +# variables: +# FLOATUP_ARGS: "--ssh user@jump.host" +# +# deploy: +# variables: +# SERVICES_FILE: my-services.yml +# PASSWORDS_FILE: my-passwords.yml +# + +stages: + - deploy + - run + +# These are all configurable, globally and per-build. +variables: + SERVICES_FILE: services.yml + PASSWORDS_FILE: passwords.yml + PLAYBOOK_FILE: site.yml + ROLES_PATH: "${CI_PROJECT_DIR}/roles" + DOMAIN: example.com + NUM_HOSTS: 1 + VM_IMAGE: bullseye + VM_RAM: 2048 + VM_CPU: 1 + VM_TTL: "4h" + VM_TAG: default + VM_DASHBOARD_URL: "https://vm.investici.org" + FLOATUP_ARGS: "" + CREATE_ENV_ARGS: "" + +.deploy_template: + stage: deploy + image: registry.git.autistici.org/ai3/docker/float-runner:master + variables: + # Internal, do not change. + DEPLOY_ENV_FILE: "deploy-${VM_TAG}.env" + # This can be any temporary directory as long as it is unique + # (multiple jobs may be running off the same CI_PROJECT_DIR). + BUILD_DIR: "${CI_PROJECT_DIR}/env-${VM_TAG}-${CI_JOB_ID}" + VMINE_STATE_FILE: ".vmine_state_${CI_MERGE_REQUEST_ID}_${VM_TAG}" + before_script: + - mkdir -p $BUILD_DIR + script: + - (cd $BUILD_DIR && git clone --depth 1 https://git.autistici.org/ai3/float.git) + - > + $BUILD_DIR/float/float create-env + --domain=${DOMAIN} + --services=${BUILD_DIR}/float/services.yml.no-elasticsearch + --services=${SERVICES_FILE} + --passwords=${BUILD_DIR}/float/passwords.yml.default + --passwords=${PASSWORDS_FILE} + --playbook=${BUILD_DIR}/float/playbooks/all.yml + --playbook=${PLAYBOOK_FILE} + --num-hosts=${NUM_HOSTS} + --roles-path=${ROLES_PATH} + -e ansible_cfg.defaults.strategy=mitogen_linear + -e config.docker_registry_url=${CI_REGISTRY} + -e config.docker_registry_username=${CI_REGISTRY_USER} + -e config.docker_registry_password=${CI_REGISTRY_PASSWORD} + ${APT_PROXY:+-e config.apt_proxy=${APT_PROXY}} + ${CREATE_ENV_ARGS} + ${BUILD_DIR} + - with-ssh-key floatup $FLOATUP_ARGS --inventory $BUILD_DIR/hosts.yml --ram $VM_RAM --cpu $VM_CPU --image $VM_IMAGE --state-file $VMINE_STATE_FILE --env $DEPLOY_ENV_FILE --ttl $VM_TTL --dashboard-url $VM_DASHBOARD_URL up + - with-ssh-key $BUILD_DIR/float/test-driver init --no-vagrant $BUILD_DIR + - echo BUILD_DIR=$BUILD_DIR >> $DEPLOY_ENV_FILE + allow_failure: true + artifacts: + when: always + expire_in: "1 day" + reports: + dotenv: "$DEPLOY_ENV_FILE" + paths: + - "${BUILD_DIR}" + - "$VMINE_STATE_FILE" + environment: + name: "review/$CI_COMMIT_REF_SLUG" + url: "$VMINE_GROUP_URL" + auto_stop_in: "3 hours" + +.run_template: + stage: run + image: registry.git.autistici.org/ai3/docker/float-runner:master + script: + - cd $BUILD_DIR + - with-ssh-key ./float/float run -e docker_registry_password=$CI_REGISTRY_PASSWORD site.yml + - with-ssh-key ./float/float run -e docker_registry_password=$CI_REGISTRY_PASSWORD ./float/test/integration-test.yml + after_script: + - cd $BUILD_DIR + - with-ssh-key ./float/test-driver cleanup --no-vagrant . + artifacts: + when: always + paths: + - "${BUILD_DIR}/logs" + +.stop_deploy_template: + stage: run + image: registry.git.autistici.org/ai3/docker/float-runner:master + allow_failure: true + variables: + # Internal, do not change. + VMINE_STATE_FILE: ".vmine_state_${CI_MERGE_REQUEST_ID}_${VM_TAG}" + script: + - with-ssh-key floatup $FLOATUP_ARGS --state-file $VMINE_STATE_FILE down + environment: + name: "review/$CI_COMMIT_REF_SLUG" + action: stop + +deploy: + extends: .deploy_template + environment: + on_stop: "stop_deploy" + +run: + extends: .run_template + +stop_deploy: + extends: .stop_deploy_template + rules: + - when: manual diff --git a/float/docs/reference.md b/float/docs/reference.md index 72c45fb..d588cf7 100644 --- a/float/docs/reference.md +++ b/float/docs/reference.md @@ -1592,6 +1592,27 @@ prometheus_additional_blackbox_probers: target_regex: "http://\\1:2020" ``` +### Customizing alert timeouts for additional blackbox probes + +The Prometheus configuration for the default *float* blackbox probes +is appropriate for high-frequency, high-accuracy probes (with 10s +polling and a 5m alert timeout). This is not going to be appropriate +for all use cases, such as more complex probes that require less +frequent polling. + +Float provides a way to configure alert timeouts on a *prober* +(i.e. float service) basis, by using the optional +*prober_alert_timeout* attribute in the service description +metadata. For instance, to set a 30 minute alert timeout in the +context of the previous example, the services.yml file should be +modified: + +```yaml +my-prober: + ... + prober_alert_timeout: 30m +``` + ## Log Collection and Analysis Logs are forwarded by all machines to a set of (one or more) diff --git a/float/float b/float/float index b315fd9..f4a6fb2 100755 --- a/float/float +++ b/float/float @@ -65,7 +65,7 @@ Vagrant.configure(2) do |config| hosts.each do |hostname, hostvars| config.vm.define hostname do |m| m.vm.hostname = hostname - m.vm.network "private_network", ip: hostvars["ip"], libvirt__dhcp_enabled: false, libvirt__network_name: network_name + m.vm.network "private_network", ip: hostvars["ips"][0], libvirt__dhcp_enabled: false, libvirt__network_name: network_name end end end @@ -116,14 +116,18 @@ VVSaq+sWqN+ugjpj9sJ++/O1uSiUPNZdIwIBAg== 'services.yml': '''--- include: {% if services_yml_path %} - - "{{ services_yml_path | relpath(targetdir) }}" +{% for p in services_yml_path %} + - "{{ p | relpath(targetdir) }}" +{% endfor %} {% else %} - "{{ srcdir | relpath(targetdir) }}/services.yml.no-elasticsearch" {% endif %} ''', 'passwords.yml': '''--- {% if passwords_yml_path %} -- include: "{{ passwords_yml_path | relpath(targetdir) }}" +{% for p in passwords_yml_path %} +- include: "{{ p | relpath(targetdir) }}" +{% endfor %} {% else %} - include: "{{ srcdir | relpath(targetdir) }}/passwords.yml.default" {% endif %} @@ -142,8 +146,8 @@ DEFAULT_VARS = { # Paths, some set by command-line options. 'srcdir': SRCDIR, 'targetdir': None, - 'services_yml_path': None, - 'passwords_yml_path': None, + 'services_yml_path': [], + 'passwords_yml_path': [], 'playbooks': [], # Memory for the virtual machines (MB). @@ -529,9 +533,11 @@ memberships, using the --additional-host-group command-line option. help='infrastructural domain to use (default: "infra." + domain)') create_env_parser.add_argument( '--services', metavar='FILE', + action='append', default=[], help='your custom services.yml') create_env_parser.add_argument( '--passwords', metavar='FILE', + action='append', default=[], help='your custom passwords.yml') create_env_parser.add_argument( '--playbook', metavar='FILE', diff --git a/float/playbooks/apt-upgrade.yml b/float/playbooks/apt-upgrade.yml index ad5ee15..f8051ea 100644 --- a/float/playbooks/apt-upgrade.yml +++ b/float/playbooks/apt-upgrade.yml @@ -2,6 +2,9 @@ - hosts: all tasks: + - copy: + src: float/roles/float-base/files/apt/deb_autistici_org.gpg + dest: /usr/share/keyrings/deb.autistici.org.gpg - apt: update_cache: yes upgrade: "yes" diff --git a/float/plugins/inventory/float.py b/float/plugins/inventory/float.py index e9fa22b..808b52b 100644 --- a/float/plugins/inventory/float.py +++ b/float/plugins/inventory/float.py @@ -618,8 +618,6 @@ def run_scheduler(config): inventory['group_vars'].setdefault('frontend', {}).update({ 'float_enable_http_frontend': _any_attribute_set( services, 'public_endpoints'), - 'float_enable_tcp_frontend': _any_attribute_set( - services, 'public_tcp_endpoints'), 'float_http_upstreams': http_upstreams, 'float_http_endpoints': http_endpoints, }) diff --git a/float/roles/float-base-docker/defaults/main.yml b/float/roles/float-base-docker/defaults/main.yml index 060965b..8b9cd78 100644 --- a/float/roles/float-base-docker/defaults/main.yml +++ b/float/roles/float-base-docker/defaults/main.yml @@ -6,6 +6,8 @@ docker_registry_url: "" docker_registry_username: "" docker_registry_password: "" +docker_auth_file: "/root/.float-registry-auth.json" + # The following options are not used on >= Buster docker_daemon_config: log-driver: "local" diff --git a/float/roles/float-base-docker/tasks/main.yml b/float/roles/float-base-docker/tasks/main.yml index 459ac56..5fc73a5 100644 --- a/float/roles/float-base-docker/tasks/main.yml +++ b/float/roles/float-base-docker/tasks/main.yml @@ -12,7 +12,7 @@ when: "container_runtime == 'podman'" - name: Login to the Docker registry - shell: 'echo -n "{{ docker_registry_password }}" | {{ container_runtime }} login -u "{{ docker_registry_username }}" --password-stdin "{{ docker_registry_url }}"' + shell: 'echo -n "{{ docker_registry_password }}" | {{ container_runtime }} login --authfile {{ docker_auth_file }} -u "{{ docker_registry_username }}" --password-stdin "{{ docker_registry_url }}"' changed_when: false check_mode: no when: "docker_registry_url != ''" diff --git a/float/roles/float-base-docker/templates/float-pull-image.j2 b/float/roles/float-base-docker/templates/float-pull-image.j2 index fae251f..ebe86dd 100755 --- a/float/roles/float-base-docker/templates/float-pull-image.j2 +++ b/float/roles/float-base-docker/templates/float-pull-image.j2 @@ -8,16 +8,18 @@ set -u binary={{ container_runtime }} +auth_file={{ docker_auth_file }} + # Automatically pick up proxy settings if present. [ -e /etc/containers/proxy-settings.sh ] && . /etc/containers/proxy-settings.sh get_main_auth_token() { - jq -r .auths.\"${registry_hostname}\".auth ~/.docker/config.json 2>/dev/null + test -e ${auth_file} && jq -r .auths.\"${registry_hostname}\".auth ${auth_file} 2>/dev/null } get_auth_token() { local url="$1" - local auth_hdr="$(curl -fs -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" "$url" \ + local auth_hdr="$(curl -s -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" "$url" \ | awk 'BEGIN{IGNORECASE=1} /^www-authenticate:/ {print $3}')" if [ -z "$auth_hdr" ]; then echo "Could not obtain authentication token from $url" >&2 @@ -27,11 +29,8 @@ get_auth_token() { local service=$(printf "%s" "${auth_hdr}" | sed -e 's/^.*service="\([^"]*\)".*$/\1/') local realm=$(printf "%s" "${auth_hdr}" | sed -e 's/^.*realm="\([^"]*\)".*$/\1/') local main_auth_token="$(get_main_auth_token)" - local curl_opts="" - if [ -n "${main_auth_token}" ]; then - curl_opts="-H \"Authorization: Bearer ${main_auth_token}\"" - fi - curl ${curl_opts} -sf "${realm}?service=${service}&scope=${scope}" | jq -r .token + curl ${main_auth_token:+-H "Authorization: Basic ${main_auth_token}"} \ + -sf "${realm}?service=${service}&scope=${scope}" | jq -r .token } get_remote_image_version() { @@ -62,10 +61,14 @@ check() { pull() { local pre_version=$(get_local_image_version) - # https://github.com/containers/podman/issues/10116 local pull_args= + if [ -e "${auth_file}" ]; then + pull_args="${pull_args} --authfile=${auth_file}" + fi + + # https://github.com/containers/podman/issues/10116 if [ -n "${https_proxy:-}" ]; then - pull_args="--cert-dir=/etc/containers/certs.d/" + pull_args="${pull_args} --cert-dir=/etc/containers/certs.d/" fi $binary pull $pull_args $image diff --git a/float/roles/float-base-net-overlay/templates/firewall/11net-overlay.j2 b/float/roles/float-base-net-overlay/templates/firewall/11net-overlay.j2 index 49bc38b..69276f8 100644 --- a/float/roles/float-base-net-overlay/templates/firewall/11net-overlay.j2 +++ b/float/roles/float-base-net-overlay/templates/firewall/11net-overlay.j2 @@ -19,7 +19,8 @@ add_rule -A vpn-{{ tinc_net }}-input -p tcp --dport {{ ep.port }} -j ACCEPT {% endfor %} {% for ep in services[s].get('public_tcp_endpoints', {}) %} {% for port in ep.get('ports', []) %} -add_rule -A vpn-{{ tinc_net }}-input -p tcp --dport {{ port }} -j ACCEPT +{% set internal = port.internal | default(port) %} +add_rule -A vpn-{{ tinc_net }}-input -p tcp --dport {{ internal }} -j ACCEPT {% endfor %} {% if 'port' in ep %} add_rule -A vpn-{{ tinc_net }}-input -p tcp --dport {{ ep.port }} -j ACCEPT diff --git a/float/roles/float-base-service-credentials/tasks/main.yml b/float/roles/float-base-service-credentials/tasks/main.yml index 23a0988..78d92bb 100644 --- a/float/roles/float-base-service-credentials/tasks/main.yml +++ b/float/roles/float-base-service-credentials/tasks/main.yml @@ -24,3 +24,9 @@ - file: path: /etc/credentials/public state: directory + +# Generate a summary file for the node-exporter credentials SSL expiration time script. +- name: Create credentials summary for node-exporter + template: + src: service_credentials_map.dat.j2 + dest: "/etc/prometheus/service_credentials_map.dat" diff --git a/float/roles/float-base-service-credentials/templates/service_credentials_map.dat.j2 b/float/roles/float-base-service-credentials/templates/service_credentials_map.dat.j2 new file mode 100644 index 0000000..1322851 --- /dev/null +++ b/float/roles/float-base-service-credentials/templates/service_credentials_map.dat.j2 @@ -0,0 +1,3 @@ +{% for item in float_host_service_credentials %} +{{ item.service }} {{ item.credentials.name }} {{ item.mode }} +{% endfor %} diff --git a/float/roles/float-base/files/apt/deb_autistici_org.gpg b/float/roles/float-base/files/apt/deb_autistici_org.gpg Binary files differindex 1ea8cce..65f1221 100644 --- a/float/roles/float-base/files/apt/deb_autistici_org.gpg +++ b/float/roles/float-base/files/apt/deb_autistici_org.gpg diff --git a/float/roles/float-base/files/node-exporter-scripts/service_credentials.sh b/float/roles/float-base/files/node-exporter-scripts/service_credentials.sh new file mode 100644 index 0000000..0f276f1 --- /dev/null +++ b/float/roles/float-base/files/node-exporter-scripts/service_credentials.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +get_expiry() { + local path="$1" + local expiry="$(openssl x509 -noout -enddate -in ${path} | cut -d= -f2)" + date --date="${expiry}" +%s +} + +# Load the configuration file. +conf_file=/etc/prometheus/service_credentials_map.dat +test -e ${conf_file} || exit 0 + +(while read service credential role; do + cert_path=/etc/credentials/x509/${credential}/${role}/cert.pem + test -e "${cert_path}" || continue + expiry=$(get_expiry "${cert_path}" 2>/dev/null) + echo "service_credentials_expiration_time{float_service=\"${service}\",name=\"${credential}\",role=\"${role}\"} ${expiry}" + done) < ${conf_file} + +exit 0 diff --git a/float/roles/float-base/tasks/service_discovery.yml b/float/roles/float-base/tasks/service_discovery.yml index bd6e415..442c19f 100644 --- a/float/roles/float-base/tasks/service_discovery.yml +++ b/float/roles/float-base/tasks/service_discovery.yml @@ -1,9 +1,12 @@ --- +# Register this task so we can use it later, in other roles, +# to reload haproxy/nginx. - name: Create /etc/hosts template: dest: /etc/hosts src: hosts.j2 + register: etc_hosts - name: Create /etc/host.conf copy: diff --git a/float/roles/float-base/templates/sysctl.conf.j2 b/float/roles/float-base/templates/sysctl.conf.j2 index c28c31e..ac7fed2 100644 --- a/float/roles/float-base/templates/sysctl.conf.j2 +++ b/float/roles/float-base/templates/sysctl.conf.j2 @@ -114,7 +114,6 @@ kernel.sysrq=0 # (linux-hardened default) net.core.bpf_jit_harden=2 kernel.unprivileged_bpf_disabled=1 -{% endif %} {% if not disable_restricted_sysctl %} # Disable unprivileged user namespaces diff --git a/float/roles/float-base/templates/vhostmap.prom.j2 b/float/roles/float-base/templates/vhostmap.prom.j2 index 385cf7b..4444450 100644 --- a/float/roles/float-base/templates/vhostmap.prom.j2 +++ b/float/roles/float-base/templates/vhostmap.prom.j2 @@ -2,13 +2,20 @@ Map tying float services (float_service=), systemd services (service=) and vhosts together, used to build Graphana dynamic dashboards. +Skip public_endpoints with a path, to avoid duplication of entries. #} {% for service_name, service in services | dictsort %} {% for ep in service.get('public_endpoints', []) %} -{% for s in service.get('systemd_services', []) %} +{% for systemd_service in service.get('systemd_services', []) %} {% for d in domain_public %} -vhostmap{float_service="{{ service_name }}",service="{{ s }}",vhost="{{ ep.name }}.{{ d }}:443"} 1 +{% if ep.sharded | default(False) %} +{% for shard_id in service.hosts | map('extract', hostvars) | map(attribute='shard_id') | sort %} +vhostmap{float_service="{{ service_name }}",service="{{ systemd_service }}",vhost="{{ shard_id }}.{{ ep.name }}.{{ d }}:443"} 1 +{% endfor %} +{% else %} +vhostmap{float_service="{{ service_name }}",service="{{ systemd_service }}",vhost="{{ ep.name }}.{{ d }}:443"} 1 +{% endif %} {% endfor %} {% endfor %} {% endfor %} diff --git a/float/roles/float-infra-acme/templates/certs.yml.j2 b/float/roles/float-infra-acme/templates/certs.yml.j2 index 7710189..0103db7 100644 --- a/float/roles/float-infra-acme/templates/certs.yml.j2 +++ b/float/roles/float-infra-acme/templates/certs.yml.j2 @@ -3,7 +3,7 @@ {# Create certificates for all the HTTP public endpoints #} {% for pe in service.get('public_endpoints', []) if pe.get('name') and not pe.get('skip_acme', False) and pe.get('path', '/') == '/' %} - names: -{% if pe.domains is defined %} +{% if pe.get('domains') %} {% for d in pe.domains %} - "{{ d }}" {% endfor %} diff --git a/float/roles/float-infra-haproxy/tasks/haproxy.yml b/float/roles/float-infra-haproxy/tasks/haproxy.yml deleted file mode 100644 index 97e54d3..0000000 --- a/float/roles/float-infra-haproxy/tasks/haproxy.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -- name: Install haproxy - apt: - name: "{{ packages }}" - state: present - vars: - packages: - - haproxy - - hatop - -- name: Configure haproxy - template: - src: haproxy.cfg.j2 - dest: /etc/haproxy/haproxy.cfg - notify: restart haproxy - -- name: Install firewall config - template: - src: firewall/20haproxy.j2 - dest: /etc/firewall/filter.d/20haproxy - notify: "reload firewall" - diff --git a/float/roles/float-infra-haproxy/tasks/main.yml b/float/roles/float-infra-haproxy/tasks/main.yml index 650adaf..97e54d3 100644 --- a/float/roles/float-infra-haproxy/tasks/main.yml +++ b/float/roles/float-infra-haproxy/tasks/main.yml @@ -1,4 +1,23 @@ --- -- import_tasks: haproxy.yml - when: float_enable_tcp_frontend +- name: Install haproxy + apt: + name: "{{ packages }}" + state: present + vars: + packages: + - haproxy + - hatop + +- name: Configure haproxy + template: + src: haproxy.cfg.j2 + dest: /etc/haproxy/haproxy.cfg + notify: restart haproxy + +- name: Install firewall config + template: + src: firewall/20haproxy.j2 + dest: /etc/firewall/filter.d/20haproxy + notify: "reload firewall" + diff --git a/float/roles/float-infra-haproxy/templates/firewall/20haproxy.j2 b/float/roles/float-infra-haproxy/templates/firewall/20haproxy.j2 index 6460e7f..b3e9613 100644 --- a/float/roles/float-infra-haproxy/templates/firewall/20haproxy.j2 +++ b/float/roles/float-infra-haproxy/templates/firewall/20haproxy.j2 @@ -2,7 +2,8 @@ {% for ep in service.get('public_tcp_endpoints', []) %} {% if ep.get('ports', []) %} {% for port in ep.ports %} -allow_port tcp {{ port }} +{% set public = port.public | default(port) %} +allow_port tcp {{ public }} {% endfor %} {% else %} allow_port tcp {{ ep.public_port | default(ep.port) }} diff --git a/float/roles/float-infra-haproxy/templates/haproxy.cfg.j2 b/float/roles/float-infra-haproxy/templates/haproxy.cfg.j2 index 4fe5770..ef3c340 100644 --- a/float/roles/float-infra-haproxy/templates/haproxy.cfg.j2 +++ b/float/roles/float-infra-haproxy/templates/haproxy.cfg.j2 @@ -23,26 +23,37 @@ defaults timeout client 1440m timeout server 1440m +frontend stats + bind :::8404 + mode http + option http-use-htx + http-request use-service prometheus-exporter if { path /metrics } + stats enable + stats uri /stats + stats refresh 10s + {% for service_name, service in services|dictsort %} {% for ep in service.get('public_tcp_endpoints', []) %} {% if ep.get('ports', []) %} {% for port in ep.ports %} -frontend fe_{{ service_name }}_{{ ep.name }}_{{ port }} - bind :::{{ port }} - default_backend be_{{ service_name }}_{{ ep.name }}_{{ port }} +{% set internal = port.internal | default(port) %} +{% set public = port.public | default(port) %} +frontend fe_{{ service_name }}_{{ ep.name }}_{{ public }} + bind :::{{ public }} + default_backend be_{{ service_name }}_{{ ep.name }}_{{ internal }} -backend be_{{ service_name }}_{{ ep.name }}_{{ port }} +backend be_{{ service_name }}_{{ ep.name }}_{{ internal }} log global balance leastconn option independent-streams {% for s in services[service_name].hosts|sort %} - server task{{ loop.index -1 }} {{ s }}.{{ service_name }}.{{ domain }}:{{ port }} check fall 3 id {{ loop.index + 999 }} inter 5000 rise 3 slowstart 60000 weight 50{% if ep.get('use_proxy_protocol') %} send-proxy-v2{% endif %} + server task{{ loop.index -1 }} {{ s }}.{{ service_name }}.{{ domain }}:{{ internal }} check fall 3 id {{ loop.index + 999 }} inter 5000 rise 3 slowstart 60000 weight 50{% if ep.get('use_proxy_protocol') %} send-proxy-v2{% endif %} {% endfor %} -{% endfor %} # ep.ports +{% endfor %} {% else %} {% set public_port = ep.public_port | default(ep.port) %} @@ -59,7 +70,7 @@ backend be_{{ service_name }}_{{ ep.name }}_{{ ep.port }} {% endfor %} -{% endif %} # ep.get('ports') +{% endif %} {% endfor %} {% endfor %} diff --git a/float/roles/float-infra-log-collector/files/es_init.py b/float/roles/float-infra-log-collector/files/es_init.py index 6a6b9bb..d1d3eaa 100755 --- a/float/roles/float-infra-log-collector/files/es_init.py +++ b/float/roles/float-infra-log-collector/files/es_init.py @@ -15,7 +15,7 @@ import urllib.request # exist. This way we solve the race condition between the creation of # index templates and the auto-creation of indices triggered by # rsyslog. -INDEX_SETTINGS = ''' +INDEX_SETTINGS = b''' { "index": { "number_of_replicas": 0, @@ -45,7 +45,7 @@ def wait_for_es(url, timeout): def load_index_template(url, tplfile): - with open(tplfile, 'r') as fd: + with open(tplfile, 'rb') as fd: tpldata = fd.read() name = os.path.splitext(os.path.basename(tplfile))[0] req = urllib.request.Request( @@ -97,7 +97,7 @@ def main(): help='Elasticsearch URL') parser.add_argument('--dir', default='/etc/elasticsearch/templates', help='Directory containing JSON index templates') - parser.add_argument('--wait-timeout', dest='wait_timeout', type='int', + parser.add_argument('--wait-timeout', dest='wait_timeout', type=int, default=1800) args = parser.parse_args() diff --git a/float/roles/float-infra-log-collector/files/kibana_importer.py b/float/roles/float-infra-log-collector/files/kibana_importer.py index 407f973..ea9f805 100755 --- a/float/roles/float-infra-log-collector/files/kibana_importer.py +++ b/float/roles/float-infra-log-collector/files/kibana_importer.py @@ -42,14 +42,14 @@ def upload_kibana_dashboards(kibana_base_url, jsonArray): } req = urllib.request.Request( f'{kibana_base_url}/api/kibana/dashboards/import?force=true', - data=json.dumps(obj), headers=headers) + data=json.dumps(obj).encode('utf-8'), headers=headers) urllib.request.urlopen(req) def set_default_index(kibana_base_url, index_id): req = urllib.request.Request( f'{kibana_base_url}/api/kibana/settings/defaultIndex', - data=json.dumps({'value': index_id}), + data=json.dumps({'value': index_id}).encode('utf-8'), headers={ 'kbn-xsrf': 'anything', 'Content-Type': 'application/json', diff --git a/float/roles/float-infra-nginx/tasks/nginx.yml b/float/roles/float-infra-nginx/tasks/nginx.yml index 69316f4..33a801a 100644 --- a/float/roles/float-infra-nginx/tasks/nginx.yml +++ b/float/roles/float-infra-nginx/tasks/nginx.yml @@ -201,3 +201,10 @@ - /usr/local/bin/acme-reload-nginx - /etc/cron.d/acme-reload-nginx +# Explicit reload of nginx whenever /etc/hosts changes +- name: Reload nginx + debug: + msg: "reload nginx" + notify: "reload nginx" + changed_when: "etc_hosts is defined and etc_hosts.changed" + diff --git a/float/roles/float-infra-nginx/templates/config/conf.d/noindex.conf b/float/roles/float-infra-nginx/templates/config/conf.d/noindex.conf new file mode 100644 index 0000000..b0b89d1 --- /dev/null +++ b/float/roles/float-infra-nginx/templates/config/conf.d/noindex.conf @@ -0,0 +1,9 @@ +# Global map used to forcefully prevent indexing of specific URLs. +# Configure via drop-in files in /etc/nginx/noindex/. + +map $host$uri $noindex_header { + default ''; + + include /etc/nginx/noindex/*.conf; +} + diff --git a/float/roles/float-infra-nginx/templates/config/noindex/README.md b/float/roles/float-infra-nginx/templates/config/noindex/README.md new file mode 100644 index 0000000..dcaf7b8 --- /dev/null +++ b/float/roles/float-infra-nginx/templates/config/noindex/README.md @@ -0,0 +1,32 @@ +URL deindexing +=== + +This list allows you to prevent bots from indexing specific URLs. +The string that is matched is the combination of the hostname and +the request path (without query arguments), i.e. for a request to + +``` +https://example.com/path/?arg=value +``` + +this map will attempt to match + +``` +example.com/path/ +``` + +To deindex a URL, create or modify a file with a *.conf* extension in +this directory. The files should contain one entry per line, with the +[NGINX map module +syntax](http://nginx.org/en/docs/http/ngx_http_map_module.html): + +``` +"example.com/path/" noindex; +``` + +The value should always be set to `noindex`. + +Deindexing via HTTP header is described here: + +https://developers.google.com/search/docs/advanced/robots/robots_meta_tag + diff --git a/float/roles/float-infra-nginx/templates/config/snippets/site-common.conf b/float/roles/float-infra-nginx/templates/config/snippets/site-common.conf index 202c871..905d18b 100644 --- a/float/roles/float-infra-nginx/templates/config/snippets/site-common.conf +++ b/float/roles/float-infra-nginx/templates/config/snippets/site-common.conf @@ -49,7 +49,12 @@ location = /favicon.ico { # Block external access to /server-status handlers. location = /server-status { - return 404; + return 403; +} + +# Block external access to /metrics handlers. +location = /metrics { + return 403; } # Add services that handle well-known URLs. @@ -70,3 +75,6 @@ location {{ ep.path }}/ { } {% endfor %} {% endfor %} + +add_header X-Robots-Tag $noindex_header; + diff --git a/float/roles/float-infra-nginx/templates/nginx-vhost.j2 b/float/roles/float-infra-nginx/templates/nginx-vhost.j2 index 56842be..244cc8b 100644 --- a/float/roles/float-infra-nginx/templates/nginx-vhost.j2 +++ b/float/roles/float-infra-nginx/templates/nginx-vhost.j2 @@ -24,7 +24,7 @@ {% macro config_vhost(endpoint, shard=None) %} server { listen [::]:{{ nginx_https_port }} http2 ssl; -{% if endpoint.domains %} +{% if endpoint.get('domains') %} server_name {{ endpoint.domains | join(' ') }}; {% else %} server_name {% for d in domain_public %}{% if shard %}{{ shard }}.{% endif %}{{ endpoint.name }}.{{ d }} {% endfor %}; diff --git a/float/roles/float-infra-prometheus/defaults/main.yml b/float/roles/float-infra-prometheus/defaults/main.yml index 14317f4..b83ae97 100644 --- a/float/roles/float-infra-prometheus/defaults/main.yml +++ b/float/roles/float-infra-prometheus/defaults/main.yml @@ -26,4 +26,3 @@ prometheus_scrape_interval: "10s" # Copied from float-infra-log-collector defaults, will # in any case be overridden by group vars if set. enable_elasticsearch: true - diff --git a/float/roles/float-infra-prometheus/templates/grafana/dashboards/authentication.json b/float/roles/float-infra-prometheus/templates/grafana/dashboards/authentication.json index ff8f544..d06f593 100644 --- a/float/roles/float-infra-prometheus/templates/grafana/dashboards/authentication.json +++ b/float/roles/float-infra-prometheus/templates/grafana/dashboards/authentication.json @@ -158,8 +158,8 @@ "steppedLine": false, "targets": [ { - "expr": "sum(rate(sso_logins_total[5m])) by (status,method)", - "legendFormat": "{{status}} ({{method}})", + "expr": "sum(rate(auth_requests{service='sso',status='ok'}[10m])) by (status,mechanism)", + "legendFormat": "{{status}} ({{mechanism}})", "refId": "A" } ], @@ -167,7 +167,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Logins", + "title": "SSO logins", "tooltip": { "shared": true, "sort": 0, @@ -2132,5 +2132,5 @@ "timezone": "", "title": "Authentication", "uid": "Slw4XP4Wk", - "version": 2 + "version": 3 } diff --git a/float/roles/float-infra-prometheus/templates/grafana/dashboards/haproxy.json b/float/roles/float-infra-prometheus/templates/grafana/dashboards/haproxy.json new file mode 100644 index 0000000..c3895c9 --- /dev/null +++ b/float/roles/float-infra-prometheus/templates/grafana/dashboards/haproxy.json @@ -0,0 +1,13717 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "7.3.7" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "" + } + ], + "annotations": { + "list": [ + { + "$$hashKey": "object:257", + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "description": "HAProxy with Prometheus data", + "editable": true, + "gnetId": 367, + "graphTooltip": 1, + "id": null, + "iteration": 1625652439066, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 152, + "panels": [], + "repeat": null, + "title": "Basic General Info", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 83, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:469", + "alias": "/.*Back.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:470", + "alias": "/.*1.*/", + "color": "#6ED0E0" + }, + { + "$$hashKey": "object:471", + "alias": "/.*2.*/", + "color": "#7EB26D" + }, + { + "$$hashKey": "object:472", + "alias": "/.*3.*/", + "color": "#1F78C1" + }, + { + "$$hashKey": "object:473", + "alias": "/.*4.*/", + "color": "#CCA300" + }, + { + "$$hashKey": "object:474", + "alias": "/.*5.*/", + "color": "#890F02" + }, + { + "$$hashKey": "object:475", + "alias": "/.*other.*/", + "color": "#806EB7" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(haproxy_frontend_http_responses_total{proxy=~\"$frontend\",code=~\"$code\",instance=\"$host\"}[$__rate_interval])) by (code)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front {{ code }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_http_responses_total{proxy=~\"$backend\",code=~\"$code\",instance=\"$host\"}[$__rate_interval])) by (code)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back {{ code }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "All HTTP responses", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:524", + "format": "short", + "label": "- back / + front", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:525", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 11 + }, + "hiddenSeries": false, + "id": 75, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sideWidth": null, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2175", + "alias": "/.*OUT.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(haproxy_frontend_bytes_in_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])*8) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "IN Front", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_frontend_bytes_out_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])*8) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "OUT Front", + "refId": "B", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_bytes_in_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])*8) by (instance)", + "intervalFactor": 1, + "legendFormat": "IN Back", + "refId": "C", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_bytes_out_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])*8) by (instance)", + "intervalFactor": 1, + "legendFormat": "OUT Back", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Incoming / Outgoing bytes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2188", + "format": "bits", + "label": "- out / + in", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2189", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 11 + }, + "hiddenSeries": false, + "id": 79, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:616", + "alias": "/.*Back.*/", + "color": "#F2495C", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(haproxy_frontend_connections_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_connection_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back errors", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Number of connections", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:629", + "format": "short", + "label": "- back / + front", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:630", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 21 + }, + "hiddenSeries": false, + "id": 81, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:931", + "alias": "/.*Back.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:1328", + "alias": "/.*errors.*/", + "color": "#F2495C" + }, + { + "$$hashKey": "object:1414", + "alias": "/.*warn.*/", + "color": "#FF9830" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(haproxy_frontend_http_requests_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front requests", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_frontend_request_errors_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front requests errors", + "metric": "", + "refId": "C", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_frontend_requests_denied_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front request denied", + "refId": "F", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_redispatch_warnings_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back redispatch warnings", + "refId": "D", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_retry_warnings_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back retry warnings", + "refId": "E", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_response_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back response errors", + "metric": "", + "refId": "I", + "step": 240 + }, + { + "expr": "sum(haproxy_backend_current_queue{proxy=~\"$backend\",instance=\"$host\"}) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back queued requests", + "refId": "G", + "step": 240 + }, + { + "expr": "sum(rate(haproxy_backend_http_requests_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back requests", + "metric": "", + "refId": "H", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Requests and Responses", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:950", + "format": "short", + "label": "- back / + front", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:951", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 21 + }, + "hiddenSeries": false, + "id": 84, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:1146", + "alias": "/.*Back.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(haproxy_frontend_current_sessions{proxy=~\"$frontend\",instance=\"$host\"}) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "sum(haproxy_backend_current_sessions{proxy=~\"$frontend\",instance=\"$host\"}) by (instance)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Active sessions", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1159", + "format": "short", + "label": "- back / + front", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1160", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 31 + }, + "id": 151, + "panels": [], + "repeat": null, + "title": "Basic General Status", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 5, + "fillGradient": 0, + "gridPos": { + "h": 4, + "w": 22, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 85, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:138", + "alias": "Back Up", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "count(haproxy_frontend_status{instance=\"$host\"} == 1)", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Front Up", + "refId": "A", + "step": 240 + }, + { + "expr": "count(haproxy_backend_status{instance=\"$host\"} ==1)", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Back Up", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "All Status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:155", + "format": "short", + "label": "- back / + front", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:156", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "datasource": "localhost", + "decimals": 0, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "format": "s", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 22, + "y": 32 + }, + "id": 149, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "$$hashKey": "object:71", + "name": "value to text", + "value": 1 + }, + { + "$$hashKey": "object:72", + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": " ago", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "time() - haproxy_process_start_time_seconds{instance=\"$host\"}", + "intervalFactor": 1, + "refId": "A", + "step": 240 + } + ], + "thresholds": "", + "title": "Started...", + "type": "singlestat", + "valueFontSize": "50%", + "valueMaps": [ + { + "$$hashKey": "object:74", + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 182, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 0, + "y": 3 + }, + "hiddenSeries": false, + "id": 42, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sideWidth": null, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:3222", + "alias": "/.*OUT.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_bytes_in_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "IN {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_bytes_out_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "OUT {{ proxy }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Incoming / Outgoing bytes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3235", + "format": "bits", + "label": "- out / + in", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3236", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 12, + "y": 3 + }, + "hiddenSeries": false, + "id": 1, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:3119", + "alias": "/.*OUT.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_bytes_in_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "IN {{ proxy }}", + "metric": "haproxy_backend_", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_bytes_out_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "OUT {{ proxy }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Incoming / Outgoing bytes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3132", + "format": "bits", + "label": "- out / + in", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3133", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 0, + "y": 18 + }, + "hiddenSeries": false, + "id": 43, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:3369", + "alias": "/.*Denied*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_connections_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Successful {{ proxy }}", + "metric": "haproxy_backe", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_denied_connections_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "metric": "haproxy_backe", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Connections successful / denied", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3389", + "format": "short", + "label": "- denied / + successful", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3390", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 12, + "y": 18 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2890", + "alias": "/.*Error.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_connection_attempts_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Attempts {{ proxy }}", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_connection_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Error {{ proxy }}", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Connections attempts / errors", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2903", + "format": "short", + "label": "- error / + attempt", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2904", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 0, + "y": 33 + }, + "hiddenSeries": false, + "id": 114, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_connections_rate_max{proxy=~\"$frontend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "haproxy_backe", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Maximum observed number of connections per second", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:437", + "format": "short", + "label": "connections", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:438", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 12, + "y": 33 + }, + "hiddenSeries": false, + "id": 131, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_connection_reuses_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Reuses {{ proxy }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Connections reuses", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:356", + "format": "short", + "label": "reuses", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:357", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "Throughtput / Connections", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 37 + }, + "id": 154, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 7 + }, + "hiddenSeries": false, + "id": 28, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_current_queue{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Queued {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Queued requests not assigned to any server", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:781", + "format": "short", + "label": "requests", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:782", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 7 + }, + "hiddenSeries": false, + "id": 32, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_queue{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Max queued requests not assigned to any server", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1157", + "format": "short", + "label": "requests", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1158", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Queues", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 38 + }, + "id": 155, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 5 + }, + "hiddenSeries": false, + "id": 134, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:1396", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_http_requests_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_requests_denied_total{proxy=~\"$frontend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - HTTP requests OK / Denied", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1415", + "format": "short", + "label": "- denied / + ok", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1416", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 5 + }, + "hiddenSeries": false, + "id": 46, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:1641", + "alias": "/.*Error.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:1642", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_http_requests_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_request_errors_total{proxy=~\"$frontend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Error {{ proxy }}", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_requests_denied_total{proxy=~\"$frontend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - HTTP requests OK / Error / Denied", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1661", + "format": "short", + "label": "- error - denied / + ok", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1662", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 19 + }, + "hiddenSeries": false, + "id": 126, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_responses_denied_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - HTTP responses denied", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1906", + "format": "short", + "label": "denied", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1907", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 19 + }, + "hiddenSeries": false, + "id": 115, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2055", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_responses_denied_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - HTTP responses denied", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2074", + "format": "short", + "label": "denied", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2075", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 33 + }, + "hiddenSeries": false, + "id": 35, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2248", + "alias": "/.*Error.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_redispatch_warnings_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Redispatch {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_retry_warnings_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Retry {{ proxy }}", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_response_errors_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Error {{ proxy }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Error / Redispatch / Retry", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2261", + "format": "short", + "label": "- error / + redispatch + retry", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2262", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 33 + }, + "hiddenSeries": false, + "id": 138, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2857", + "alias": "/.*.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_http_requests_rate_max{proxy=~\"$backend\", instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Maximum observed number of HTTP requests per second", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2580", + "format": "short", + "label": "requests", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2581", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Requests / Responses", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 176, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 132, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_connect_time_average_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Avg connection time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 209, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_connect_time_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Max connection time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 20 + }, + "hiddenSeries": false, + "id": 178, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_total_time_average_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Avg. total time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 20 + }, + "hiddenSeries": false, + "id": 210, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_total_time_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Max total time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 34 + }, + "hiddenSeries": false, + "id": 177, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_response_time_average_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Avg. response time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 34 + }, + "hiddenSeries": false, + "id": 211, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_response_time_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "haproxy_backend_current_queue", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Max response time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3021", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3022", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 48 + }, + "hiddenSeries": false, + "id": 127, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_queue_time_average_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Avg. queue time for last 1024 successful connections", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1225", + "decimals": null, + "format": "s", + "label": "", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1226", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 48 + }, + "hiddenSeries": false, + "id": 212, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_queue_time_seconds{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Max queue time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1225", + "decimals": null, + "format": "s", + "label": "", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1226", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "Times", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 40 + }, + "id": 156, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 13 + }, + "hiddenSeries": false, + "id": 47, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_http_responses_total{proxy=~\"$frontend\", code=~\"$code\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ code }} {{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - HTTP responses code", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3319", + "format": "short", + "label": "responses", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3320", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 13 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_http_responses_total{proxy=~\"$backend\", code=~\"$code\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ code }} {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - HTTP responses code", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3237", + "format": "short", + "label": "responses", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3238", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 24, + "x": 0, + "y": 26 + }, + "height": "400px", + "hiddenSeries": false, + "id": 64, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_http_responses_total{proxy=~\"$backend\",server=~\"$server\",code=~\"$code\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ code }} {{ proxy }} {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - HTTP responses code", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:7223", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:7224", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Responses by HTTP code", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 41 + }, + "id": 157, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 45, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:3825", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_sessions_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_denied_sessions_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }}", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_frontend_current_sessions{proxy=~\"$frontend\",instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current active {{ proxy }}", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Number of sessions", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3843", + "format": "short", + "label": "- denied / + total", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3844", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 30, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_sessions_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_backend_current_sessions{proxy=~\"$backend\",instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current active {{ proxy }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Number of sessions", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3456", + "format": "short", + "label": "total", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:3457", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 21 + }, + "hiddenSeries": false, + "id": 34, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 4, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:4402", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_sessions{proxy=~\"$backend\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_backend_limit_sessions{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Limit {{ proxy }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Maximum observed number of active sessions and limit", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:4415", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:4416", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 21 + }, + "hiddenSeries": false, + "id": 51, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 4, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:4155", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_max_sessions{proxy=~\"$frontend\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_frontend_limit_sessions{proxy=~\"$frontend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Limit {{ proxy }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Maximum observed number of active sessions and limit", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:4168", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:4169", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 34 + }, + "hiddenSeries": false, + "id": 33, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_max_session_rate{proxy=~\"$backend\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Maximum observed number of sessions per second", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:715", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:716", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 34 + }, + "hiddenSeries": false, + "id": 69, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 3, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:937", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_max_session_rate{proxy=~\"$frontend\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_frontend_limit_session_rate{proxy=~\"$frontend\",instance=\"$host\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Limit {{ proxy }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Maximum observed number of sessions per second and limit", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:950", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:951", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 47 + }, + "hiddenSeries": false, + "id": 117, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_failed_header_rewriting_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Failed header rewriting warnings", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1200", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1201", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 47 + }, + "hiddenSeries": false, + "id": 119, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_failed_header_rewriting_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Failed header rewriting warnings", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1374", + "format": "short", + "label": "sessions", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1375", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 60 + }, + "hiddenSeries": false, + "id": 124, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:4477", + "alias": "/.*Error.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:4478", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_last_session_seconds{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Last session assigned", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:4497", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:4498", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 60 + }, + "hiddenSeries": false, + "id": 120, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 4, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_http_requests_rate_max{proxy=~\"$frontend\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Maximum observed number of HTTP requests per second", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1940", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1941", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 73 + }, + "hiddenSeries": false, + "id": 128, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:1883", + "alias": "/.*By server.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_client_aborts_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "By client {{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_server_aborts_total{proxy=~\"$frontend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "By server {{ proxy }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Data transfers aborted", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1792", + "format": "s", + "label": "- server / + client", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1793", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 73 + }, + "hiddenSeries": false, + "id": 146, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "/.*server.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_client_aborts_total{proxy=~\"$frontend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "By client {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_server_server_aborts_total{proxy=~\"$frontend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "By server {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Data transfers aborted", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Sessions", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 42 + }, + "id": 158, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 9 + }, + "hiddenSeries": false, + "id": 38, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_check_up_down_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - UP->DOWN transitions", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2029", + "format": "short", + "label": "transitions", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2030", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 9 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_weight{proxy=~\"$backend\", instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Service weight", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2191", + "format": "short", + "label": "weight", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2192", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 23 + }, + "hiddenSeries": false, + "id": 220, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_uweight{proxy=~\"$backend\", instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Service user weight", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2191", + "format": "short", + "label": "weight", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2192", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Health and Weight", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 43 + }, + "id": 159, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 10 + }, + "hiddenSeries": false, + "id": 121, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2754", + "alias": "/.*Hits.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_http_cache_lookups_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Lookups {{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_http_cache_hits_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Hits {{ proxy }} ", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Cache lookups / hits", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2767", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2768", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 10 + }, + "hiddenSeries": false, + "id": 139, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2587", + "alias": "/.*Hits.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_http_cache_lookups_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Lookups {{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_http_cache_hits_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Hits {{ proxy }} ", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Cache lookups / hits", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2600", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2601", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 21 + }, + "hiddenSeries": false, + "id": 122, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:3160", + "alias": "/.*emitted.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:3161", + "alias": "/.*bypassed.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_http_comp_bytes_in_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes fed {{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_http_comp_bytes_out_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes emitted {{ proxy }} ", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_frontend_http_comp_bytes_bypassed_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes bypassed {{ proxy }} ", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Compressor", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3180", + "format": "bytes", + "label": "- emitted / + bypasses + fed", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3181", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 21 + }, + "hiddenSeries": false, + "id": 140, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:2829", + "alias": "/.*emitted.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:2830", + "alias": "/.*bypassed.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_http_comp_bytes_in_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes fed {{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_http_comp_bytes_out_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes emitted {{ proxy }} ", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_backend_http_comp_bytes_bypassed_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Bytes bypassed {{ proxy }} ", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Compressor", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2849", + "format": "bytes", + "label": "- emitted / + bypasses + fed", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:2850", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 123, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_http_comp_responses_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Responses compressed", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3330", + "format": "short", + "label": "responses", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3331", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 32 + }, + "hiddenSeries": false, + "id": 141, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_http_comp_responses_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} ", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Responses compressed", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3248", + "format": "short", + "label": "responses", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:3249", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Cache / Compressor", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 44 + }, + "id": 160, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 11 + }, + "hiddenSeries": false, + "id": 113, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_frontend_status{proxy=~\"$frontend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Status", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:4278", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:4279", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 11 + }, + "hiddenSeries": false, + "id": 112, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_status{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Status", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:4144", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:4145", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 205, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_frontend_internal_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Front - Internal errors", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1409", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1410", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 171, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_backend_internal_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Internal errors", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1409", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1410", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 33 + }, + "hiddenSeries": false, + "id": 173, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_active_servers{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Active servers", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:227", + "format": "short", + "label": "- backup / + active", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:228", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 33 + }, + "hiddenSeries": false, + "id": 208, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_backend_backup_servers{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "", + "legendFormat": "{{ proxy }}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Back - Backup servers", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:227", + "format": "short", + "label": "- backup / + active", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:228", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Status", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 45 + }, + "id": 197, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "hiddenSeries": false, + "id": 129, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:5034", + "alias": "/.*OUT.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_bytes_in_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "IN {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_server_bytes_out_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])*8", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "OUT {{ proxy }} / {{ server }}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Incoming / Outgoing bytes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5047", + "format": "bits", + "label": "- out / + in", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:5048", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 20 + }, + "hiddenSeries": false, + "id": 219, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:16701", + "alias": "/.*Estimated.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_used_connections_current{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "In use {{ proxy }} / {{ server }}{{ proxy }}", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_server_idle_connections_current{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Estimated {{ proxy }} / {{ server }}{{ proxy }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Connections", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:356", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:357", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 29 + }, + "hiddenSeries": false, + "id": 130, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:5195", + "alias": "/.*Error.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_connection_attempts_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Attempts {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_server_connection_errors_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Error {{ proxy }} / {{ server }}", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Connections attempts / error", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5208", + "format": "short", + "label": "- error / + attempts", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:5209", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 179, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_connection_reuses_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Reuses {{ proxy }} / {{ server }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Number of connections reuses", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5208", + "format": "short", + "label": "reuses", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:5209", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 46 + }, + "hiddenSeries": false, + "id": 186, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:16701", + "alias": "/.*limit.*/", + "fill": 0 + }, + { + "$$hashKey": "object:1142", + "alias": "/.*unsafe.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_idle_connections_current{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Available idle connections {{ proxy }} / {{ server }}", + "refId": "C", + "step": 240 + }, + { + "expr": "rate(haproxy_server_idle_connections_limit{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Limit available idle connections {{ proxy }} / {{ server }}{{ proxy }}", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_server_safe_idle_connections_current{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of safe idle connections {{ proxy }} / {{ server }}{{ proxy }}", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_server_unsafe_idle_connections_current{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of unsafe idle connections {{ proxy }} / {{ server }}{{ proxy }}", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Idle connections", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:356", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:357", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Throughtput / Connections", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 46 + }, + "id": 201, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 13 + }, + "hiddenSeries": false, + "id": 187, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_responses_denied_total{proxy=~\"$backend\", instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Denied {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - HTTP responses denied", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1906", + "format": "short", + "label": "denied", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "$$hashKey": "object:1907", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 71, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:8949", + "alias": "/.*Error.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_redispatch_warnings_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Redispatch {{ proxy }} / {{ server }}", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_server_retry_warnings_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Retry {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_server_response_errors_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Error {{ proxy }} / {{ server }}", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Error / Redispatch / Retry", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:8962", + "format": "short", + "label": "- error / + redispatch + retry", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:8963", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 29 + }, + "hiddenSeries": false, + "id": 59, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_current_queue{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Queued requests", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:6645", + "format": "short", + "label": "requests", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:6646", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 36 + }, + "hiddenSeries": false, + "id": 180, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:8708", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_max_queue{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_server_queue_limit{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "", + "legendFormat": "Limit {{ proxy }} / {{ server }}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Max queued requests and limit", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:6645", + "format": "short", + "label": "requests", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:6646", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Requests / Responses / Queues", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 47 + }, + "id": 193, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 135, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_connect_time_average_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Average connection time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:9202", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:9203", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "hiddenSeries": false, + "id": 190, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_max_connect_time_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Max connection time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:9202", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:9203", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "hiddenSeries": false, + "id": 183, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_response_time_average_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Average response time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:9498", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:9499", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 35 + }, + "hiddenSeries": false, + "id": 189, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_max_response_time_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Max response time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:9498", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:9499", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 42 + }, + "hiddenSeries": false, + "id": 184, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_total_time_average_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Average total time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:10006", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:10007", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 50 + }, + "hiddenSeries": false, + "id": 188, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_max_total_time_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "haproxy_backend_current_queue", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Max total time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:10006", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:10007", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 59 + }, + "hiddenSeries": false, + "id": 133, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_queue_time_average_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Average queue time for last 1024 successful connections", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:10428", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:10429", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 68 + }, + "hiddenSeries": false, + "id": 191, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_max_queue_time_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Max queue time", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:10428", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:10429", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Times", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 48 + }, + "id": 214, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 61, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:7407", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_current_sessions{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_server_sessions_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_server_max_sessions{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Max {{ proxy }} / {{ server }}", + "metric": "", + "refId": "C", + "step": 240 + }, + { + "expr": "haproxy_server_limit_sessions{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Limit {{ proxy }} / {{ server }}", + "metric": "", + "refId": "D", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Number of active sessions", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:7420", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:7421", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 23 + }, + "hiddenSeries": false, + "id": 137, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null as zero", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:7532", + "alias": "/.*Error.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:7533", + "alias": "/.*Denied.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_failed_header_rewriting_total{proxy=~\"$frontend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Failed header rewriting warnings", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:7552", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:7553", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 60, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:7616", + "alias": "/.*Limit.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_max_session_rate{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Rate {{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_server_limit_session_rate{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Limit {{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Number of sessions per second and limit", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:7629", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:7630", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Sessions", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 49 + }, + "id": 203, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 16 + }, + "hiddenSeries": false, + "id": 73, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_weight{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Service weight", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:11421", + "format": "none", + "label": "weight", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:11422", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "Server's user weight, or sum of active servers' user weights for a backend", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 24 + }, + "hiddenSeries": false, + "id": 215, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_uweight{proxy=~\"$backend\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Users weight", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:11421", + "format": "none", + "label": "weight", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:11422", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 56, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_check_up_down_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - UP->DOWN transitions", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:11777", + "format": "none", + "label": "transitions", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:11778", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 24, + "x": 0, + "y": 40 + }, + "hiddenSeries": false, + "id": 185, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_check_failures_total{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Checks failures", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:12042", + "format": "none", + "label": "failures", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:12043", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 11, + "w": 24, + "x": 0, + "y": 51 + }, + "hiddenSeries": false, + "id": 204, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_check_duration_seconds{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Checks duration", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:12042", + "format": "s", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:12043", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 62 + }, + "hiddenSeries": false, + "id": 90, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_current_throttle{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server -Throttle percentage", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:11572", + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:11573", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 0, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 72 + }, + "hiddenSeries": false, + "id": 144, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_last_session_seconds{proxy=~\"$backend\", server=~\"$server\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Number of seconds since last session assigned to server/backend", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:12374", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:12375", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Health and Weight", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 50 + }, + "id": 207, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 17 + }, + "hiddenSeries": false, + "id": 145, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:6492", + "alias": "/.*Error.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_server_status{proxy=~\"$backend\",server=~\"$server\",instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }} / {{ server }}", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Status", + "tooltip": { + "msResolution": true, + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:6505", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:6506", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 25 + }, + "hiddenSeries": false, + "id": 172, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_server_internal_errors_total{proxy=~\"$backend\",instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "{{ proxy }}", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Internal errors", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1409", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1410", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "description": "Number of failed DNS resolutions in current worker process since started", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 216, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_failed_resolutions{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Failed", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Server - Failed DNS resolutions", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1409", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:1410", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "By server - Status", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 51 + }, + "id": 166, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 18 + }, + "hiddenSeries": false, + "id": 101, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13045", + "alias": "/.*Configured.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_session_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of sessions per second over last elapsed second", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_limit_session_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum number of sessions per second", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_max_session_rate{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum observed number of sessions per second", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Sessions over last second", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13058", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:13059", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 18 + }, + "hiddenSeries": false, + "id": 96, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_connections{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of active sessions", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_connections_total{instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of created sessions", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_process_requests_total{instance=\"$host\"}[$__rate_interval])", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of requests (TCP or HTTP)", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Total sessions / requests", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13140", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:13141", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 100, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13202", + "alias": "/.*Configured.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_connection_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of connections per second over last elapsed second", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_limit_connection_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum number of connections per second.", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_max_connection_rate{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum observed number of connections per second", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Connections over last second", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13215", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:13216", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 32 + }, + "hiddenSeries": false, + "id": 95, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13277", + "alias": "/.*Initial.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_max_connections{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum number of concurrent connections", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_hard_max_connections{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Initial Maximum number of concurrent connections", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Max connections", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13290", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:13291", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Process Connections / Sessions / Requests", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 52 + }, + "id": 167, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 19 + }, + "hiddenSeries": false, + "id": 106, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13482", + "alias": "/.*Configured.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_zlib_memory{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current memory used for zlib in bytes", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_max_zlib_memory{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum amount of memory for zlib in bytes", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Compression memory", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13495", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:13496", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 19 + }, + "hiddenSeries": false, + "id": 105, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13571", + "alias": "/.*Configured.*/", + "fill": 0, + "stack": false + }, + { + "$$hashKey": "object:13856", + "alias": "/.*before.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_http_comp_bytes_in_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of bytes per second over last elapsed second, before http compression", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_http_comp_bytes_out_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of bytes per second over last elapsed second, after http compression", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_limit_http_comp{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum input compression rate in bytes", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Compression", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13591", + "format": "short", + "label": "- before / + after", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:13592", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Process Compression", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 53 + }, + "id": 168, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 20 + }, + "hiddenSeries": false, + "id": 104, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13920", + "alias": "/.*misses.*/", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_ssl_cache_lookups_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of SSL session cache lookups", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_ssl_cache_misses_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of SSL session cache misses", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - SSL cache", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:13933", + "format": "short", + "label": "- misses / + lookups", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:13934", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 20 + }, + "hiddenSeries": false, + "id": 103, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:13995", + "alias": "/.*backend.*/", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:13996", + "alias": "/.*Maximum.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_frontend_ssl_key_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current frontend SSL Key computation per second over last elapsed second", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_max_frontend_ssl_key_rate{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum observed frontend SSL Key computation per second", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_current_backend_ssl_key_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current backend SSL Key computation per second over last elapsed second", + "metric": "", + "refId": "D", + "step": 240 + }, + { + "expr": "haproxy_process_max_backend_ssl_key_rate{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum observed backend SSL Key computation per second", + "metric": "", + "refId": "E", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - SSL key rate", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14015", + "format": "short", + "label": "- backend / + frontend", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:14016", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 32 + }, + "hiddenSeries": false, + "id": 102, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:14311", + "alias": "/.*Maximum.*/", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_ssl_rate{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of SSL sessions per second over last elapsed second", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_limit_ssl_rate{instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum number of SSL sessions per second", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_max_ssl_rate{instance=\"$host\"}", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum observed number of SSL sessions per second", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - SSL rate", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14324", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14325", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 32 + }, + "hiddenSeries": false, + "id": 98, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:14386", + "alias": "/.*Maximum*./", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_current_ssl_connections{instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of opened SSL connections", + "metric": "", + "refId": "D", + "step": 240 + }, + { + "expr": "haproxy_process_max_ssl_connections{instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum number of concurrent SSL connections", + "metric": "", + "refId": "E", + "step": 240 + }, + { + "expr": "rate(haproxy_process_ssl_connections_total{instance=\"$host\"}[$__rate_interval])", + "hide": true, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of opened SSL connections", + "metric": "", + "refId": "F", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - SSL connections", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14399", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14400", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 44 + }, + "hiddenSeries": false, + "id": 150, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_frontend_ssl_reuse{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "SSL session reuse ratio (percent)", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - SSL reuse ratio", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14474", + "decimals": null, + "format": "percent", + "label": "ratio", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "$$hashKey": "object:14475", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Process SSL", + "type": "row" + }, + { + "collapsed": true, + "datasource": "localhost", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 54 + }, + "id": 169, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 55 + }, + "hiddenSeries": false, + "id": 87, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "/.*limit+./", + "fill": 0 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_max_memory_bytes{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Per-process memory limit (in bytes); 0=unset", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_pool_allocated_bytes{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total amount of memory allocated in pools (in bytes)", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_process_pool_used_bytes{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total amount of memory used in pools (in bytes)", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Memory", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:980", + "format": "bytes", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:981", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 55 + }, + "hiddenSeries": false, + "id": 107, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_current_tasks{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of tasks", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_current_run_queue{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of tasks in the run-queue", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "haproxy_process_stopping{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Non zero means stopping in progress", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Tasks", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14780", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14781", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 68 + }, + "hiddenSeries": false, + "id": 89, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_max_fds{instance=\"$host\"}", + "hide": false, + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum number of open file descriptors; 0=unset", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_max_sockets{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Maximum numer of open sockets", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Maximum open files / sockets", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14848", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14849", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 68 + }, + "hiddenSeries": false, + "id": 99, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:14910", + "alias": "/.*Configured.*/", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_max_pipes{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Configured maximum number of pipes", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_pipes_used_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of pipes in used", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_process_pipes_free_total{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Number of pipes unused", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Pipes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14930", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14931", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 81 + }, + "hiddenSeries": false, + "id": 86, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_nbthread{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Threads", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_nbproc{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Processes", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Configured threads / processes", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:15002", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:15003", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 81 + }, + "hiddenSeries": false, + "id": 88, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_pool_failures_total{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of failed pool allocations", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Pool allocations", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:15070", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:15071", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 94 + }, + "hiddenSeries": false, + "id": 108, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_idle_time_percent{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Idle to total ratio over last sample (percent)", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Idle", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 94 + }, + "hiddenSeries": false, + "id": 109, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_jobs{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of active jobs (listeners, sessions, open devices)", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_unstoppable_jobs{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of active jobs that can't be stopped during a soft stop", + "metric": "", + "refId": "B", + "step": 240 + }, + { + "expr": "rate(haproxy_process_listeners{instance=\"$host\"}[$__rate_interval])", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of active listeners", + "metric": "", + "refId": "C", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Jobs", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:15138", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:15139", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 0, + "y": 107 + }, + "hiddenSeries": false, + "id": 110, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_active_peers{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of active peers", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_connected_peers{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Current number of connected peers", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Peers", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:15206", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:15207", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 107 + }, + "hiddenSeries": false, + "id": 111, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_dropped_logs_total{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of dropped logs", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "haproxy_process_recv_logs_total{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Total number of log messages received by log-forwarding listeners", + "metric": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Logs", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:15274", + "format": "short", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:15275", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "decimals": 1, + "description": "", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 15, + "w": 12, + "x": 0, + "y": 120 + }, + "hiddenSeries": false, + "id": 217, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(haproxy_process_bytes_out_total{instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Emitted by current worker {{ proxy }}", + "metric": "haproxy_backend_", + "refId": "A", + "step": 240 + }, + { + "expr": "rate(haproxy_process_spliced_bytes_out_total{instance=\"$host\"}[$__rate_interval])*8", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "Emitted by current worker through a kernel pipe {{ proxy }}", + "metric": "haproxy_backend_", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Bytes out", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:3132", + "format": "bits", + "label": "counter", + "logBase": 1, + "max": null, + "min": null, + "show": false + }, + { + "$$hashKey": "object:3133", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "localhost", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 13, + "w": 12, + "x": 12, + "y": 120 + }, + "hiddenSeries": false, + "id": 218, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.7", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:14910", + "alias": "/.*Configured.*/", + "fill": 0, + "stack": false + } + ], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "haproxy_process_uptime_seconds{instance=\"$host\"}", + "interval": "$__interval", + "intervalFactor": 1, + "legendFormat": "How long ago this worker process was started", + "metric": "", + "refId": "A", + "step": 240 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Process - Uptime", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:14930", + "format": "s", + "label": "counter", + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "$$hashKey": "object:14931", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "repeat": null, + "title": "Process Misc", + "type": "row" + } + ], + "refresh": "5m", + "schemaVersion": 26, + "style": "dark", + "tags": [ + "haproxy", + "servers" + ], + "templating": { + "list": [ + { + "allValue": null, + "current": {}, + "datasource": "localhost", + "definition": "", + "error": null, + "hide": 0, + "includeAll": false, + "label": "Host", + "multi": false, + "name": "host", + "options": [], + "query": "label_values(haproxy_process_nbproc,instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": null, + "tags": [], + "tagsQuery": null, + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "localhost", + "definition": "", + "error": null, + "hide": 0, + "includeAll": true, + "label": "Backend", + "multi": true, + "name": "backend", + "options": [], + "query": "label_values(haproxy_backend_status{instance=\"$host\"}, proxy)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": null, + "tags": [], + "tagsQuery": null, + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "localhost", + "definition": "", + "error": null, + "hide": 0, + "includeAll": true, + "label": "Frontend", + "multi": true, + "name": "frontend", + "options": [], + "query": "label_values(haproxy_frontend_status{instance=\"$host\"}, proxy)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": null, + "tags": [], + "tagsQuery": null, + "type": "query", + "useTags": true + }, + { + "allValue": null, + "current": {}, + "datasource": "localhost", + "definition": "", + "error": null, + "hide": 0, + "includeAll": true, + "label": "Server", + "multi": true, + "name": "server", + "options": [], + "query": "label_values(haproxy_server_status{instance=\"$host\"}, server)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": null, + "tags": [], + "tagsQuery": null, + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "localhost", + "definition": "", + "error": null, + "hide": 0, + "includeAll": true, + "label": "HTTP Code", + "multi": true, + "name": "code", + "options": [], + "query": "label_values(haproxy_server_http_responses_total{instance=\"$host\"}, code)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": null, + "tags": [], + "tagsQuery": null, + "type": "query", + "useTags": false + }, + { + "auto": true, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "error": null, + "hide": 0, + "label": "Interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "auto", + "value": "$__auto_interval_interval" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "30s,1m,5m,1h,6h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-24h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "HAProxy 2 Full", + "uid": "rEqu1u5ue", + "version": 9 +} diff --git a/float/roles/float-infra-prometheus/templates/grafana/dashboards/syslog.json b/float/roles/float-infra-prometheus/templates/grafana/dashboards/syslog.json index 12a592f..c3a47c6 100644 --- a/float/roles/float-infra-prometheus/templates/grafana/dashboards/syslog.json +++ b/float/roles/float-infra-prometheus/templates/grafana/dashboards/syslog.json @@ -8,19 +8,25 @@ "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, "type": "dashboard" } ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1621410894042, + "iteration": 1652267966124, "links": [], + "liveNow": false, "panels": [ { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -37,12 +43,9 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, "fill": 1, "fillGradient": 0, @@ -70,7 +73,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", @@ -95,9 +98,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "End-to-End latency (across all hosts)", "tooltip": { "shared": true, @@ -106,38 +107,28 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -154,14 +145,11 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, + "description": "", "fill": 1, "fillGradient": 0, "gridPos": { @@ -188,7 +176,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", @@ -205,9 +193,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "Logs sent (rsyslog omfwd actions/s)", "tooltip": { "shared": true, @@ -216,33 +202,24 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { @@ -250,14 +227,11 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, + "description": "", "fill": 1, "fillGradient": 0, "gridPos": { @@ -284,7 +258,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", @@ -301,9 +275,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "Discards", "tooltip": { "shared": true, @@ -312,9 +284,7 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, @@ -322,30 +292,22 @@ { "$$hashKey": "object:39", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "$$hashKey": "object:40", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -355,13 +317,6 @@ "id": 12, "panels": [], "repeat": "queue", - "scopedVars": { - "queue": { - "selected": false, - "text": "action-1-builtin:ompipe queue", - "value": "action-1-builtin:ompipe queue" - } - }, "title": "Queue $queue", "type": "row" }, @@ -370,14 +325,11 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, + "description": "", "fill": 1, "fillGradient": 0, "gridPos": { @@ -404,17 +356,10 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", - "scopedVars": { - "queue": { - "selected": false, - "text": "action-1-builtin:ompipe queue", - "value": "action-1-builtin:ompipe queue" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -428,9 +373,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "Logs/s", "tooltip": { "shared": true, @@ -439,9 +382,7 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, @@ -449,25 +390,18 @@ { "$$hashKey": "object:316", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "$$hashKey": "object:317", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { @@ -475,14 +409,11 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, + "description": "", "fill": 1, "fillGradient": 0, "gridPos": { @@ -509,17 +440,10 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", - "scopedVars": { - "queue": { - "selected": false, - "text": "action-1-builtin:ompipe queue", - "value": "action-1-builtin:ompipe queue" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -533,9 +457,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "Queue size", "tooltip": { "shared": true, @@ -544,9 +466,7 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, @@ -554,25 +474,18 @@ { "$$hashKey": "object:68", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "$$hashKey": "object:69", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { @@ -580,14 +493,11 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, + "description": "", "fill": 1, "fillGradient": 0, "gridPos": { @@ -614,711 +524,10 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": { - "queue": { - "selected": false, - "text": "action-1-builtin:ompipe queue", - "value": "action-1-builtin:ompipe queue" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_full{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[$__rate_interval])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Discards", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:345", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:346", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 25 - }, - "id": 21, - "panels": [], - "repeatIteration": 1621410894042, - "repeatPanelId": 12, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue", - "value": "action-2-builtin:omfwd queue" - } - }, - "title": "Queue $queue", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 26 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue", - "value": "action-2-builtin:omfwd queue" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_enqueued{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[5m])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Logs/s", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:316", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:317", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 26 - }, - "hiddenSeries": false, - "id": 23, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue", - "value": "action-2-builtin:omfwd queue" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rsyslog_queue_size{job=\"$job\",queue=\"$queue\",host=~\"$host\"}", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Queue size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:68", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:69", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 26 - }, - "hiddenSeries": false, - "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue", - "value": "action-2-builtin:omfwd queue" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_full{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[$__rate_interval])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Discards", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:345", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:346", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 34 - }, - "id": 25, - "panels": [], - "repeatIteration": 1621410894042, - "repeatPanelId": 12, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue[DA]", - "value": "action-2-builtin:omfwd queue[DA]" - } - }, - "title": "Queue $queue", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 35 - }, - "hiddenSeries": false, - "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue[DA]", - "value": "action-2-builtin:omfwd queue[DA]" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_enqueued{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[5m])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Logs/s", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:316", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:317", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 35 - }, - "hiddenSeries": false, - "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "pointradius": 2, "points": false, "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue[DA]", - "value": "action-2-builtin:omfwd queue[DA]" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rsyslog_queue_size{job=\"$job\",queue=\"$queue\",host=~\"$host\"}", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Queue size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:68", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:69", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 35 - }, - "hiddenSeries": false, - "id": 28, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "action-2-builtin:omfwd queue[DA]", - "value": "action-2-builtin:omfwd queue[DA]" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -1332,9 +541,7 @@ } ], "thresholds": [], - "timeFrom": null, "timeRegions": [], - "timeShift": null, "title": "Discards", "tooltip": { "shared": true, @@ -1343,9 +550,7 @@ }, "type": "graph", "xaxis": { - "buckets": null, "mode": "time", - "name": null, "show": true, "values": [] }, @@ -1353,382 +558,27 @@ { "$$hashKey": "object:345", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true }, { "$$hashKey": "object:346", "format": "short", - "label": null, "logBase": 1, - "max": null, - "min": null, "show": true } ], "yaxis": { - "align": false, - "alignLevel": null + "align": false } }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 43 - }, - "id": 29, - "panels": [], - "repeatIteration": 1621410894042, - "repeatPanelId": 12, - "scopedVars": { - "queue": { - "selected": false, - "text": "main Q", - "value": "main Q" - } - }, - "title": "Queue $queue", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 44 - }, - "hiddenSeries": false, - "id": 30, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "main Q", - "value": "main Q" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_enqueued{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[5m])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Logs/s", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:316", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:317", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 44 - }, - "hiddenSeries": false, - "id": 31, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "main Q", - "value": "main Q" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rsyslog_queue_size{job=\"$job\",queue=\"$queue\",host=~\"$host\"}", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Queue size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:68", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:69", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "localhost", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 44 - }, - "hiddenSeries": false, - "id": 32, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621410894042, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": { - "queue": { - "selected": false, - "text": "main Q", - "value": "main Q" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(rsyslog_queue_full{job=\"$job\",queue=\"$queue\",host=~\"$host\"}[$__rate_interval])", - "interval": "", - "legendFormat": "{{host}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Discards", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:345", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:346", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 52 + "y": 115 }, "id": 7, "panels": [], @@ -1736,7 +586,10 @@ "type": "row" }, { - "datasource": "localhost", + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" + }, "description": "Rsyslog is having trouble sending messages to some destinations, check its logs to figure out why.", "fieldConfig": { "defaults": { @@ -1744,7 +597,7 @@ "mode": "thresholds" }, "custom": { - "align": null, + "displayMode": "auto", "filterable": false }, "mappings": [], @@ -1768,10 +621,17 @@ "h": 5, "w": 24, "x": 0, - "y": 53 + "y": 116 }, "id": 10, "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, "showHeader": true, "sortBy": [ { @@ -1780,7 +640,7 @@ } ] }, - "pluginVersion": "7.4.0", + "pluginVersion": "8.3.1", "targets": [ { "expr": "sum(rsyslog_action_suspended) without (instance, job, service) > 0", @@ -1791,29 +651,27 @@ "refId": "A" } ], - "timeFrom": null, - "timeShift": null, "title": "Suspended Actions", "transparent": true, "type": "table" } ], - "schemaVersion": 27, + "schemaVersion": 33, "style": "dark", "tags": [], "templating": { "list": [ { - "allValue": null, "current": { "selected": false, "text": "All", "value": "$__all" }, - "datasource": "localhost", + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" + }, "definition": "label_values(up{job=\"rsyslog\"}, host)", - "description": null, - "error": null, "hide": 0, "includeAll": true, "label": "Host", @@ -1829,22 +687,21 @@ "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { - "allValue": null, "current": { "selected": true, - "text": "rsyslog", - "value": "rsyslog" + "text": "log-collector_9105", + "value": "log-collector_9105" + }, + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" }, - "datasource": "localhost", - "definition": "label_values(up{job=~\"rsyslog.*\"}, job)", - "description": null, - "error": null, + "definition": "label_values(rsyslog_queue_size, job)", "hide": 0, "includeAll": false, "label": "Job", @@ -1852,7 +709,7 @@ "name": "job", "options": [], "query": { - "query": "label_values(up{job=~\"rsyslog.*\"}, job)", + "query": "label_values(rsyslog_queue_size, job)", "refId": "StandardVariableQuery" }, "refresh": 1, @@ -1860,25 +717,23 @@ "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { - "allValue": null, "current": { "selected": false, "text": "All", "value": "$__all" }, - "datasource": "localhost", + "datasource": { + "type": "prometheus", + "uid": "P49960DE5880E8C68" + }, "definition": "label_values(rsyslog_queue_size{job=\"$job\",queue!~\"to_exporter.*\"}, queue)", - "description": null, - "error": null, "hide": 2, "includeAll": true, - "label": null, "multi": false, "name": "queue", "options": [], @@ -1891,7 +746,6 @@ "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false @@ -1919,5 +773,6 @@ "timezone": "", "title": "Syslog", "uid": "vpP0KpSMz", - "version": 6 + "version": 7, + "weekStart": "" }
\ No newline at end of file diff --git a/float/roles/float-infra-prometheus/templates/prometheus.yml.j2 b/float/roles/float-infra-prometheus/templates/prometheus.yml.j2 index 5d86029..0a6caa3 100644 --- a/float/roles/float-infra-prometheus/templates/prometheus.yml.j2 +++ b/float/roles/float-infra-prometheus/templates/prometheus.yml.j2 @@ -267,6 +267,11 @@ scrape_configs: probe: {{ p.name }} probeset: custom prober_float_service: {{ p.service }} +{% if p.service is defined %} +{% for k, v in services[p.service].prober_labels | default({}) | dictsort %} + {{ k }}: {{ v }} +{% endfor %} +{% endif %} {% endfor %} {% endfor %} diff --git a/float/roles/float-infra-prometheus/templates/rules/alerts_base.conf.yml b/float/roles/float-infra-prometheus/templates/rules/alerts_base.conf.yml index c163552..7490704 100644 --- a/float/roles/float-infra-prometheus/templates/rules/alerts_base.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/alerts_base.conf.yml @@ -68,8 +68,23 @@ groups: description: 'Job {{ $labels.job }} is down globally (availability {{ $value }}).' runbook: '[[ alert_runbook_fmt | format("JobDown") ]]' + - alert: CronJobFailure + expr: cronjob_ok < 1 and (time() - cronjob_last_success) > 259200 + for: 30m + labels: + severity: warn + scope: host + annotations: + summary: 'Cron job {{$labels.cronjob}} on {{$labels.host}} has been failing consistently' + description: 'The cron job "{{$labels.cronjob}}" on host {{$labels.host}} has been + failing for the last 3 days. Check the logs for errors.' + runbook: '[[ alert_runbook_fmt | format("CronJobFailure") ]]' + +{% set services_with_custom_timeouts = services.values() | selectattr('prober_alert_timeout', 'defined') | map(attribute='name') | reject('eq', 'prometheus') | sort %} +{# Default ProbeFailure alerts (host/global). + The 'ping' probe is excluded because we use it to build the HostUnreachable signal. #} - alert: ProbeFailure - expr: target:probe_success:ratio{probe!="ping",probeset!="service"} < 0.5 + expr: target:probe_success:ratio{probe!="ping"{% if services_with_custom_timeouts %},prober_float_service!~"([[ services_with_custom_timeouts | join('|') ]])"{% endif %}} < 0.5 for: 5m labels: severity: page @@ -84,7 +99,7 @@ groups: runbook: '[[ alert_runbook_fmt | format("ProbeFailure") ]]' - alert: ProbeFailure - expr: probe:probe_success:ratio{probe!="ping",probeset!="service"} < 0.5 + expr: probe:probe_success:ratio{probe!="ping"{% if services_with_custom_timeouts %},prober_float_service!~"([[ services_with_custom_timeouts | join('|') ]])"{% endif %}} < 0.5 for: 5m labels: severity: page @@ -98,14 +113,37 @@ groups: Failed probe logs: https://{{ $labels.prober_float_service }}.[[ domain_public[0] ]]/ runbook: '[[ alert_runbook_fmt | format("ProbeFailure") ]]' - - alert: CronJobFailure - expr: cronjob_ok < 1 and (time() - cronjob_last_success) > 259200 - for: 30m +{# Specific ProbeFailure alerts for each custom prober_service->timeout pair #} +{% for prober_service_name in services_with_custom_timeouts %} +{% set timeout = services[prober_service_name].prober_alert_timeout %} + - alert: ProbeFailure + expr: target:probe_success:ratio{prober_float_service="[[ prober_service_name ]]"} < 0.5 + for: [[ timeout ]] labels: - severity: warn + severity: page scope: host annotations: - summary: 'Cron job {{$labels.cronjob}} on {{$labels.host}} has been failing consistently' - description: 'The cron job "{{$labels.cronjob}}" on host {{$labels.host}} has been - failing for the last 3 days. Check the logs for errors.' - runbook: '[[ alert_runbook_fmt | format("CronJobFailure") ]]' + summary: 'Probe {{ $labels.probe }}@{{ $labels.host }} is failing' + description: >- + Probe {{ $labels.probe }} ({{ $labels.host }}) is failing for target {{ $labels.host }} + (success ratio {{ $value }}). + + Failed probe logs: https://{{ $labels.prober_float_service }}.[[ domain_public[0] ]]/ + runbook: '[[ alert_runbook_fmt | format("ProbeFailure") ]]' + + - alert: ProbeFailure + expr: probe:probe_success:ratio{prober_float_service="[[ prober_service_name ]]"} < 0.5 + for: [[ timeout ]] + labels: + severity: page + scope: global + annotations: + summary: 'Probe {{ $labels.probe }} is failing globally' + description: >- + Probe {{ $labels.probe }} ({{ $labels.zone }}) is failing globally + (success ratio {{ $value }}). + + Failed probe logs: https://{{ $labels.prober_float_service }}.[[ domain_public[0] ]]/ + runbook: '[[ alert_runbook_fmt | format("ProbeFailure") ]]' + +{% endfor %} diff --git a/float/roles/float-infra-prometheus/templates/rules/alerts_cpu.conf.yml b/float/roles/float-infra-prometheus/templates/rules/alerts_cpu.conf.yml index 78a557e..b6f193a 100644 --- a/float/roles/float-infra-prometheus/templates/rules/alerts_cpu.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/alerts_cpu.conf.yml @@ -36,3 +36,31 @@ groups: summary: 'Host {{$labels.host}} is running too hot' description: | The CPU on {{$labels.host}} is being throttled because it is running too hot. + + # PSI alerts - in testing mode for now. + - alert: HostMemoryPressureHigh + expr: rate(node_pressure_memory_waiting_seconds_total[10m]) > 0.2 + for: 10m + labels: + scope: host + severity: warn + annotations: + summary: "High memory pressure on host {{$labels.host}}" + description: | + PSI metrics report high memory pressure on host {{$labels.host}}: + {{$value}} > 0.2. + Processes might be at risk of eventually OOMing. + + # PSI alerts - in testing mode for now. + - alert: HostCPUPressureHigh + expr: rate(node_pressure_cpu_waiting_seconds_total[10m]) > 0.2 + for: 10m + labels: + scope: host + severity: warn + annotations: + summary: "High CPU pressure on host {{$labels.host}}" + description: | + PSI metrics report high CPU pressure on host {{$labels.host}}: + {{$value}} > 0.2. + The host might become unresponsive due to contention on CPU time. diff --git a/float/roles/float-infra-prometheus/templates/rules/alerts_disk.conf.yml b/float/roles/float-infra-prometheus/templates/rules/alerts_disk.conf.yml index e8daea2..f01ec0c 100644 --- a/float/roles/float-infra-prometheus/templates/rules/alerts_disk.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/alerts_disk.conf.yml @@ -13,12 +13,12 @@ groups: runbook: '[[ alert_runbook_fmt | format("DiskWillFillIn") ]]4Hours' - alert: DiskFull - expr: 1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes) > 0.99 + expr: volume:used_space:ratio > 0.95 for: 30m labels: severity: page scope: host annotations: summary: 'Disk {{ $labels.mountpoint }} on {{ $labels.host }} is almost full' - description: 'Disk {{ $labels.mountpoint }} on {{ $labels.host }} has very little space available.' + description: 'Disk {{ $labels.mountpoint }} on {{ $labels.host }} has very little space available ({{ $value | humanizePercentage }}% full).' runbook: '[[ alert_runbook_fmt | format("DiskFull") ]]' diff --git a/float/roles/float-infra-prometheus/templates/rules/alerts_ssl_probes.conf.yml b/float/roles/float-infra-prometheus/templates/rules/alerts_ssl_probes.conf.yml index abdf11f..f21d9d4 100644 --- a/float/roles/float-infra-prometheus/templates/rules/alerts_ssl_probes.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/alerts_ssl_probes.conf.yml @@ -12,3 +12,26 @@ groups: description: 'The "{{ $labels.probe }}" prober reports that {{ $labels.host }} is serving a SSL certificate that will expire in {{ $value }} days.' runbook: '[[ alert_runbook_fmt | format("SSLCertificateAboutToExpire") ]]' + - alert: InternalSSLCertificateAboutToExpire + expr: min:service_credentials_expiration_time:days < 10 + for: 3h + labels: + scope: global + severity: page + annotations: + summary: 'Internal SSL certificates about to expire' + description: | + Some internal SSL certificates are about to expire in {{ $value }} days. + You can check the details by looking for further service-specific + InternalSSLCertificateAboutToExpire alerts. + + In order to renew them, it should be sufficient to just run "float" again. + + - alert: InternalSSLCertificateAboutToExpire + expr: service_credentials_expiration_time:days < 10 + for: 3h + labels: + scope: global + severity: warn + annotations: + summary: 'Internal SSL certificates about to expire for {{ $labels.float_service }}' diff --git a/float/roles/float-infra-prometheus/templates/rules/rules_disk.conf.yml b/float/roles/float-infra-prometheus/templates/rules/rules_disk.conf.yml index 73d168d..c64d5f8 100644 --- a/float/roles/float-infra-prometheus/templates/rules/rules_disk.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/rules_disk.conf.yml @@ -5,3 +5,6 @@ groups: expr: sum(irate(node_disk_writes_completed_total{device=~"([vs]d|nvme).*"}[1m])) WITHOUT (device) - record: instance:node_disk_reads_completed_total:irate1m expr: sum(irate(node_disk_reads_completed_total{device=~"([vs]d|nvme).*"}[1m])) WITHOUT (device) + - record: volume:used_space:ratio + expr: 1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes) + diff --git a/float/roles/float-infra-prometheus/templates/rules/rules_ssl_probes.conf.yml b/float/roles/float-infra-prometheus/templates/rules/rules_ssl_probes.conf.yml index 4d0a9cd..6001573 100644 --- a/float/roles/float-infra-prometheus/templates/rules/rules_ssl_probes.conf.yml +++ b/float/roles/float-infra-prometheus/templates/rules/rules_ssl_probes.conf.yml @@ -4,3 +4,8 @@ groups: - record: target:probe_ssl_cert_expiry:days expr: ((min(probe_ssl_earliest_cert_expiry) by (probe,host)) - time()) / 86400 + - record: service_credentials_expiration_time:days + expr: ((min(service_credentials_expiration_time) by (name,float_service)) - time()) / 86400 + + - record: min:service_credentials_expiration_time:days + expr: (min(service_credentials_expiration_time) - time()) / 86400 diff --git a/float/roles/float-infra-sso-server/templates/server.yml.j2 b/float/roles/float-infra-sso-server/templates/server.yml.j2 index 780611f..d6360c4 100644 --- a/float/roles/float-infra-sso-server/templates/server.yml.j2 +++ b/float/roles/float-infra-sso-server/templates/server.yml.j2 @@ -49,6 +49,9 @@ account_recovery_url: "{{ sso_server_account_recovery_url | default('') }}" default_signed_in_redirect: "{{ sso_server_default_signed_in_redirect | default('') }}" device_manager: auth_key: "{{ sso_device_manager_auth_secret }}" +http_server: + enable_compression: true + request_timeout: 10 trusted_forwarders: - 127.0.0.1 - ::1 diff --git a/float/scripts/floatup.py b/float/scripts/floatup.py index adaa640..465bfff 100755 --- a/float/scripts/floatup.py +++ b/float/scripts/floatup.py @@ -5,12 +5,14 @@ # import argparse +import base64 import json import os import re import shlex import subprocess import yaml +import zlib # The Vagrant "insecure" SSH key that is used to log onto the VMs. @@ -76,6 +78,15 @@ def do_request(url, ssh_gw, payload): raise +def encode_dashboard_request(req): + # JSON data, in a raw zlib stream, base64-encoded. + hosts = sorted(req['hosts'], key=lambda x: x['name']) + data = json.dumps(hosts, separators=(',', ':')).encode('utf-8') + comp = zlib.compressobj(level=9, wbits=-9) + comp.compress(data) + return base64.urlsafe_b64encode(comp.flush()).decode('ascii') + + def install_ssh_key(): # Install the SSH key as Vagrant would do, for compatibility. key_path = os.path.join( @@ -117,6 +128,12 @@ def main(): '--ttl', metavar='DURATION', default='1h', help='TTL for the virtual machines') parser.add_argument( + '--env', metavar='FILE', + help='generate a dotenv file (for Gitlab CI)') + parser.add_argument( + '--dashboard-url', metavar='URL', + help='vmine dashboard base URL (for Gitlab CI)') + parser.add_argument( 'cmd', choices=['up', 'down']) args = parser.parse_args() @@ -132,7 +149,8 @@ def main(): req = parse_inventory(args.inventory, host_attrs) req['ttl'] = args.ttl - print('creating VM group with attrs %s ...' % host_attrs) + print(f'creating VM group with attrs {host_attrs} ...') + print(f'vmine request: {req}') resp = do_request(args.url + '/api/create-group', args.ssh, req) group_id = resp['group_id'] with open(args.state_file, 'w') as fd: @@ -141,6 +159,14 @@ def main(): install_ssh_key() + if args.env: + with open(args.env, 'w') as fd: + fd.write(f'VMINE_ID={group_id}\n') + if args.dashboard_url: + base_url = args.dashboard_url.rstrip('/') + payload = encode_dashboard_request(req) + fd.write(f'VMINE_GROUP_URL={base_url}/dash/{payload}\n') + elif args.cmd == 'down': try: with open(args.state_file) as fd: diff --git a/float/scripts/pwgen.py b/float/scripts/pwgen.py index 07f999e..df46de3 100755 --- a/float/scripts/pwgen.py +++ b/float/scripts/pwgen.py @@ -8,8 +8,10 @@ import argparse import base64 import binascii import os +import shutil import subprocess import sys +import tempfile import yaml @@ -126,6 +128,25 @@ def generate_rsa_key(bits): encoding='ascii') +def generate_self_signed_x509_certificate(cn, bits, days): + """Create a X509 self-signed certificate.""" + tmpdir = tempfile.mkdtemp() + try: + subprocess.check_call( + ['openssl', 'req', '-x509', '-newkey', 'rsa:%d' % bits, + '-keyout', os.path.join(tmpdir, 'key.pem'), '-nodes', + '-out', os.path.join(tmpdir, 'cert.pem'), + '-sha256', '-days', str(days), + '-subj', f'/CN={cn}']) + with open(os.path.join(tmpdir, 'key.pem')) as f: + key = f.read() + with open(os.path.join(tmpdir, 'cert.pem')) as f: + cert = f.read() + return {'key': key, 'cert': cert} + finally: + shutil.rmtree(tmpdir, ignore_errors=True) + + def generate_password(entry): ptype = entry.get('type', 'simple') if ptype == 'simple': @@ -138,6 +159,11 @@ def generate_password(entry): return generate_tsig_key() if ptype == 'rsakey': return generate_rsa_key(bits=int(entry.get('bits', 2048))) + if ptype == 'self-signed-cert': + return generate_self_signed_x509_certificate( + cn=entry.get('cn', 'localhost'), + bits=int(entry.get('bits', 2048)), + days=int(entry.get('days', 3650))) raise Exception('Unknown password type "%s"' % ptype) diff --git a/float/services.yml.no-elasticsearch b/float/services.yml.no-elasticsearch index 229994f..8ce6e82 100644 --- a/float/services.yml.no-elasticsearch +++ b/float/services.yml.no-elasticsearch @@ -10,6 +10,7 @@ frontend: - name: replds-acme systemd_services: - nginx.service + - haproxy.service - sso-proxy.service - replds@acme.service ports: @@ -18,6 +19,9 @@ frontend: - name: cache path: /var/cache/nginx size: 20g + monitoring_endpoints: + - port: 8404 + scheme: http dns: scheduling_group: frontend @@ -73,7 +77,6 @@ prometheus: - /etc/prometheus: /etc/prometheus - /var/lib/prometheus/alertmanager: /var/lib/prometheus/alertmanager args: "--web.external-url=https://alertmanager.{{ domain_public[0] }} --cluster.listen-address=:9094 --cluster.advertise-address={{ float_host_dns_map.get(inventory_hostname + '.prometheus', ['']) | list | first }}:9094{% for h in groups['prometheus']|sort if h != inventory_hostname %} --cluster.peer={{ h }}.prometheus.{{ domain }}:9094{% endfor %}" - egress_policy: internal - name: blackbox image: registry.git.autistici.org/ai3/docker/prometheus-blackbox:master ports: diff --git a/float/test-driver b/float/test-driver index c579d02..12e943b 100755 --- a/float/test-driver +++ b/float/test-driver @@ -55,8 +55,8 @@ save_logs() { # take too much space in the CI job logs. log "Saving logs from VMs (if any)" mkdir -p "${out_dir}" - ANSIBLE_STDOUT_CALLBACK=default \ - ${float_dir}/float run -v --extra-vars "out_dir=${out_dir}" \ + ANSIBLE_STDOUT_CALLBACK=null \ + ${float_dir}/float run -e "callback_whitelist=" -e "out_dir=${out_dir}" \ ${float_dir}/test/save-logs.yml } @@ -72,10 +72,6 @@ run_init() { log Running init-credentials playbook ${float_dir}/float run init-credentials.yml \ || die "failed to run the init-credentials playbook" - - log Running main playbook - ${float_dir}/float run site.yml \ - || die "failed to run the main playbook" } run_cleanup() { @@ -90,14 +86,15 @@ Usage: test-driver [COMMAND] [DIR] Commands: init Initialize the test environment (turn up VMs, set up - credentials, run the main float playbook) + credentials, ensure VMs are reachable) wait-ready Wait until the VMs are ready (part of "init") cleanup Cleanup the test environment (turn down VMs, etc) - run Run the test suite, using the playbooks specified by - the remaining command-line arguments + run Run the main float playbook, and the test suite, using + the playbooks specified by the remaining command-line + arguments If DIR is specified, chdir there before running anything. @@ -138,6 +135,10 @@ case "$cmd" in ;; run) + log Running main playbook + ${float_dir}/float run site.yml \ + || die "failed to run the main playbook" + for playbook in "${float_dir}/test/integration-test.yml" "$@"; do log Running test playbook ${playbook} ${float_dir}/float run ${playbook} \ |