noxdafox / rabbitmq-cloudwatch-exporter

RabbitMQ Plugin for publishing cluster metrics to AWS CloudWatch
Mozilla Public License 2.0
41 stars 9 forks source link

Error: no function clause matching Exporter:handle_info #5

Closed mumumilk closed 5 years ago

mumumilk commented 5 years ago

Hello, good job on the plugin, its really nice.

Although, i'm having some erros on rabbit's log that i would like to know more about them.

Info about mt environment:

My conf file:

loopback_users = none
cloudwatch_exporter.aws.access_key_id = "<MY_AWS_KEY>"
cloudwatch_exporter.aws.secret_access_key = "<MY_SECRET_KEY>"
cloudwatch_exporter.aws.region = "<MY_REGION>"
cloudwatch_exporter.metrics.1 = queue
cloudwatch_exporter.export_period = 1800

Error that is showing on logs:

2019-06-12 11:25:03.968 [error] <0.13189.130> Supervisor 'Elixir.Singleton.Supervisor' had child 'Elixir.Singleton.Manager' started with 'Elixir.Singleton.Manager':start_link('Elixir.RabbitMQCloudWatchExporter.Exporter', [], rabbitmq_cloudwatch_exporter, 'singleton_0bpF3SXqPZTQc80tAf+lu7E5kqQ') at <0.2488.139> exit with reason no function clause matching 'Elixir.RabbitMQCloudWatchExporter.Exporter':handle_info({ssl_closed,{sslsocket,{gen_tcp,#Port<0.969884>,tls_connection,undefined},[<0.11783.137>,<0.11791.137>]}}, [[{period,1800},{collectors,[queue]},{namespace,<<"RabbitMQ">>}],[{secret_access_key,<<"MY_SECRET_KEY">>},...]]) line 52 in context child_terminated

In my understanding, it seems that somehow the plugin is trying to invoke a function called handle_info. Is that correct to say? I've looked in the code and i didn't find this function.

Additional info, i've installed this plugin in my test environment, and it seems to be working without showing this error. The difference between these servers (prod and test) is that the test environment is using rabbit 3.7.12 and erlang 21.1.

This error is NOT preventing the plugin from publishing metrics to cloudwatch, i am just curious about it, maybe it can be a problem in the future.

noxdafox commented 5 years ago

Hello,

this seems due to:

It should not affect the plugin itself so you shall not worry. I'll read through #464 and see if there's some recommended workaround to silence the noise.

agabani commented 5 years ago

I'm experiencing something similar with:

Plugin crashes on all servers in turn, one by one.

Configuration

cluster_formation.peer_discovery_backend = rabbit_peer_discovery_aws
cluster_formation.aws.use_autoscaling_group = true
cluster_formation.node_cleanup.only_log_warning = false

cluster_partition_handling = pause_minority

disk_free_limit.relative = 2.0

vm_memory_high_watermark.relative = 0.4

cloudwatch_exporter.aws.region = "eu-west-1"
cloudwatch_exporter.metrics.1 = overview
cloudwatch_exporter.metrics.2 = vhost
cloudwatch_exporter.metrics.3 = node
cloudwatch_exporter.metrics.4 = exchange
cloudwatch_exporter.metrics.5 = queue
cloudwatch_exporter.metrics.6 = connection
cloudwatch_exporter.metrics.7 = channel

Crash Log

2019-06-18 11:20:09 =ERROR REPORT====

2019-06-18 11:19:07 =SUPERVISOR REPORT====
Supervisor: {local,'Elixir.Singleton.Supervisor'}
Context: child_terminated
Reason: {function_clause,[{'Elixir.RabbitMQCloudWatchExporter.Exporter',handle_info,[{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1362>,tls_connection,undefined},[<0.7855.0>,<0.7854.0>]}},[[{period,60},{collectors,[overview,vhost,node,exchange,queue,connection,channel]},{namespace,<<"RabbitMQ">>}],[{region,<<"eu-west-1">>}]]],[{file,"lib/rabbitmq_cloudwatch_exporter/exporter.ex"},{line,52}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,637}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,711}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}
Offender: [{pid,<0.6745.0>},{id,'Elixir.Singleton.Manager'},{mfargs,{'Elixir.Singleton.Manager',start_link,['Elixir.RabbitMQCloudWatchExporter.Exporter',[],rabbitmq_cloudwatch_exporter,'singleton_0bpF3SXqPZTQc80tAf+lu7E5kqQ']}},{restart_type,transient},{shutdown,5000},{child_type,worker}]

2019-06-18 11:19:07 =CRASH REPORT====
crasher:
initial call: Elixir.RabbitMQCloudWatchExporter.Exporter:init/1
pid: <0.7103.0>
registered_name: []
exception error: {function_clause,[{'Elixir.RabbitMQCloudWatchExporter.Exporter',handle_info,[{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1362>,tls_connection,undefined},[<0.7855.0>,<0.7854.0>]}},[[{period,60},{collectors,[overview,vhost,node,exchange,queue,connection,channel]},{namespace,<<"RabbitMQ">>}],[{region,<<"eu-west-1">>}]]],[{file,"lib/rabbitmq_cloudwatch_exporter/exporter.ex"},{line,52}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,637}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,711}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}
ancestors: ['singleton_0bpF3SXqPZTQc80tAf+lu7E5kqQ','Elixir.Singleton.Supervisor',<0.207.0>]
message_queue_len: 4
messages: [{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1363>,tls_connection,undefined},[<0.7859.0>,<0.7858.0>]}},{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1364>,tls_connection,undefined},[<0.7863.0>,<0.7862.0>]}},{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1365>,tls_connection,undefined},[<0.7867.0>,<0.7866.0>]}},{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1366>,tls_connection,undefined},[<0.7871.0>,<0.7870.0>]}}]
links: [<0.6745.0>]
dictionary: [{{xtype_to_module,direct},rabbit_exchange_type_direct},{{xtype_to_module,topic},rabbit_exchange_type_topic},{{xtype_to_module,fanout},rabbit_exchange_type_fanout},{{xtype_to_module,headers},rabbit_exchange_type_headers}]
trap_exit: false
status: running
heap_size: 6772
stack_size: 27
reductions: 5361910
neighbours:
neighbour: [{pid,<0.6745.0>},{registered_name,'singleton_0bpF3SXqPZTQc80tAf+lu7E5kqQ'},{initial_call,{'Elixir.Singleton.Manager',init,['Argument__1']}},{current_function,{gen_server,loop,7}},{ancestors,['Elixir.Singleton.Supervisor',<0.207.0>]},{message_queue_len,0},{links,[<0.208.0>,<0.7103.0>]},{trap_exit,false},{status,waiting},{heap_size,610},{stack_size,11},{reductions,199},{current_stacktrace,[{gen_server,loop,7,[{file,"gen_server.erl"},{line,394}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}]

** {function_clause,[{'Elixir.RabbitMQCloudWatchExporter.Exporter',handle_info,[{ssl_closed,{sslsocket,{gen_tcp,#Port<0.1362>,tls_connection,undefined},[<0.7855.0>,<0.7854.0>]}},[[{period,60},{collectors,[overview,vhost,node,exchange,queue,connection,channel]},{namespace,<<"RabbitMQ">>}],[{region,<<"eu-west-1">>}]]],[{file,"lib/rabbitmq_cloudwatch_exporter/exporter.ex"},{line,52}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,637}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,711}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}

** Reason for termination ==

** When Server state == [[{period,60},{collectors,[overview,vhost,node,exchange,queue,connection,channel]},{namespace,<<"RabbitMQ">>}],[{region,<<"eu-west-1">>}]]

** Last message in was {ssl_closed,{sslsocket,{gen_tcp,#Port<0.1362>,tls_connection,undefined},[<0.7855.0>,<0.7854.0>]}}

** Generic server rabbitmq_cloudwatch_exporter terminating

2019-06-18 11:19:07 =ERROR REPORT====
noxdafox commented 5 years ago

Release 0.2.1 should solve this issue.

agabani commented 5 years ago

Thank you! I'll leave the following running on an environment and report back the stability in 2 days time.

noxdafox commented 5 years ago

Closing the issue. If problems persist, please re-open it.