Merge "Adding Rabbitmq collectd monitoring plugin"

This commit is contained in:
Jenkins 2017-03-13 14:54:27 +00:00 committed by Gerrit Code Review
commit e89796ad1c
8 changed files with 1874 additions and 94 deletions

View File

@ -14,9 +14,10 @@
cloud_dashboards: true
overwrite_existing: true
static_dashboards:
- cloud_instance_count
- cloud_system_performance_comparsion
- cloud_gnocchi_status
- cloud_instance_count
- cloud_rabbitmq_monitoring
- cloud_system_performance_comparsion
- three_node_performance_food_groups
- openstack_ironic_metrics
cloud_specific_dashboards:

View File

@ -94,6 +94,14 @@ apache_controller_mod_status_port: 5001
gnocchi_status_python_plugin: false
gnocchi_status_interval: 30
########################
# Rabbitmq plugin
########################
rabbitmq_undercloud_collectd_plugin: false
rabbitmq_undercloud_collectd_interval: 10
rabbitmq_controller_collectd_plugin: false
rabbitmq_controller_collectd_interval: 10
########################
# tail plugin
########################

View File

@ -0,0 +1,99 @@
#!/usr/bin/env python
"""Collectd python plugin to read rabbitmq metrics from rabbitmq management plugin."""
from pyrabbit.api import Client
import collectd
import os
import time
def configure(configobj):
global INTERVAL
global cl
global queues_to_count
config = {c.key: c.values for c in configobj.children}
INTERVAL = config['interval'][0]
host = config['host'][0]
port = int(config['port'][0])
username = config['username'][0]
password = config['password'][0]
queues_to_count = config['message_count']
collectd.info('rabbitmq_monitoring: Interval: {}'.format(INTERVAL))
cl = Client('{}:{}'.format(host, port), username, password)
collectd.info('rabbitmq_monitoring: Connecting to: {}:{} as user:{} password:{}'.format(host, port, username, password))
collectd.info('rabbitmq_monitoring: Counting messages on: {}'.format(queues_to_count))
collectd.register_read(read, INTERVAL)
def read(data=None):
starttime = time.time()
overview = cl.get_overview()
# Object counts
for metric_instance in ['channels', 'connections', 'consumers', 'exchanges', 'queues']:
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = metric_instance
metric.values = [overview['object_totals'][metric_instance]]
metric.dispatch()
# Aggregated Queue message stats
for metric_instance in ['messages', 'messages_ready', 'messages_unacknowledged']:
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = 'queue_total-{}-count'.format(metric_instance)
metric.values = [overview['queue_totals'][metric_instance]]
metric.dispatch()
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = 'queue_total-{}-rate'.format(metric_instance)
metric.values = [overview['queue_totals']['{}_details'.format(metric_instance)]['rate']]
metric.dispatch()
# Aggregated Message Stats
for metric_instance in ['ack', 'confirm', 'deliver', 'deliver_get', 'deliver_no_ack', 'get',
'get_no_ack', 'publish', 'publish_in', 'publish_out', 'redeliver',
'return_unroutable']:
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = 'message_total-{}-count'.format(metric_instance)
metric.values = [overview['message_stats'][metric_instance]]
metric.dispatch()
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = 'message_total-{}-rate'.format(metric_instance)
metric.values = [overview['message_stats']['{}_details'.format(metric_instance)]['rate']]
metric.dispatch()
# Configurable per-queue message counts
for queue_name in queues_to_count:
messages_detail = cl.get_messages('/', queue_name)
if messages_detail is None:
count = 0
else:
count = messages_detail[0]['message_count']
metric = collectd.Values()
metric.plugin = 'rabbitmq_monitoring'
metric.interval = INTERVAL
metric.type = 'gauge'
metric.type_instance = 'msg_count-{}'.format(queue_name)
metric.values = [count]
metric.dispatch()
timediff = time.time() - starttime
if timediff > INTERVAL:
collectd.warning('rabbitmq_monitoring: Took: {} > {}'.format(round(timediff, 2),
INTERVAL))
collectd.register_config(configure)

View File

@ -73,15 +73,6 @@
become: true
when: "(gnocchi_status_python_plugin == true) and (inventory_hostname == groups['controller'][0])"
- name: Configure collectd.conf
template:
src: "{{config_type}}.collectd.conf.j2"
dest: /etc/collectd.conf
owner: root
group: root
mode: 0644
become: true
- name: Copy collectd_gnocchi_status.py
copy:
src: collectd_gnocchi_status.py
@ -90,7 +81,67 @@
group: root
mode: 0755
become: true
when: gnocchi_status_python_plugin
when: "(gnocchi_status_python_plugin == true and ('{{inventory_hostname}}' == groups['controller'][0]))"
# Rabbitmq monitoring
- name: Install pyrabbit
easy_install:
name: pyrabbit
become: true
when: "(('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0]) or ('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true))"
- name: Enable Rabbitmq management plugin
command: rabbitmq-plugins enable rabbitmq_management
become: true
when: "(('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0]) or ('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true))"
- name: (Undercloud) Get ctlplane ip address
shell: ip r | egrep 'br-ctlplane\s*proto kernel' | awk '{print $NF}'
register: undercloud_ctlplane_ip_address
become: true
when: "('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true)"
- name: (Undercloud) Get Rabbitmq username
shell: cat undercloud-passwords.conf | grep undercloud_rabbit_username | awk -F '=' '{print $2}'
register: undercloud_rabbitmq_username
when: "('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true)"
- name: (Undercloud) Get Rabbitmq password
shell: cat undercloud-passwords.conf | grep undercloud_rabbit_password | awk -F '=' '{print $2}'
register: undercloud_rabbitmq_password
when: "('undercloud' in group_names and {{rabbitmq_undercloud_collectd_plugin}} == true)"
- name: (Controller) Get Rabbitmq username
command: hiera nova::rabbit_userid
register: controller0_rabbitmq_username
become: true
when: "('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0])"
- name: (Controller) Get Rabbitmq password
command: hiera nova::rabbit_password
register: controller0_rabbitmq_password
become: true
when: "('controller' in group_names and {{rabbitmq_controller_collectd_plugin}} == true and '{{inventory_hostname}}' == groups['controller'][0])"
- name: Copy collectd_rabbitmq_monitoring.py
copy:
src: collectd_rabbitmq_monitoring.py
dest: /usr/local/bin/collectd_rabbitmq_monitoring.py
owner: root
group: root
mode: 0755
become: true
when: "('undercloud' in group_names or '{{inventory_hostname}}' == groups['controller'][0])"
# End Rabbitmq monitoring
- name: Configure collectd.conf
template:
src: "{{config_type}}.collectd.conf.j2"
dest: /etc/collectd.conf
owner: root
group: root
mode: 0644
become: true
#
# Configure selinux bits

View File

@ -32,6 +32,11 @@ LoadPlugin memory
LoadPlugin mysql
LoadPlugin numa
LoadPlugin processes
{%if gnocchi_status_python_plugin or rabbitmq_controller_collectd_plugin %}
<LoadPlugin python>
Globals true
</LoadPlugin>
{% endif %}
LoadPlugin swap
LoadPlugin tail
LoadPlugin turbostat
@ -97,10 +102,6 @@ PreCacheChain "PreCache"
{%if gnocchi_status_python_plugin %}
{%if inventory_hostname == groups['controller'][0] %}
<LoadPlugin python>
Globals true
</LoadPlugin>
<Plugin python>
ModulePath "/usr/local/bin/"
LogTraces true
@ -110,11 +111,12 @@ PreCacheChain "PreCache"
interval {{gnocchi_status_interval}}
</Module>
</Plugin>
{% else %}
# Gnocchi status plugin installed and enabled on {{groups['controller'][0]}}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
<Plugin mysql>
<Database "overcloud">
Host "localhost"
@ -171,11 +173,11 @@ PreCacheChain "PreCache"
ProcessMatch "glance-registry" "python.+glance-registry" # 10,-11
# Gnocchi (OpenStack Installed)
ProcessMatch "gnocchi-metricd-master" "gnocchi-metricd:.*master" # 11
ProcessMatch "gnocchi-metricd-scheduler" "gnocchi-metricd:.*scheduler" # 11
ProcessMatch "gnocchi-metricd-processing" "gnocchi-metricd:.*processing" # 11
ProcessMatch "gnocchi-metricd-reporting" "gnocchi-metricd:.*reporting" # 11
ProcessMatch "gnocchi-metricd-janitor" "gnocchi-metricd:.*janitor" # 11
ProcessMatch "gnocchi-metricd-master" "gnocchi-metricd.*master" # 11
ProcessMatch "gnocchi-metricd-scheduler" "gnocchi-metricd.*scheduler" # 10,11
ProcessMatch "gnocchi-metricd-processing" "gnocchi-metricd.*processing" # 10,11
ProcessMatch "gnocchi-metricd-reporting" "gnocchi-metricd.*reporting" # 10,11
ProcessMatch "gnocchi-metricd-janitor" "gnocchi-metricd.*janitor" # 10,11
ProcessMatch "gnocchi-metricd" "gnocchi-metricd " # 10(Old proctitle)
ProcessMatch "gnocchi-statsd" "python.+gnocchi-statsd" # 10,11
ProcessMatch "gnocchi_wsgi" "gnocchi_wsgi.*-DFOREGROUND" # 11
@ -249,6 +251,27 @@ PreCacheChain "PreCache"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server" # 10,11
</Plugin>
{%if rabbitmq_controller_collectd_plugin %}
{%if inventory_hostname == groups['controller'][0] %}
<Plugin python>
ModulePath "/usr/local/bin/"
LogTraces true
Interactive false
Import "collectd_rabbitmq_monitoring"
<Module collectd_rabbitmq_monitoring>
interval {{rabbitmq_controller_collectd_interval}}
host "{{inventory_hostname}}.internalapi.localdomain"
port 15672
username {{controller0_rabbitmq_username.stdout}}
password {{controller0_rabbitmq_password.stdout}}
message_count "metering.sample" "event.sample"
</Module>
</Plugin>
{% else %}
# Rabbitmq plugin installed and enabled on {{groups['controller'][0]}}
{% endif %}
{% endif %}
<Plugin swap>
ReportBytes true
ValuesPercentage true

View File

@ -32,6 +32,11 @@ LoadPlugin memory
LoadPlugin mysql
LoadPlugin numa
LoadPlugin processes
{%if rabbitmq_undercloud_collectd_plugin %}
<LoadPlugin python>
Globals true
</LoadPlugin>
{% endif %}
LoadPlugin swap
LoadPlugin tail
LoadPlugin turbostat
@ -218,6 +223,23 @@ PreCacheChain "PreCache"
ProcessMatch "zaqar-server" "python.+zaqar-server" # 10,11
</Plugin>
{%if rabbitmq_undercloud_collectd_plugin %}
<Plugin python>
ModulePath "/usr/local/bin/"
LogTraces true
Interactive false
Import "collectd_rabbitmq_monitoring"
<Module collectd_rabbitmq_monitoring>
interval {{rabbitmq_undercloud_collectd_interval}}
host "{{undercloud_ctlplane_ip_address.stdout}}"
port 15672
username {{undercloud_rabbitmq_username.stdout}}
password {{undercloud_rabbitmq_password.stdout}}
message_count "metering.sample" "event.sample"
</Module>
</Plugin>
{% endif %}
<Plugin swap>
ReportBytes true
ValuesPercentage true

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,9 @@
{% set vars = {'panel_idx': 0, 'temp_count': 0} %}
{% set apache_groups = ['undercloud', 'controller', '*'] %}
{% set gnocchi_groups = ['controller', '*'] %}
{% set httpd_groups = ['undercloud', 'controller', '*'] %}
{% set ironic_groups = ['undercloud'] %}
{% set mariadb_groups = ['undercloud', 'controller', '*'] %}
{% set rabbitmq_groups = ['undercloud', 'controller', '*'] %}
{
"dashboard": {
"annotations": {
@ -2595,7 +2596,7 @@
},
{% endfor %}
{# End Loop over per-process options here #}
{% if item.template_node_type in httpd_groups %}
{% if item.template_node_type in apache_groups %}
{
"title": "Apache",
"height": "250px",
@ -2879,6 +2880,94 @@
"showTitle": true
},
{% endif %}
{% if item.template_node_type in gnocchi_groups %}
{
"title": "Gnocchi Backlog",
"height": "250px",
"editable": true,
"collapse": true,
"panels": [
{
"title": "Metrics/Measures Backlog",
"error": false,
"span": 12,
"editable": true,
"type": "graph",
"isNew": true,
"id": 185,
"targets": [
{
"target": "aliasByMetric(aliasSub($Cloud.$Node.gnocchi_status.*, 'gauge-', ''))",
"refId": "A",
"textEditor": false
}
],
"datasource": null,
"renderer": "flot",
"yaxes": [
{
"label": null,
"show": true,
"logBase": 1,
"min": null,
"max": null,
"format": "short"
},
{
"label": null,
"show": true,
"logBase": 1,
"min": null,
"max": null,
"format": "short"
}
],
"xaxis": {
"show": true
},
"grid": {
"threshold1": null,
"threshold2": null,
"threshold1Color": "rgba(216, 200, 27, 0.27)",
"threshold2Color": "rgba(234, 112, 112, 0.22)"
},
"lines": true,
"fill": 0,
"linewidth": 2,
"points": false,
"pointradius": 5,
"bars": false,
"stack": false,
"percentage": false,
"legend": {
"show": true,
"values": true,
"min": true,
"max": true,
"current": true,
"total": false,
"avg": true,
"alignAsTable": true,
"rightSide": true
},
"nullPointMode": "connected",
"steppedLine": false,
"tooltip": {
"value_type": "cumulative",
"shared": true,
"sort": 0,
"msResolution": false
},
"timeFrom": null,
"timeShift": null,
"aliasColors": {},
"seriesOverrides": [],
"links": []
}
],
"showTitle": true
},
{% endif %}
{% if item.template_node_type in mariadb_groups %}
{
"collapse": true,
@ -4021,92 +4110,459 @@
"title": "MYSQL INNODB"
},
{% endif %}
{% if item.template_node_type in gnocchi_groups %}
{% if item.template_node_type in rabbitmq_groups %}
{
"title": "Gnocchi Backlog",
"height": "250px",
"editable": true,
"collapse": true,
"height": 250,
"panels": [
{
"title": "Metrics/Measures Backlog",
"error": false,
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 246,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 12,
"editable": true,
"type": "graph",
"isNew": true,
"id": 185,
"stack": false,
"steppedLine": false,
"targets": [
{
"target": "aliasByMetric(aliasSub($Cloud.$Node.gnocchi_status.*, 'gauge-', ''))",
"refId": "A",
"target": "alias($Cloud.$Node.rabbitmq_monitoring.gauge-queues, 'Queues')"
},
{
"refId": "B",
"target": "alias($Cloud.$Node.rabbitmq_monitoring.gauge-connections, 'Connections')"
},
{
"refId": "C",
"target": "alias($Cloud.$Node.rabbitmq_monitoring.gauge-consumers, 'Consumers')"
},
{
"refId": "D",
"target": "alias($Cloud.$Node.rabbitmq_monitoring.gauge-channels, 'Channels')"
},
{
"refId": "E",
"target": "alias($Cloud.$Node.rabbitmq_monitoring.gauge-exchanges, 'Exchanges')"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Rabbitmq Object Counts",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 247,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "aliasByNode(aliasSub(aliasSub($Cloud.$Node.rabbitmq_monitoring.gauge-queue_total-*-count, 'gauge-queue_total-', ''), '-count', ''), 3)",
"textEditor": false
}
],
"datasource": null,
"renderer": "flot",
"yaxes": [
{
"label": null,
"show": true,
"logBase": 1,
"min": null,
"max": null,
"format": "short"
},
{
"label": null,
"show": true,
"logBase": 1,
"min": null,
"max": null,
"format": "short"
}
],
"xaxis": {
"show": true
},
"grid": {
"threshold1": null,
"threshold2": null,
"threshold1Color": "rgba(216, 200, 27, 0.27)",
"threshold2Color": "rgba(234, 112, 112, 0.22)"
},
"lines": true,
"fill": 0,
"linewidth": 2,
"points": false,
"pointradius": 5,
"bars": false,
"stack": false,
"percentage": false,
"legend": {
"show": true,
"values": true,
"min": true,
"max": true,
"current": true,
"total": false,
"avg": true,
"alignAsTable": true,
"rightSide": true
},
"nullPointMode": "connected",
"steppedLine": false,
"tooltip": {
"value_type": "cumulative",
"shared": true,
"sort": 0,
"msResolution": false
},
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Queue Totals",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 1,
"id": 248,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"links": []
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "aliasByNode(aliasSub(aliasSub($Cloud.$Node.rabbitmq_monitoring.gauge-queue_total-*-rate, 'gauge-queue_total-', ''), '-rate', ''), 3)",
"textEditor": false
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Queue Total Rates",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 249,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "aliasByNode(aliasSub(aliasSub($Cloud.$Node.rabbitmq_monitoring.gauge-message_total-*-count, 'gauge-message_total-', ''), '-count', ''), 3)",
"textEditor": false
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Message Stats Count",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 250,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "aliasByNode(aliasSub(aliasSub($Cloud.$Node.rabbitmq_monitoring.gauge-message_total-*-rate, 'gauge-message_total-', ''), '-rate', ''), 3)",
"textEditor": false
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Message Stats Rate",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
},
{
"aliasColors": {},
"bars": false,
"datasource": null,
"fill": 0,
"id": 240,
"legend": {
"alignAsTable": true,
"avg": false,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 12,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"target": "aliasByMetric(aliasSub($Cloud.$Node.rabbitmq_monitoring.*-msg_count-*, 'gauge-msg_count-', ''))",
"textEditor": false
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Queue Message Counts",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"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
}
]
}
],
"showTitle": true
"repeat": null,
"repeatIteration": null,
"repeatRowId": null,
"showTitle": true,
"title": "Rabbitmq",
"titleSize": "h6"
},
{% endif %}
{% if item.template_node_type in ironic_groups %}