ruby - Sensu and Graphite. Configure transmission through AMQP -


i want use sensu monitoring system , graphite backend graphics.

i wish configure sensu receiving data rabbitmq via amqp protocol that's why configured carbon in such way:

# vim /etc/carbon/carbon.conf  # enable amqp if want receve metrics using amqp broker enable_amqp = true  # verbose means line logged every metric received # useful testing amqp_verbose = true  amqp_host = 10.0.3.16 amqp_port = 5672 amqp_vhost = /sensu amqp_user = sensu amqp_password = kubuntu710 amqp_exchange = metrics_my amqp_metric_name_in_body = true 

per understanding carbon frequency requests data rabbitmq (via amqp) , save via whisper.

on other side sensu saves metrics in rabbitmq, configured in next way:

root@sensu_server:/etc/sensu/conf.d# vim graphite_handler_amqp.json  {   "handlers": {     "graphite_amqp": {       "type": "transport",       "pipe": {         "type": "topic",         "name": "metrics_my",         "durable": "true"       },       "mutator": "only_check_output"     }   } } 

and of course attached handler in such way:

root@sensu_server:/etc/sensu/conf.d# cat metrics_cpu.json {   "checks": {     "metrics_cpu": {       "type": "metric",       "command": "/opt/sensu/embedded/bin/metrics-cpu-pcnt-usage.rb",       "interval": 10,       "subscribers": ["mongo"],       "handlers": ["graphite_amqp"]     }   } } 

everything fine graphite can't draw metrics. log graphite side:

13/06/2016 18:57:16 :: new amqp connection made 

and rabbitmq on sensu server side:

=info report==== 13-jun-2016::15:57:16 === accepting amqp connection <0.25298.0> (10.0.3.95:43722 -> 10.0.3.16:5672)  =error report==== 13-jun-2016::15:57:16 === channel error on connection <0.25298.0> (10.0.3.95:43722 -> 10.0.3.16:5672, vhost: '/sensu', user: 'sensu'), channel 1: operation exchange.declare caused channel exception precondition_failed: "inequivalent arg 'durable' exchange 'metrics_my' in vhost '/sensu': received 'true' current 'false'" 

why rabbitmq thinks "durable": set "false", when sensu should set true?

can share own expirience such logic?

ps. configuration tcp handler working fine me.

operation exchange.declare caused channel exception precondition_failed: "inequivalent arg 'durable' exchange 'metrics_my' in vhost '/sensu': received 'true' current 'false'" 

the exchange metrics_my exists , has durable property set false. other process trying re-declare same exchange different value durable (true).

it looks when processes start trying configure rabbitmq using configuration have specified - making sure required exchanges , queues exist.

however, rabbitmq not allow changing properties of exchanges , queues after have been created, 1 of processes starting up, trying make sure exchange exists failing because specifying different value durable property is.

my guess carbon , sensu have been configured have different value of durable metrics_my exchange.

based on snippets of configuration provided, don't see option changing durable property carbon, can sensu.

you need make agree on durable should be, delete exchange (if durable different) , restart everything.

ps: durable property specifies exchange should persisted disk , survive restarts of rabbitmq process.


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -