From: ZhongShengping Date: Wed, 21 Aug 2019 06:21:00 +0000 (+0800) Subject: Introduce the new rabbit_heartbeat_in_pthread option X-Git-Tag: 15.2.0^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=803e4ac363b281fa0b5b97c550b5bd839d2b35e7;p=puppet-modules%2Fpuppet-ceilometer.git Introduce the new rabbit_heartbeat_in_pthread option oslo.messaging RabbitMQ driver have now a new option that allow user to run the RabbitMQ heartbeat over a native python thread. These change allow user to use this new option. Change-Id: Iceea98e573fc13be81923a6ed1b35a7db01cc48d Closes-Bug: #1840868 --- diff --git a/manifests/init.pp b/manifests/init.pp index d508aa4..b49187f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -63,6 +63,16 @@ # we check the heartbeat. (integer value) # Defaults to $::os_service_default # +# [*rabbit_heartbeat_in_pthread*] +# (Optional) EXPERIMENTAL: Run the health check heartbeat thread +# through a native python thread. By default if this +# option isn't provided the health check heartbeat will +# inherit the execution model from the parent process. By +# example if the parent process have monkey patched the +# stdlib by using eventlet/greenlet then the heartbeat +# will be run through a green thread. +# Defaults to $::os_service_default +# # [*rabbit_qos_prefetch_count*] # (Optional) Specifies the number of messages to prefetch. # Defaults to $::os_service_default @@ -230,6 +240,7 @@ class ceilometer( $rabbit_ha_queues = $::os_service_default, $rabbit_heartbeat_timeout_threshold = $::os_service_default, $rabbit_heartbeat_rate = $::os_service_default, + $rabbit_heartbeat_in_pthread = $::os_service_default, $rabbit_qos_prefetch_count = $::os_service_default, $amqp_durable_queues = $::os_service_default, $rabbit_use_ssl = $::os_service_default, @@ -308,6 +319,7 @@ class ceilometer( rabbit_ha_queues => $rabbit_ha_queues, heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold, heartbeat_rate => $rabbit_heartbeat_rate, + heartbeat_in_pthread => $rabbit_heartbeat_in_pthread, rabbit_qos_prefetch_count => $rabbit_qos_prefetch_count, amqp_durable_queues => $amqp_durable_queues, rabbit_use_ssl => $rabbit_use_ssl, diff --git a/releasenotes/notes/rabbitmq-heartbeat-over-pthread-aab7e079d7f4a480.yaml b/releasenotes/notes/rabbitmq-heartbeat-over-pthread-aab7e079d7f4a480.yaml new file mode 100644 index 0000000..496d227 --- /dev/null +++ b/releasenotes/notes/rabbitmq-heartbeat-over-pthread-aab7e079d7f4a480.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Allow users to run the RabbitMQ heartbeat over a native python thread in the + oslo.messaging RabbitMQ driver, by using the `rabbit_heartbeat_in_pthread` + option in configuration. diff --git a/spec/classes/ceilometer_init_spec.rb b/spec/classes/ceilometer_init_spec.rb index 952133d..8d532ac 100644 --- a/spec/classes/ceilometer_init_spec.rb +++ b/spec/classes/ceilometer_init_spec.rb @@ -180,6 +180,7 @@ describe 'ceilometer' do it 'configures rabbit' do is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('') is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_rate').with_value('') + is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value('') end it { is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/rabbit_qos_prefetch_count').with_value( params[:rabbit_qos_prefetch_count] ) } @@ -193,6 +194,7 @@ describe 'ceilometer' do it 'configures rabbit' do is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('') is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_rate').with_value('') + is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value('') end it { is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/rabbit_qos_prefetch_count').with_value( params[:rabbit_qos_prefetch_count] ) } @@ -218,11 +220,13 @@ describe 'ceilometer' do context "with heartbeat configuration" do before { params.merge!( :rabbit_heartbeat_timeout_threshold => '60', - :rabbit_heartbeat_rate => '10' + :rabbit_heartbeat_rate => '10', + :rabbit_heartbeat_in_pthread => true, ) } it { is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_timeout_threshold').with_value('60') } it { is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_rate').with_value('10') } + it { is_expected.to contain_ceilometer_config('oslo_messaging_rabbit/heartbeat_in_pthread').with_value(true) } end end