More Ocata Collectd changes and more metrics

+ General cleanup within plugin blocks (Process, Tail)
+ Panko on Overcloud
+ Gnocchi Status for Undercloud
+ Enhancements to Tailing logs on the Undercloud
  + Aodh,Ceilometer,Gnocchi,Panko,Zaqar Logs
  + API Services in httpd
  + Reordered Tail section into alphabetical order
+ Enhancements to Tailing logs on the Overcloud
  + Panko Logs
  + API Services in httpd
  + Reordered Tail section into alphabetical order
+ Tail Gnocchi, Keystone, Nova Placement APIs for Request Time
+ Dashboard for Apache Request Latencies
+ Updated for Ocata Hiera Data (To obtain mysql and rabbitmq details)

Change-Id: I6a9f6b9c2eb33d69ce833d07eb5bd7e0cc14519f
This commit is contained in:
akrzos 2017-03-22 15:28:28 -04:00 committed by Justin Kilpatrick
parent a2cb8300f2
commit e7c51c15c1
12 changed files with 2581 additions and 580 deletions

View File

@ -14,6 +14,7 @@
cloud_dashboards: true
overwrite_existing: true
static_dashboards:
- apache_request_latency
- cloud_ceph_monitoring
- cloud_gnocchi_status
- cloud_instance_count

View File

@ -80,7 +80,7 @@ collectd_objectstorage: true
collectd_cephstorage: true
collectd_compute: false
# Collect plugins configuration:
# Opt-In Collectd plugins configuration:
########################
# Apache plugin
########################
@ -91,6 +91,14 @@ apache_undercloud_mod_status_port: 5001
apache_controller_collectd_plugin: false
apache_controller_mod_status_port: 5001
########################
# Apache request time
########################
# Setups up Apache to log request time and collectd to grab request time from
# httpd log files. This provides request times from Apache for Keystone,
# Gnocchi, and Nova Placement APIs hosted under httpd.
apache_controller_collectd_request_time: false
########################
# Ceph plugin
########################
@ -99,18 +107,17 @@ ceph_controller_collectd_plugin: false
ceph_storage_collectd_plugin: false
########################
# Gnocchi backlog plugin
# Gnocchi Status plugin
########################
# This should only be enabled on a single controller when monitoring Gnocchi for
# performance/scale. This plugin does create a token each interval and adds load
# to Gnocchi-api each time it polls for measurements and thus your cloud will pay
# a monitoring "tax" by enabling this plugin.
gnocchi_status_python_plugin: false
gnocchi_status_interval: 30
gnocchi_status_undercloud_collectd_plugin: false
gnocchi_status_undercloud_collectd_interval: 10
gnocchi_status_controller_collectd_plugin: false
gnocchi_status_controller_collectd_interval: 10
########################
# Keystone token count via dbi plugin
# Keystone token count
########################
# If you have UUID tokens, we can count those via the collectd dbi plugin
keystone_undercloud_collectd_plugin: false
keystone_overcloud_collectd_plugin: false
@ -126,11 +133,23 @@ rabbitmq_controller_collectd_interval: 10
undercloud_monitored_queues:
- "metering.sample"
- "event.sample"
- "notifications.sample"
- "notifications.audit"
- "notifications.info"
- "notifications.warn"
- "notifications.error"
- "notifications.critical"
# Queues to monitor message count on Controllers
controller_monitored_queues:
- "metering.sample"
- "event.sample"
- "notifications.sample"
- "notifications.audit"
- "notifications.info"
- "notifications.warn"
- "notifications.error"
- "notifications.critical"
########################
# tail plugin
@ -139,6 +158,7 @@ controller_monitored_queues:
regex_warn: false
regex_info: false
########################################
# Docker related
# (use these if deploying graphite/carbon/grafana as containers)

View File

@ -13,7 +13,7 @@ collectd_objectstorage: true
collectd_cephstorage: true
collectd_compute: false
# Collect plugins configuration:
# Opt-In Collectd plugins configuration:
########################
# Apache plugin
########################
@ -24,6 +24,14 @@ apache_undercloud_mod_status_port: 5001
apache_controller_collectd_plugin: false
apache_controller_mod_status_port: 5001
########################
# Apache request time
########################
# Setups up Apache to log request time and collectd to grab request time from
# httpd log files. This provides request times from Apache for Keystone,
# Gnocchi, and Nova Placement APIs hosted under httpd.
apache_controller_collectd_request_time: false
########################
# Ceph plugin
########################
@ -32,18 +40,17 @@ ceph_controller_collectd_plugin: false
ceph_storage_collectd_plugin: false
########################
# Gnocchi backlog plugin
# Gnocchi Status plugin
########################
# This should only be enabled on a single controller when monitoring Gnocchi for
# performance/scale. This plugin does create a token each interval and adds load
# to Gnocchi-api each time it polls for measurements and thus your cloud will pay
# a monitoring "tax" by enabling this plugin.
gnocchi_status_python_plugin: false
gnocchi_status_interval: 30
gnocchi_status_undercloud_collectd_plugin: false
gnocchi_status_undercloud_collectd_interval: 10
gnocchi_status_controller_collectd_plugin: false
gnocchi_status_controller_collectd_interval: 10
########################
# Keystone token count via dbi plugin
# Keystone token count
########################
# If you have UUID tokens, we can count those via the collectd dbi plugin
keystone_undercloud_collectd_plugin: false
keystone_overcloud_collectd_plugin: false
@ -59,11 +66,23 @@ rabbitmq_controller_collectd_interval: 10
undercloud_monitored_queues:
- "metering.sample"
- "event.sample"
- "notifications.sample"
- "notifications.audit"
- "notifications.info"
- "notifications.warn"
- "notifications.error"
- "notifications.critical"
# Queues to monitor message count on Controllers
controller_monitored_queues:
- "metering.sample"
- "event.sample"
- "notifications.sample"
- "notifications.audit"
- "notifications.info"
- "notifications.warn"
- "notifications.error"
- "notifications.critical"
########################
# tail plugin

View File

@ -0,0 +1,49 @@
#Browbeat httpd.conf with %D in LogFormat
# Security
ServerTokens Prod
ServerSignature Off
TraceEnable On
ServerName "overcloud-controller-0.localdomain"
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
LimitRequestFieldSize 8190
User apache
Group apache
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
HostnameLookups Off
ErrorLog "/var/log/httpd/error_log"
LogLevel warn
EnableSendfile On
#Listen 80
Include "/etc/httpd/conf.modules.d/*.load"
Include "/etc/httpd/conf.modules.d/*.conf"
Include "/etc/httpd/conf/ports.conf"
LogFormat "%h %l %u %t RT:%D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" " combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" forwarded
IncludeOptional "/etc/httpd/conf.d/*.conf"

View File

@ -40,27 +40,79 @@
- collectd-dbi
# Get mysql's root password
- name: (Controllers Only) Get mysql root password
command: hiera mysql::server::root_password
# Works with: Newton, Ocata
- name: (Controller) Get mysql root password
command: hiera -c /etc/puppet/hiera.yaml mysql::server::root_password
become: true
register: mysql_root_password
when: "'controller' in group_names"
- name: Get overcloudrc
- name: (Undercloud) Get password
become: true
shell: "hiera admin_password | awk '{$0=\"Environment=OS_PASSWORD=\"$0;print }'"
register: undercloud_password
when: "('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true)"
- name: (Undercloud) Get stackrc
remote_user: "{{local_remote_user}}"
shell: "cat /home/stack/overcloudrc | grep 'OS' | awk '{gsub(/export /,\"Environment=\");print }'"
shell: "cat /home/stack/stackrc | egrep '^OS_[AUT]|^OS_PRO' | awk '{$0=\"Environment=\"$0;print }'"
register: stackrc_file
when: "('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true)"
- name: (Undercloud) Add environment variables to collectd.service systemd file
become: true
lineinfile:
dest: /usr/lib/systemd/system/collectd.service
insertafter: '\[Service\]'
line: "{{item}}"
with_items: "{{stackrc_file.stdout_lines | default(omit)}}"
when: "('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true)"
- name: (Undercloud) Add environment variables to collectd.service systemd file
become: true
lineinfile:
dest: /usr/lib/systemd/system/collectd.service
insertafter: '\[Service\]'
line: "{{item}}"
with_items: "{{undercloud_password.stdout_lines | default(omit)}}"
when: "('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true)"
- name: (Controller, delegated to UC) Get overcloudrc
remote_user: "{{local_remote_user}}"
shell: "cat /home/stack/overcloudrc | grep 'export OS' | awk '{gsub(/export /,\"Environment=\");print }'"
delegate_to: "{{groups['undercloud'][0]}}"
register: overcloudrc_file
when: "(gnocchi_status_python_plugin == true) and (inventory_hostname == groups['controller'][0])"
when: "(gnocchi_status_controller_collectd_plugin == true) and (inventory_hostname == groups['controller'][0])"
- name: Add environment variables to collectd.service systemd file
- name: (Controller) Add environment variables to collectd.service systemd file
become: true
lineinfile:
dest: /usr/lib/systemd/system/collectd.service
insertafter: '\[Service\]'
line: "{{item}}"
with_items: "{{overcloudrc_file.stdout_lines | default(omit)}}"
when: "(gnocchi_status_python_plugin == true) and (inventory_hostname == groups['controller'][0])"
when: "(gnocchi_status_controller_collectd_plugin == true) and (inventory_hostname == groups['controller'][0])"
# Apache Request Response Timing
- name: Deploy Apache httpd.conf
become: true
copy:
src: httpd.conf
dest: /etc/httpd/conf/httpd.conf
owner: root
group: root
mode: 0644
backup: true
when: "('controller' in group_names and {{apache_controller_collectd_request_time}} == true)"
- name: Restart Apache
become: true
service:
name: httpd
state: restarted
enabled: true
when: "('controller' in group_names and {{apache_controller_collectd_request_time}} == true)"
# End Apache Request Response Timing
# Apache Monitoring
- name: Deploy Apache mod_status conf
@ -72,12 +124,12 @@
become: true
when: "(('controller' in group_names and {{apache_controller_collectd_plugin}} == true) or ('undercloud' in group_names and {{apache_undercloud_collectd_plugin}} == true))"
- name: (Undercloud Only) Allow httpd to listen to port ({{apache_undercloud_mod_status_port}})
- name: (Undercloud) Allow httpd to listen to port ({{apache_undercloud_mod_status_port}})
shell: "/usr/sbin/semanage port -m -t http_port_t -p tcp {{apache_undercloud_mod_status_port}}"
become: true
when: "('undercloud' in group_names and {{apache_undercloud_collectd_plugin}} == true)"
- name: (Controller Only) Allow httpd to listen to port ({{apache_controller_mod_status_port}})
- name: (Controller) Allow httpd to listen to port ({{apache_controller_mod_status_port}})
shell: "/usr/sbin/semanage port -m -t http_port_t -p tcp {{apache_controller_mod_status_port}}"
become: true
when: "('controller' in group_names and {{apache_controller_collectd_plugin}} == true)"
@ -94,7 +146,7 @@
- name: Reload systemd units
command: systemctl daemon-reload
become: true
when: "(gnocchi_status_python_plugin == true) and (inventory_hostname == groups['controller'][0])"
when: "((gnocchi_status_controller_collectd_plugin == true and inventory_hostname == groups['controller'][0]) or ('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true))"
- name: Copy collectd_gnocchi_status.py
copy:
@ -104,7 +156,7 @@
group: root
mode: 0755
become: true
when: "(gnocchi_status_python_plugin == true and ('{{inventory_hostname}}' == groups['controller'][0]))"
when: "((gnocchi_status_controller_collectd_plugin == true and inventory_hostname == groups['controller'][0]) or ('undercloud' in group_names and {{gnocchi_status_undercloud_collectd_plugin}} == true))"
# Rabbitmq monitoring
- name: Install pyrabbit
@ -134,14 +186,16 @@
register: undercloud_rabbitmq_password
when: "('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true)"
# Works with: Newton, Ocata
- name: (Controller) Get Rabbitmq username
command: hiera nova::rabbit_userid
command: hiera -c /etc/puppet/hiera.yaml rabbitmq::default_user
register: controller0_rabbitmq_username
become: true
when: "('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0])"
# Works with: Newton, Ocata
- name: (Controller) Get Rabbitmq password
command: hiera nova::rabbit_password
command: hiera -c /etc/puppet/hiera.yaml rabbitmq::default_pass
register: controller0_rabbitmq_password
become: true
when: "('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0])"

View File

@ -102,7 +102,6 @@ PreCacheChain "PreCache"
# A Minus before the version means the process was not found in that version. (Ex -9)
<Plugin processes>
# Ceph (OpenStack Installed)
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon" # -10
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd" # 10,11
# Collectd (Browbeat Installed)

View File

@ -102,6 +102,7 @@ PreCacheChain "PreCache"
# Nova (OpenStack Installed)
ProcessMatch "nova-compute" "python.+nova-compute" # 10,11
ProcessMatch "privsep-helper" "python.+/bin/privsep-helper" # 11
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 10,11
@ -110,8 +111,11 @@ PreCacheChain "PreCache"
ProcessMatch "ovn-controller" "ovn-controller.+openvswitch" # 9,10
ProcessMatch "ovn-controller-vtep" "ovn-controller-vtep.+openvswitch" # 9,10
# QEMU (OpenStack Installed)
# QEMU / libvirt (OpenStack Installed)
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm" # 10,11
ProcessMatch "libvirtd" "/usr/sbin/libvirtd" # 10,11
ProcessMatch "virtlockd" "/usr/sbin/virtlockd" # 10,11
ProcessMatch "virtlogd" "/usr/sbin/virtlogd" # 10,11
</Plugin>
<Plugin swap>
@ -121,8 +125,9 @@ PreCacheChain "PreCache"
# Tail plugin configuration
<Plugin "tail">
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<File "/var/log/ceilometer/compute.log">
Instance "ceilometer-compute"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -147,31 +152,6 @@ PreCacheChain "PreCache"
{% endif %}
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/neutron/l3-agent.log">
Instance "neutron-l3-agent"
<Match>
@ -222,9 +202,8 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/ceilometer/compute.log">
Instance "ceilometer-compute"
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -248,6 +227,33 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
</Plugin>
# Include other collectd configuration files

View File

@ -35,7 +35,7 @@ LoadPlugin memory
LoadPlugin mysql
LoadPlugin numa
LoadPlugin processes
{%if rabbitmq_undercloud_collectd_plugin %}
{%if gnocchi_status_undercloud_collectd_plugin or rabbitmq_undercloud_collectd_plugin %}
<LoadPlugin python>
Globals true
</LoadPlugin>
@ -124,6 +124,18 @@ PreCacheChain "PreCache"
IgnoreSelected false
</Plugin>
{%if gnocchi_status_undercloud_collectd_plugin %}
<Plugin python>
ModulePath "/usr/local/bin/"
LogTraces true
Interactive false
Import "collectd_gnocchi_status"
<Module collectd_gnocchi_status>
interval {{gnocchi_status_undercloud_collectd_interval}}
</Module>
</Plugin>
{% endif %}
<Plugin mysql>
<Database "undercloud">
Host "localhost"
@ -153,13 +165,21 @@ PreCacheChain "PreCache"
ProcessMatch "collectd" "/usr/sbin/collectd"
# Docker (OpenStack Installed)
ProcessMatch "docker-registry" "gunicorn.+docker_registry" # -10,11
ProcessMatch "docker-registry" "registry.+serve.+/etc/docker-distribution" # -10,11
ProcessMatch "dockerd-current" "dockerd-current" # 11
ProcessMatch "docker-containerd-current" "docker-containerd-current" # 11
# Everything Else (OpenStack Installed)
# (Processes displayed under "Everything Else" on Grafana Dashboards)
Process "httpd" # 10,11
Process "memcached" # 10,11
Process "mongod" # 10,11
ProcessMatch "mysqld" "/usr/libexec/mysqld" # 10,11
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp" # 10,11
# Glance (OpenStack Installed)
ProcessMatch "glance-api" "python.+glance-api" # 10,11
ProcessMatch "glance-registry" "python.+glance-registry" # 10,11
ProcessMatch "glance-registry" "python.+glance-registry" # 10,-11
# Gnocchi (OpenStack Installed)
ProcessMatch "gnocchi-metricd-master" "gnocchi-metricd:.*master" # 11
@ -170,16 +190,6 @@ PreCacheChain "PreCache"
ProcessMatch "gnocchi-statsd" "python.+gnocchi-statsd" # 11
ProcessMatch "gnocchi_wsgi" "gnocchi_wsgi.*-DFOREGROUND" # 11
# Everything Else (OpenStack Installed)
# (Processes displayed under "Everything Else" on Grafana Dashboards)
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg" # -10,-11
Process "httpd" # 10,11
Process "memcached" # 10,11
Process "mongod" # 10,11
ProcessMatch "mysqld" "/usr/libexec/mysqld" # 10,11
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp" # 10,11
Process "redis-server" # -10,-11
# Heat (OpenStack Installed)
ProcessMatch "heat-api" "python.+heat-api" # 10,11
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn" # 10,11
@ -217,12 +227,11 @@ PreCacheChain "PreCache"
ProcessMatch "nova-compute" "python.+nova-compute" # 10,11
ProcessMatch "nova-conductor" "python.+nova-conductor" # 10,11
ProcessMatch "nova-scheduler" "python.+nova-scheduler" # 10,11
ProcessMatch "nova_api_wsgi" "nova_api_wsgi.*-DFOREGROUND" # 11
ProcessMatch "placement_wsgi" "placement_wsgi.*-DFOREGROUND" # 11
# OVS (OpenStack Installed)
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 10,11
ProcessMatch "ovsdb-client" "/bin/ovsdb-client" # 10,11
ProcessMatch "ovsdb-client" "ovsdb-client" # 10,11
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 10,11
# Panko (OpenStack Installed)
@ -273,60 +282,8 @@ PreCacheChain "PreCache"
# Tail plugin configuration
<Plugin "tail">
<File "/var/log/mariadb/mariadb.log">
Instance "mariadb"
<Match>
Regex "[ERROR]"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex "[Warning]"
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex "[Note]"
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/rabbitmq/rabbit\@{{ansible_hostname}}.log">
Instance "rabbitmq"
<Match>
Regex "ERROR REPORT"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex "WARNING REPORT"
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex "INFO REPORT"
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/keystone/keystone.log">
Instance "keystone"
<File "/var/log/aodh/evaluator.log">
Instance "aodh-evaluator"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -350,17 +307,58 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/keystone_wsgi_admin_error.log">
Instance "keystone-wsgi-admin"
<File "/var/log/aodh/listener.log">
Instance "aodh-listener"
<Match>
Regex ":error"
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/keystone_wsgi_main_error.log">
Instance "keystone-wsgi-main"
<File "/var/log/aodh/notifier.log">
Instance "aodh-notifier"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/aodh_wsgi_error.log">
Instance "aodh-wsgi-api"
<Match>
Regex ":error"
DSType "CounterInc"
@ -369,8 +367,8 @@ PreCacheChain "PreCache"
</Match>
</File>
<File "/var/log/nova/nova-api.log">
Instance "nova-api"
<File "/var/log/ceilometer/agent-notification.log">
Instance "ceilometer-agent-notification"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -394,8 +392,8 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<File "/var/log/ceilometer/central.log">
Instance "ceilometer-central"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -419,8 +417,8 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-conductor.log">
Instance "nova-conductor"
<File "/var/log/ceilometer/collector.log">
Instance "ceilometer-collector"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -444,8 +442,44 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-scheduler.log">
Instance "nova-scheduler"
<File "/var/log/httpd/ceilometer_wsgi_error.log">
Instance "ceilometer-wsgi-api"
<Match>
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
</File>
<File "/var/log/glance/api.log">
Instance "glance-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
# Glance Registry does not exist in Ocata (OSP11)
<File "/var/log/glance/registry.log">
Instance "glance-registry"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -470,8 +504,8 @@ PreCacheChain "PreCache"
{% endif %}
</File>
<File "/var/log/neutron/dhcp-agent.log">
Instance "neutron-dhcp-agent"
<File "/var/log/gnocchi/app.log">
Instance "gnocchi-app"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -495,8 +529,8 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<File "/var/log/gnocchi/metricd.log">
Instance "gnocchi-metricd"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -520,8 +554,93 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/neutron/server.log">
Instance "neutron-server"
<File "/var/log/gnocchi/statsd.log">
Instance "gnocchi-statsd"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/gnocchi_wsgi_error.log">
Instance "gnocchi-wsgi-api"
<Match>
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
</File>
<File "/var/log/heat/heat-api-cfn.log">
Instance "heat-api-cfn"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/heat/heat-api.log">
Instance "heat-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/heat/heat-engine.log">
Instance "heat-engine"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -623,8 +742,8 @@ PreCacheChain "PreCache"
{% endif %}
</File>
<File "/var/log/heat/heat-api-cfn.log">
Instance "heat-api-cfn"
<File "/var/log/keystone/keystone.log">
Instance "keystone"
<Match>
Regex " ERROR "
DSType "CounterInc"
@ -648,68 +767,36 @@ PreCacheChain "PreCache"
</Match>
{% endif %}
</File>
<File "/var/log/heat/heat-api.log">
Instance "heat-api"
<File "/var/log/httpd/keystone_wsgi_admin_error.log">
Instance "keystone-wsgi-admin"
<Match>
Regex " ERROR "
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/heat/heat-engine.log">
Instance "heat-engine"
<File "/var/log/httpd/keystone_wsgi_main_error.log">
Instance "keystone-wsgi-main"
<Match>
Regex " ERROR "
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/glance/api.log">
Instance "glance-api"
<File "/var/log/mariadb/mariadb.log">
Instance "mariadb"
<Match>
Regex " ERROR "
Regex "\\[ERROR\\]"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
Regex "\\[Warning\\]"
DSType "CounterInc"
Type "counter"
Instance "warn"
@ -717,32 +804,7 @@ PreCacheChain "PreCache"
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/glance/registry.log">
Instance "glance-registry"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
Regex "\\[Note\\]"
DSType "CounterInc"
Type "counter"
Instance "info"
@ -826,6 +888,303 @@ PreCacheChain "PreCache"
{% endif %}
</File>
<File "/var/log/neutron/dhcp-agent.log">
Instance "neutron-dhcp-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/neutron/server.log">
Instance "neutron-server"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-api.log">
Instance "nova-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-cert.log">
Instance "nova-cert"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-conductor.log">
Instance "nova-conductor"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-placement-api.log">
Instance "nova-placement-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/nova/nova-scheduler.log">
Instance "nova-scheduler"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/placement_wsgi_error.log">
Instance "nova-placement-wsgi-api"
<Match>
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
</File>
<File "/var/log/panko/app.log">
Instance "panko"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
<File "/var/log/httpd/panko_wsgi_error.log">
Instance "panko-wsgi-api"
<Match>
Regex ":error"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
</File>
<File "/var/log/rabbitmq/rabbit\@{{ansible_hostname}}.log">
Instance "rabbitmq"
<Match>
Regex "ERROR REPORT"
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex "WARNING REPORT"
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex "INFO REPORT"
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
# Swift logs all into the same file
<File "/var/log/swift/swift.log">
Instance "swift"
@ -889,6 +1248,32 @@ PreCacheChain "PreCache"
{% endif %}
</File>
<File "/var/log/zaqar/zaqar.log">
Instance "zaqar"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "error"
</Match>
{%if regex_warn %}
<Match>
Regex " WARNING "
DSType "CounterInc"
Type "counter"
Instance "warn"
</Match>
{% endif %}
{%if regex_info %}
<Match>
Regex " INFO "
DSType "CounterInc"
Type "counter"
Instance "info"
</Match>
{% endif %}
</File>
</Plugin>
# Include other collectd configuration files

View File

@ -0,0 +1,990 @@
{
"dashboard": {
"annotations": {
"list": []
},
"editable": true,
"gnetId": null,
"hideControls": false,
"id": null,
"links": [],
"rows": [
{
"collapse": false,
"height": 200,
"panels": [
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 1,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"sortDesc": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-max, 0.000001), 'Patch Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-99, 0.000001), 'Patch 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-avg, 0.000001), 'Patch Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-min, 0.000001), 'Patch Min Latency')"
},
{
"refId": "E",
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-patch, 10)), 'Patch Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Gnocchi API Patch Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 2,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"sortDesc": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-max, 0.000001), 'Post Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-99, 0.000001), 'Post 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-min, 0.000001), 'Post Min Latency')"
},
{
"refId": "E",
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-post, 10)), 'Post Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Gnocchi API Post Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 3,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-max, 0.000001), 'Get Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-99, 0.000001), 'Get 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-min, 0.000001), 'Get Min Latency')"
},
{
"refId": "E",
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-get, 10)), 'Get Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Gnocchi API Get Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Gnocchi API Latency",
"titleSize": "h6"
},
{
"collapse": false,
"height": 200,
"panels": [
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 4,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-max, 0.000001), 'Get Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-99, 0.000001), 'Get 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-min, 0.000001), 'Get Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-get), 10), 'Get Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Keystone Admin API Get Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 5,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-max, 0.000001), 'Post Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-99, 0.000001), 'Post 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-min, 0.000001), 'Post Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-post), 10), 'Post Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Keystone Admin API Post Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 6,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span":12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-max, 0.000001), 'Get Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-99, 0.000001), 'Get 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-min, 0.000001), 'Get Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-get), 10), 'Get Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Keystone Main API Get Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 7,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-max, 0.000001), 'Post Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-99, 0.000001), 'Post 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-min, 0.000001), 'Post Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-post), 10), 'Post Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Keystone Main API Post Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Keystone API Request Latency",
"titleSize": "h6"
},
{
"collapse": false,
"height": 200,
"panels": [
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 8,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-max, 0.000001), 'Put Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-99, 0.000001), 'Put 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-avg, 0.000001), 'Put Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-min, 0.000001), 'Put Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-put), 10), 'Put Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Nova Placement API Put Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 9,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"sortDesc": true,
"total": false,
"values": true
},
"lines": false,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*Count.*/",
"lines": true,
"linewidth": 2,
"points": false,
"yaxis": 2
}
],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-max, 0.000001), 'Get Max Latency')"
},
{
"refId": "B",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-99, 0.000001), 'Get 99th Latency')"
},
{
"refId": "C",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
},
{
"refId": "D",
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-min, 0.000001), 'Get Min Latency')"
},
{
"refId": "E",
"target": "alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-get), 10), 'Get Count')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Nova Placement API Get Latency",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "s",
"label": "Latency",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Count",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Nova Placement API Request Latency",
"titleSize": "h6"
}
],
"schemaVersion": 14,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"allFormat": "glob",
"allValue": null,
"current": {
"text": "",
"value": ""
},
"datasource": null,
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"multiFormat": "glob",
"name": "Cloud",
"options": [],
"query": "*",
"refresh": 1,
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allFormat": "glob",
"allValue": null,
"current": {
"tags": [],
"text": "overcloud-controller-0",
"value": "overcloud-controller-0"
},
"datasource": null,
"hide": 0,
"includeAll": false,
"label": null,
"multi": false,
"multiFormat": "glob",
"name": "Node",
"options": [],
"query": "$Cloud.*",
"refresh": 1,
"regex": "/.*controller.*/",
"sort": 0,
"tagValuesQuery": "",
"tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"now": true,
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "utc",
"title": "Apache Request Latency",
"version": 1
}
}

View File

@ -1936,7 +1936,7 @@
"text": "overcloud-cephstorage-0",
"value": "overcloud-cephstorage-0"
},
"datasource": "RDU Perf Graphite",
"datasource": null,
"hide": 0,
"includeAll": false,
"label": null,

View File

@ -77,6 +77,13 @@ per_process_panels:
- docker-registry
- dockerd-current
- docker-containerd-current
- name: "Everything Else"
processes:
- httpd
- memcached
- mongod
- mysqld
- rabbitmq
- name: "Glance"
processes:
- glance-api
@ -90,15 +97,6 @@ per_process_panels:
- gnocchi-metricd-janitor
- gnocchi-statsd
- gnocchi_wsgi
- name: "Everything Else"
processes:
- haproxy
- httpd
- memcached
- mongod
- mysqld
- rabbitmq
- redis-server
- name: "Heat"
processes:
- heat-api
@ -136,7 +134,6 @@ per_process_panels:
- nova-compute
- nova-conductor
- nova-scheduler
- nova_api_wsgi
- placement_wsgi
- name: "Open vSwitch"
processes:
@ -253,12 +250,10 @@ per_process_panels:
- name: "Nova"
processes:
- nova-api
- nova-cert
- nova-conductor
- nova-consoleauth
- nova-novncproxy
- nova-scheduler
- nova_api_wsgi
- placement_wsgi
- name: "Open vSwitch"
processes:
@ -268,10 +263,9 @@ per_process_panels:
- ovn-northd
- ovn-controller
- ovn-controller-vtep
- name: "Sahara"
- name: "Panko"
processes:
- sahara-api
- sahara-engine
- panko_wsgi
- name: "Swift"
processes:
- swift-account-auditor
@ -339,7 +333,6 @@ per_process_panels:
OpenStack-CephStorage:
- name: "Ceph"
processes:
- ceph-mon
- ceph-osd
- name: "Open vSwitch"
processes:
@ -365,6 +358,7 @@ per_process_panels:
- name: "Nova"
processes:
- nova-compute
- privsep-helper
- name: "Open vSwitch"
processes:
- ovs-vswitchd
@ -372,9 +366,12 @@ per_process_panels:
- ovsdb-server
- ovn-controller
- ovn-controller-vtep
- name: "QEMU-KVM"
- name: "QEMU-KVM / Libvirt"
processes:
- qemu-kvm
- libvirtd
- virtlockd
- virtlogd
- name: "Collectd"
processes:
- collectd
@ -484,8 +481,8 @@ per_process_panels:
- nova-consoleauth
- nova-novncproxy
- nova-scheduler
- nova_api_wsgi
- placement_wsgi
- privsep-helper
- name: "Open vSwitch"
processes:
- ovs-vswitchd
@ -497,13 +494,12 @@ per_process_panels:
- name: "Panko"
processes:
- panko_wsgi
- name: "QEMU-KVM"
- name: "QEMU-KVM / Libvirt"
processes:
- qemu-kvm
- name: "Sahara"
processes:
- sahara-api
- sahara-engine
- libvirtd
- virtlockd
- virtlogd
- name: "Swift"
processes:
- swift-account-auditor