Add new config values for rabbitmq check

Change-Id: I229c412deee8dd8ae49a1771112c5bcd84d8e407
This commit is contained in:
Ryan Bak 2016-10-27 09:18:55 -06:00
parent 23bc6b21fd
commit c1c9f0dd52
3 changed files with 113 additions and 11 deletions

View File

@ -5,34 +5,59 @@
# === Parameters:
#
# [*rabbitmq_api_url*]
# url of rabbit server
# (Required) url of rabbit server
#
# [*rabbitmq_user*]
# username for rabbit server
# (Optional) username for rabbit server
# Defaults to undef.
#
# [*rabbitmq_pass*]
# password for rabbit server
# (Optional) password for rabbit server
# Defaults to undef.
#
# [*queues*]
# rabbit queues to check
# (Optional) an explicit list of rabbit queues to check
# Defaults to undef.
#
# [*nodes*]
# rabbit nodes to check
# (Optional) an explicit list of rabbit nodes to check
# Defaults to undef.
#
# [*exchanges*]
# rabbit exchanges to check
# (Optional) an explicit list of rabbit exchanges to check
# Defaults to undef.
#
# [*queues_regexes*]
# (Optional) a list of regex for rabbit queues to check
# Defaults to undef.
#
# [*nodes_regexes*]
# (Optional) a list of regex for rabbit nodes to check
# Defaults to undef.
#
# [*exchanges_regexes*]
# (Optional) a list of regex for rabbit exchanges to check
# Defaults to undef.
#
# [*max_detailed_queues*]
# maximum number of detailed queues to check
# (Optional) maximum number of detailed queues to check
# Defaults to undef.
#
# [*max_detailed_exchanges*]
# maximum number of detailed exchanges to check
# (Optional) maximum number of detailed exchanges to check
# Defaults to undef.
#
# [*max_detailed_nodes*]
# maximum number of detailed nodes to check
# (Optional) maximum number of detailed nodes to check
# Defaults to undef.
#
# [*whitelist*]
# (Optional) A dictionary of the node, queue and exchange metrics to collect
# Defaults to undef.
#
# [*dimensions*]
# any additional dimensions for the check
# (Optional) any additional dimensions for the check
# Defaults to undef.
#
define monasca::checks::instances::rabbitmq (
$rabbitmq_api_url,
@ -41,9 +66,13 @@ define monasca::checks::instances::rabbitmq (
$queues = undef,
$nodes = undef,
$exchanges = undef,
$queues_regexes = undef,
$nodes_regexes = undef,
$exchanges_regexes = undef,
$max_detailed_queues = undef,
$max_detailed_exchanges = undef,
$max_detailed_nodes = undef,
$whitelist = undef,
$dimensions = undef,
) {
$conf_dir = $::monasca::agent::conf_dir

View File

@ -0,0 +1,61 @@
require 'spec_helper'
describe 'monasca::checks::rabbitmq' do
describe 'on debian platforms' do
let :facts do
@default_facts.merge({
:osfamily => 'Debian',
})
end
let :rabbitmq_fragment do
"test_instance_rabbitmq_instance"
end
let :pre_condition do
"class { 'monasca::agent':
url => 'http://127.0.0.1',
username => 'user',
password => 'password',
keystone_url => 'http://127.0.0.1:5000',
install_python_deps => false,
}"
end
let(:params) { {
:instances => {
'test_instance' => {
'rabbitmq_api_url' => 'url',
'rabbitmq_user' => 'user',
'rabbitmq_pass' => 'password',
'queues' => ['test_queue'],
'nodes' => ['test_node'],
'exchanges' => ['test_exchange'],
'queues_regexes' => ['test_queue_regex'],
'nodes_regexes' => ['test_node_regex'],
'exchanges_regexes' => ['test_exchange_regex'],
'max_detailed_queues' => 1000,
'max_detailed_exchanges' => 100,
'max_detailed_nodes' => 10,
'whitelist' => {},
}
},
} }
it 'builds the rabbitmq config file properly' do
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*rabbitmq_api_url: url$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*rabbitmq_user: user$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*rabbitmq_pass: password$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*queues: \["test_queue"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*nodes: \["test_node"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*exchanges: \["test_exchange"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*queues_regexes: \["test_queue_regex"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*nodes_regexes: \["test_node_regex"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*exchanges_regexes: \["test_exchange_regex"\]$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*max_detailed_queues: 1000$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*max_detailed_exchanges: 100$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*max_detailed_nodes: 10$/)
is_expected.to contain_concat_fragment(rabbitmq_fragment).with_content(/^\s*whitelist: {}$/)
end
end
end

View File

@ -15,6 +15,15 @@
<%- if @exchanges -%>
exchanges: <%= @exchanges %>
<%- end -%>
<%- if @queues_regexes -%>
queues_regexes: <%= @queues_regexes %>
<%- end -%>
<%- if @nodes_regexes -%>
nodes_regexes: <%= @nodes_regexes %>
<%- end -%>
<%- if @exchanges_regexes -%>
exchanges_regexes: <%= @exchanges_regexes %>
<%- end -%>
<%- if @max_detailed_queues -%>
max_detailed_queues: <%= @max_detailed_queues %>
<%- end -%>
@ -24,6 +33,9 @@
<%- if @max_detailed_nodes -%>
max_detailed_nodes: <%= @max_detailed_nodes %>
<%- end -%>
<%- if @whitelist -%>
whitelist: <%= @whitelist %>
<%- end -%>
<%- if @dimensions -%>
dimensions: <%= @dimensions %>
<%- end -%>
<%- end -%>