# Interval default is 10s
Interval {{collectd_interval}}
# Loaded Plugins:
LoadPlugin "logfile"
File "/var/log/collectd.log"
LogLevel "info"
PrintSeverity true
Timestamp true
LoadPlugin write_prometheus
{% if keystone_overcloud_collectd_plugin or osp_resources_collectd_plugin %}
{% if db_conf %}
LoadPlugin dbi
{% endif %}
{% endif %}
LoadPlugin exec
LoadPlugin match_regex
LoadPlugin mysql
LoadPlugin processes
Globals true
LoadPlugin tail
LoadPlugin unixsock
# Open unix domain socket for collectdctl
SocketFile "/var/run/collectd-unixsock"
SocketGroup "collectd"
SocketPerms "0770"
DeleteSocket true
Port "9104"
{% if db_conf %}
{% if ovn_monitoring %}
Instance "ovn_sbdb_Address_Set"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Address_Set"
Instance "ovn_sbdb_Port_Group"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Port_Group"
Instance "ovn_sbdb_Logical_Flow"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Logical_Flow"
Instance "ovn_sbdb_Multicast_Group"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Multicast_Group"
Instance "ovn_sbdb_Datapath_Binding"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Datapath_Binding"
Instance "ovn_sbdb_Port_Binding"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "Port_Binding"
Instance "ovn_sbdb_MAC_Binding"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "sb" "MAC_Binding"
Instance "ovn_nbdb_Logical_Switch"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Logical_Switch"
Instance "ovn_nbdb_Logical_Switch_Port"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Logical_Switch_Port"
Instance "ovn_nbdb_Address_Set"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Address_Set"
Instance "ovn_nbdb_Port_Group"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Port_Group"
Instance "ovn_nbdb_Load_Balancer"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Load_Balancer"
Instance "ovn_nbdb_ACL"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "ACL"
Instance "ovn_nbdb_Logical_Router"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Logical_Router"
Instance "ovn_nbdb_Logical_Router_Port"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Logical_Router_Port"
Instance "ovn_nbdb_Logical_Router_Static_Route"
Exec stack "/usr/local/bin/ovn_monitoring.sh" "nb" "Logical_Router_Static_Route"
{% endif %}
{%if ovn_raft_monitoring %}
ModulePath "/usr/local/bin/"
Import "collectd_ovn_raft_monitoring"
Interval {{ovn_raft_controller_collectd_interval}}
{% endif %}
{% if osp_resources_collectd_plugin %}
Statement "select host, running_vms from compute_nodes"
Type gauge
InstancesFrom "host"
ValuesFrom "running_vms"
Statement "select count(*) as instances_del from instances where deleted!=0"
Type gauge
InstancePrefix "instances_del"
ValuesFrom "instances_del"
Statement "select count(*) as instances from instances where deleted=0"
Type gauge
InstancePrefix "instances"
ValuesFrom "instances"
Statement "select count(*) as instances from instances where deleted=0 and vm_state = 'active'"
Type gauge
InstancePrefix "instances_active"
ValuesFrom "instances"
Statement "select count(*) as instance_faults from instance_faults"
Type gauge
InstancePrefix "instance_faults"
ValuesFrom "instance_faults"
Driver "mysql"
DriverOption "host" "{{ mysql_cell1_host_ip }}"
DriverOption "port" "{{ mysql_cell1_port }}"
DriverOption "dbname" "nova_cell1"
DriverOption "username" "root"
DriverOption "password" "{{mysql_root_password}}"
Query host_vms_count
Query instances_count
Query instance_active_count
Query instances_del_count
Query instance_faults_count
Statement "select count(*) as network from networks"
Type gauge
InstancePrefix "network"
ValuesFrom "network"
Statement "select count(*) as subnet from subnets"
Type gauge
InstancePrefix "subnet"
ValuesFrom "subnet"
Statement "select count(*) as port_others from ports where device_owner not in ('network:dhcp','compute:nova')"
Type gauge
InstancePrefix "port_others"
ValuesFrom "port_others"
Statement "select count(*) as port_dhcp from ports where device_owner='network:dhcp'"
Type gauge
InstancePrefix "port_dhcp"
ValuesFrom "port_dhcp"
Statement "select count(*) as port_compute from ports where device_owner='compute:nova'"
Type gauge
InstancePrefix "port_compute"
ValuesFrom "port_compute"
Statement "select count(*) as floatingips from floatingips"
Type gauge
InstancePrefix "floatingips"
ValuesFrom "floatingips"
Statement "select count(*) as router from routers"
Type gauge
InstancePrefix "router"
ValuesFrom "router"
Statement "select count(*) as router_iface from routerports where port_type='network:router_interface'"
Type gauge
InstancePrefix "router_iface"
ValuesFrom "router_iface"
Statement "select count(*) as router_gw from routerports where port_type='network:router_gateway'"
Type gauge
InstancePrefix "router_gw"
ValuesFrom "router_gw"
Statement "select count(*) as sg from securitygroups"
Type gauge
InstancePrefix "sg"
ValuesFrom "sg"
Statement "select count(*) as sgr from securitygrouprules"
Type gauge
InstancePrefix "sgr"
ValuesFrom "sgr"
Statement "select count(*) as trunk from trunks"
Type gauge
InstancePrefix "trunk"
ValuesFrom "trunk"
Statement "select count(*) as subports from subports"
Type gauge
InstancePrefix "subports"
ValuesFrom "subports"
Driver "mysql"
DriverOption "host" "{{ mysql_host_ip }}"
DriverOption "port" "{{ mysql_port }}"
DriverOption "dbname" "neutron"
DriverOption "username" "root"
DriverOption "password" "{{mysql_root_password}}"
Query network_count
Query port_others_count
Query subnet_count
Query port_dhcp_count
Query port_compute_count
Query floatingips_count
Query router_count
Query router_iface_count
Query router_gw_count
Query sg_count
Query sgr_count
Query trunk_count
Query subports_count
Statement "select count(*) as load_balancer from load_balancer"
Type gauge
InstancePrefix "load_balancer"
ValuesFrom "load_balancer"
Statement "select count(*) as amphora from amphora"
Type gauge
InstancePrefix "amphora"
ValuesFrom "amphora"
Statement "select count(*) as pool from pool"
Type gauge
InstancePrefix "pool"
ValuesFrom "pool"
Statement "select count(*) as member from member"
Type gauge
InstancePrefix "member"
ValuesFrom "member"
Driver "mysql"
DriverOption "host" "{{ mysql_host_ip }}"
DriverOption "port" "{{ mysql_port }}"
DriverOption "dbname" "octavia"
DriverOption "username" "root"
DriverOption "password" "{{mysql_root_password}}"
Query load_balancer_count
Query amphora_count
Query pool_count
Query member_count
{% endif %}
{% if keystone_overcloud_collectd_plugin %}
Statement "select count(*) as count from token"
Type gauge
InstancePrefix "token"
ValuesFrom "count"
Driver "mysql"
DriverOption "host" "{{ mysql_host_ip }}"
DriverOption "port" "{{ mysql_port }}"
DriverOption "dbname" "keystone"
DriverOption "username" "root"
DriverOption "password" "{{mysql_root_password}}"
Query token_count
{% endif %}
Alias "{{ db_config_node_hostname.stdout }}"
Host "{{ mysql_host_ip }}"
User "root"
Port "{{ mysql_port }}"
Password "{{mysql_root_password}}"
InnodbStats true
{%if rabbitmq_controller_collectd_plugin %}
ModulePath "/usr/local/bin/"
LogTraces true
Interactive false
Import "collectd_rabbitmq_monitoring"
interval {{rabbitmq_controller_collectd_interval}}
host "{{ rabbitmq_svc_ip }}"
port "15671"
username "{{ rabbitmq_username }}"
password "{{ rabbitmq_password }}"
message_count {% for a_queue in rhoso_ctlplane_monitored_queues %}"{{a_queue}}" {% endfor %}
{% endif %}
{% endif %}
# db_conf end
{%if iostat_controller_collectd_plugin %}
ModulePath "/usr/local/bin/"
Import "collectd_iostat_python"
Path "/usr/bin/iostat"
Interval {{iostat_controller_collectd_interval}}
IostatInterval 2
Count 2
Verbose false
NiceNames false
PluginName collectd_iostat_python
{% endif %}
# Including the version of OpenStack that the process was verified as running after
# OpenStack Installation with a comment at the end of each Process/ProcessMatch statement.
# A Minus before the version means the process was not found in that version. (Ex -10)
# Ansible
ProcessMatch "ansible-playbook" "ansible-playbook"
ProcessMatch "ansible-runner" "ansible-runner"
# Aodh (OpenStack Installed)
ProcessMatch "aodh-evaluator" "aodh-evaluator" # 10,11,12,13
ProcessMatch "aodh-listener" "aodh-listener" # 10,11,12,13
ProcessMatch "aodh-notifier" "aodh-notifier" # 10,11,12,13
ProcessMatch "aodh_wsgi" "aodh_wsgi.*-DFOREGROUND" # 11,12,13
# Barbican (OpenStack Installed)
ProcessMatch "barbican_wsgi" "barbican_wsgi.*-DFOREGROUND" # 13
ProcessMatch "barbican-keystone-listener" "python.+barbican-keystone-listener" # 13
ProcessMatch "barbican-worker" "python.+barbican-worker" # 13
# Ceilometer (OpenStack Installed)
ProcessMatch "ceilometer-agent-notification" "ceilometer-agent-notification" # 10,11,12,13
ProcessMatch "ceilometer-collector" "ceilometer-collector" # 10,11,-12,-13
ProcessMatch "ceilometer-polling" "ceilometer-polling" # 10,11,12,13
ProcessMatch "ceilometer_wsgi" "ceilometer_wsgi.*-DFOREGROUND" # 11,-12,-13
# Ceph (OpenStack Installed)
# When CephStorage nodes deployed
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon" # -10,-11,-12,-13
# Cinder (OpenStack Installed)
ProcessMatch "cinder-api" "python.+cinder-api" # 10,-11,-12
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler" # 10,11,12,13
ProcessMatch "cinder-volume" "python.+cinder-volume" # 10,11,12,13
ProcessMatch "cinder_wsgi" "cinder_wsgi.*-DFOREGROUND" # 11,12,13
# Collectd (Browbeat Installed)
ProcessMatch "collectd" "/usr/sbin/collectd"
# Conmon (OpenStack Installed)
ProcessMatch "conmon" "/usr/bin/conmon" # 16
# Docker (OpenStack Installed)
ProcessMatch "dockerd-current" "dockerd-current" # 12,13
# Pacemaker / Corosync (OpenStack Installed)
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd" # 10,11,12,13
ProcessMatch "cib" "/usr/libexec/pacemaker/cib" # 10,11,12,13
Process "corosync" # 10,11,12,13
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd" # 10,11,12,13
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd" # 10,11,12,13
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd" # 10,11,12,13
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd" # 10,11,12,13
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine" # 10,11,12,13
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd" # 10,11,12,13
# Everything Else (OpenStack Installed)
# (Processes displayed under "Everything Else" on Grafana Dashboards)
ProcessMatch "dnsmasq" "^dnsmasq.+" # 10,11,12
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg" # 10,11,12,13
Process "httpd" # 10,11,12,13
Process "keepalived" # 10,11,12
Process "memcached" # 10,11,12,13
Process "mongod" # 10,11,-12,-13
ProcessMatch "mysqld" "/usr/libexec/mysqld" # 10,11,12,13
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp" # 10,11,12,13
Process "redis-server" # 10,11,12,13
ProcessMatch "karaf" "java.+karaf" # ODL Specific
# Glance (OpenStack Installed)
ProcessMatch "glance-api" "python.+glance-api" # 10,11,12,13
ProcessMatch "glance-registry" "python.+glance-registry" # 10,-11,-12,-13
# Gnocchi (OpenStack Installed)
ProcessMatch "gnocchi-metricd-master" "gnocchi-metricd.*master" # 11,12,13
ProcessMatch "gnocchi-metricd-scheduler" "gnocchi-metricd.*scheduler" # 10,11,-12,-13
ProcessMatch "gnocchi-metricd-processing" "gnocchi-metricd.*processing" # 10,11,12,13
ProcessMatch "gnocchi-metricd-reporting" "gnocchi-metricd.*reporting" # 10,11,12,13
ProcessMatch "gnocchi-metricd-janitor" "gnocchi-metricd.*janitor" # 10,11,12,13
ProcessMatch "gnocchi-metricd" "gnocchi-metricd " # 10(Old proctitle)
ProcessMatch "gnocchi-statsd" "python.+gnocchi-statsd" # 10,11,12,13
ProcessMatch "gnocchi_wsgi" "gnocchi_wsgi.*-DFOREGROUND" # 11,12,13
# Heat (OpenStack Installed)
ProcessMatch "heat-api" "python.+heat-api --config-file" # 10,11,-12,-13
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn" # 10,11,-12,-13
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch" # 10,11,-12,-123
ProcessMatch "heat_api_cfn" "heat_api_cfn_ws" # 12,13
ProcessMatch "heat_api_cloudwatch" "heat_api_cloudw" # 12,-13
ProcessMatch "heat_api_wsgi" "heat_api_wsgi" # 12,13
ProcessMatch "heat-engine" "python.+heat-engine" # 10,11,12,13
# Horizon (OpenStack Installed)
ProcessMatch "horizon" "horizon" # 13
# Keystone (OpenStack Installed)
ProcessMatch "keystone-admin" "keystone-admin.*-DFOREGROUND" # 10,11,12,13
ProcessMatch "keystone-main" "keystone-main.*-DFOREGROUND" # 10,11,12,13
ProcessMatch "keystone" "keystone.*-DFOREGROUND" # 16
# Starting Pike, fernet tokens are default thus token_flush not needed
ProcessMatch "keystone-token-flush" "keystone-manage.*token_flush" # 10,11,-12,-13
# Neutron (OpenStack Installed)
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent" # 10,11,12,13
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent" # 10,11,12,13
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent" # 10,11,12,13
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy" # 10,11
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent" # 10,11,12,13
ProcessMatch "neutron-rootwrap-daemon" "python.+neutron-rootwrap-daemon" # 10,11,12,13
ProcessMatch "neutron-server" "python.+neutron-server" # 10,11,12,13
ProcessMatch "neutron-keepalived-state-change" "python.+neutron-keepalived-state-change" #For HA router
# Nova (OpenStack Installed)
ProcessMatch "nova-api" "python.+nova-api$" # 10,11,-12,-13
ProcessMatch "nova-api-metadata" "python.+nova-api-metadata" # 12,13
ProcessMatch "nova_api_wsgi" "nova_api_wsgi" # 12,13
ProcessMatch "nova-conductor" "python.+nova-conductor" # 10,11,12,13
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth" # 10,11,12,13
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy" # 10,11,12,13
ProcessMatch "nova-scheduler" "python.+nova-scheduler" # 10,11,12,13
ProcessMatch "placement_wsgi" "placement_wsgi.*-DFOREGROUND" # 11,12,13
ProcessMatch "nova_metadata_w" "nova_metadata_w.*-DFOREGROUND" # 16
# Octavia (OpenStack Installed)
ProcessMatch "octavia-housekeeping" "python.+octavia-housekeeping" # 13
ProcessMatch "octavia-health-manager" "python.+octavia-health-manager" # 13
ProcessMatch "octavia-api" "python.+octavia-api" # 13
ProcessMatch "octavia-worker" "octavia-worker --config-file" # 13
ProcessMatch "octavia_wsgi" "octavia_wsgi.*-DFOREGROUND" # 16
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 10,11,12,13
ProcessMatch "ovsdb-client" "ovsdb-client" # 10,11,12,13
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 10,11,12,13
ProcessMatch "ovsdb-server-nb" "ovsdb-server.+ovsdb-server-nb" # 16
ProcessMatch "ovsdb-server-sb" "ovsdb-server.+ovsdb-server-sb" # 16
ProcessMatch "ovn-northd" "ovn-northd.+ovnnb_db" # 16
ProcessMatch "ovn-controller" "ovn-controller.+openvswitch" # 9,10
ProcessMatch "ovn-controller-vtep" "ovn-controller-vtep.+openvswitch" # 9,10
# Panko (OpenStack Installed)
ProcessMatch "panko_wsgi" "panko_wsgi.*-DFOREGROUND" # 11,12,13
# Swift (OpenStack Installed)
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor" # 10,11,12,13
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper" # 10,11,12,13
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator" # 10,11,12,13
ProcessMatch "swift-account-server" "python.+swift-account-server" # 10,11,12,13
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor" # 10,11,12,13
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator" # 10,11,12,13
ProcessMatch "swift-container-server" "python.+swift-container-server" # 10,11,12,13
ProcessMatch "swift-container-updater" "python.+swift-container-updater" # 10,11,12,13
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor" # 10,11,12,13
ProcessMatch "swift-object-expirer" "python.+swift-object-expirer" # 11,12,13
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator" # 10,11,12,13
ProcessMatch "swift-object-server" "python.+swift-object-server" # 10,11,12,13
ProcessMatch "swift-object-updater" "python.+swift-object-updater" # 10,11,12,13
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server" # 10,11,12,13
{% if container_logs is not none and container_logs | length > 0 %}
{% for instance, file in container_logs.items() if instance not in ["ovn-northd"] %}
Instance "{{ instance }}"
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
{%if regex_warn %}
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
{% endif %}
{%if regex_info %}
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
{% endif %}
{% endfor %}
{% if 'ovsdb-server-nb' in container_logs %}
Instance "ovnnbdb"
Regex "Unreasonably long ([0-9]*)ms poll interval"
DSType "GaugeLast"
Type "count"
Instance "poll"
{% endif %}
{% if 'ovsdb-server-sb' in container_logs %}
Instance "ovnsbdb"
Regex "Unreasonably long ([0-9]*)ms poll interval"
DSType "GaugeLast"
Type "count"
Instance "poll"
{% endif %}
{% if 'ovn-northd' in container_logs %}
Instance "ovnnorthd"
Regex "Unreasonably long ([0-9]*)ms poll interval"
DSType "GaugeLast"
Type "count"
Instance "poll"
{% endif %}
{% if 'ovn-controller' in container_logs %}
Instance "ovncontroller"
Regex "Unreasonably long ([0-9]*)ms poll interval"
DSType "GaugeLast"
Type "count"
Instance "poll"
{% endif %}
{% if 'neutron-server' in container_logs %}
Instance "neutron_resources"
Regex "POST /v2.0"
DSType "CounterInc"
Type "counter"
Instance "post"
Regex "PUT /v2.0"
DSType "CounterInc"
Type "counter"
Instance "put"
Regex "GET /v2.0"
DSType "CounterInc"
Type "counter"
Instance "get"
Regex "DELETE /v2.0"
DSType "CounterInc"
Type "counter"
Instance "delete"
Instance "neutron_avg_response_time"
Regex "POST /v2.0.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post"
Regex "PUT /v2.0.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put"
Regex "GET /v2.0.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get"
Regex "DELETE /v2.0.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete"
{% if osp_individual_resources_response_time %}
Regex "POST /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post_networks"
Regex "PUT /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put_networks"
Regex "GET /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get_networks"
Regex "DELETE /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete_networks"
Regex "POST /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post_routers"
Regex "PUT /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put_routers"
Regex "GET /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get_routers"
Regex "DELETE /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete_routers"
Regex "POST /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post_subnets"
Regex "PUT /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put_subnets"
Regex "GET /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get_subnets"
Regex "DELETE /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete_subnets"
Regex "POST /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post_ports"
Regex "PUT /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put_ports"
Regex "GET /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get_ports"
Regex "DELETE /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete_ports"
Regex "POST /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post_trunks"
Regex "PUT /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put_trunks"
Regex "GET /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get_trunks"
Regex "DELETE /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete_trunks"
{% endif %}
Instance "neutron_min_response_time"
Regex "POST /v2.0.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post"
Regex "PUT /v2.0.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put"
Regex "GET /v2.0.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get"
Regex "DELETE /v2.0.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete"
{% if osp_individual_resources_response_time %}
Regex "POST /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post_networks"
Regex "PUT /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put_networks"
Regex "GET /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get_networks"
Regex "DELETE /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete_networks"
Regex "POST /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post_routers"
Regex "PUT /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put_routers"
Regex "GET /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get_routers"
Regex "DELETE /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete_routers"
Regex "POST /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post_subnets"
Regex "PUT /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put_subnets"
Regex "GET /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get_subnets"
Regex "DELETE /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete_subnets"
Regex "POST /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post_ports"
Regex "PUT /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put_ports"
Regex "GET /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get_ports"
Regex "DELETE /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete_ports"
Regex "POST /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post_trunks"
Regex "PUT /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put_trunks"
Regex "GET /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get_trunks"
Regex "DELETE /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete_trunks"
{% endif %}
Instance "neutron_max_response_time"
Regex "POST /v2.0.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post"
Regex "PUT /v2.0.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put"
Regex "GET /v2.0.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get"
Regex "DELETE /v2.0.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete"
{% if osp_individual_resources_response_time %}
Regex "POST /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post_networks"
Regex "PUT /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put_networks"
Regex "GET /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get_networks"
Regex "DELETE /v2.0/networks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete_networks"
Regex "POST /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post_routers"
Regex "PUT /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put_routers"
Regex "GET /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get_routers"
Regex "DELETE /v2.0/routers.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete_routers"
Regex "POST /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post_subnets"
Regex "PUT /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put_subnets"
Regex "GET /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get_subnets"
Regex "DELETE /v2.0/subnets.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete_subnets"
Regex "POST /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post_ports"
Regex "PUT /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put_ports"
Regex "GET /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get_ports"
Regex "DELETE /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete_ports"
Regex "POST /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post_trunks"
Regex "PUT /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put_trunks"
Regex "GET /v2.0/trunks.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get_trunks"
Regex "DELETE /v2.0/ports.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete_trunks"
{% endif %}
{% endif %}
{% if 'nova-api' in container_logs %}
Instance "nova_avg_response_time"
Regex "POST /v2.1.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "post"
Regex "PUT /v2.1.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "put"
Regex "GET /v2.1.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "get"
Regex "DELETE /v2.1.*time: ([0-9.]+)"
DSType "GaugeAverage"
Type "response_time"
Instance "delete"
Instance "nova_min_response_time"
Regex "POST /v2.1.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "post"
Regex "PUT /v2.1.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "put"
Regex "GET /v2.1.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "get"
Regex "DELETE /v2.1.*time: ([0-9.]+)"
DSType "GaugeMin"
Type "response_time"
Instance "delete"
Instance "nova_max_response_time"
Regex "POST /v2.1.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "post"
Regex "PUT /v2.1.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "put"
Regex "GET /v2.1.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "get"
Regex "DELETE /v2.1.*time: ([0-9.]+)"
DSType "GaugeMax"
Type "response_time"
Instance "delete"
{% endif %}
{% endif %}