[rabbitmq-discuss] Fwd: Problem with plugin development guide example
Jim Irrer
irrer at umich.edu
Fri Mar 18 19:11:24 GMT 2011
Jerry -
I was only using metronome as a guide to write plugins.
My real goal is to write a tracing plugin that dumps:
- all messages sent and received
- queue create+delete
- exchange create+delete
to a persistent store (file or database) for later analysis.
First step was to build server (That was easy, good job RabbitMQ).
Next is to get a trivial (hello world) plugin working.
Thanks,
- Jim
Jim Irrer irrer at umich.edu (734) 647-4409
University of Michigan Hospital Radiation Oncology
519 W. William St. Ann Arbor, MI 48103
On Fri, Mar 18, 2011 at 1:30 PM, Jerry Kuch <jerryk at vmware.com> wrote:
> Hi, Jim...
>
> Someone on the Rabbit team just pointed out to me that metronome currently
> doesn't work. We have a bug reported internally on it.
>
> Can you say a bit about what you're trying to do with it? Are you aiming
> to write a Rabbit plugin of your own and were planning to use metronome for
> guidance?
>
> Jerry
> ________________________________________
> From: rabbitmq-discuss-bounces at lists.rabbitmq.com [
> rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Jim Irrer [
> irrer at umich.edu]
> Sent: Friday, March 18, 2011 9:22 AM
> To: rabbitmq-discuss at lists.rabbitmq.com
> Cc: Jim Irrer
> Subject: Re: [rabbitmq-discuss] Fwd: Problem with plugin development guide
> example
>
> That was helpful - I got farther - but not there yet.
>
> I did the checkout of the umbrella with the command above:
>
> hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella -r bug23568
>
> but I did the 'make co' without any special parameters, so I assumed
> that it did hg commands with respect to the bug23568 branch.
>
> I built the metronome project as outlined on the Rabbit site and added
> the rabbit_metronome-0.0.0.ez and amqp_client.ez files to the
> rabbitmq-public-umbrella/rabbitmq-server/plugins directory, but when I
> start it up I get:
>
> linus:make run
> RABBITMQ_NODE_IP_ADDRESS="" RABBITMQ_NODE_PORT="5679"
> RABBITMQ_LOG_BASE="/tmp" RABBITMQ_MNESIA_DIR="/tmp/rabbitmq-bunny-mnesia"
> RABBITMQ_PLUGINS_EXPAND_DIR="/tmp/rabbitmq-bunny-plugins-scratch" \
> RABBITMQ_ALLOW_INPUT=true \
> RABBITMQ_SERVER_START_ARGS="" \
> ./scripts/rabbitmq-server
> Activating RabbitMQ plugins ...
> *WARNING* Undefined function amqp_connection:start_direct/0
> *WARNING* Undefined function gb_trees:map/2
> *WARNING* Undefined function os:timestamp/0
> *WARNING* Undefined function random:seed/1
> *WARNING* Undefined function ssl:ssl_accept/3
> 2 plugins activated:
> * amqp_client-0.0.0
> * rabbit_metronome-0.0.0
>
> Erlang (BEAM) emulator version 5.6.5 [source] [64-bit] [smp:2]
> [async-threads:30] [hipe] [kernel-poll:true]
>
>
> +---+ +---+
> | | | |
> | | | |
> | | | |
> | +---+ +-------+
> | |
> | RabbitMQ +---+ |
> | | | |
> | v%%VSN%% +---+ |
> | |
> +-------------------+
> AMQP 0-9-1 / 0-9 / 0-8
> Copyright (C) 2007-2011 VMware, Inc.
> Licensed under the MPL. See http://www.rabbitmq.com/
>
> node : bunny at linus
> app descriptor :
> /devel/home/irrer/tmp/erl/r2/rabbitmq-public-umbrella/rabbitmq-server/scripts/../ebin/rabbit.app
> home dir : /home/irrer
> config file(s) : (none)
> cookie hash : JG6HnrDO2nMIVTU2s7iwoA==
> log : /tmp/bunny.log
> sasl log : /tmp/bunny-sasl.log
> database dir : /tmp/rabbitmq-bunny-mnesia
> erlang version : 5.6.5
>
> starting file handle cache server
> ...done
> starting worker pool
> ...done
> starting database
> ...done
> starting codec correctness check
> ...done
> -- external infrastructure ready
> starting statistics event manager
> ...done
> starting logging server
> ...done
> starting plugin registry
> ...done
> starting auth mechanism amqplain
> ...done
> starting auth mechanism cr-demo
> ...done
> starting auth mechanism plain
> ...done
> starting exchange type direct
> ...done
> starting exchange type fanout
> ...done
> starting exchange type headers
> ...done
> starting exchange type topic
> ...done
> -- kernel ready
> starting node monitor
> ...done
> starting cluster delegate
> ...done
> starting guid generator
> ...done
> starting alarm handler
> ...done
> starting memory monitor
> ...done
> -- core initialized
> starting empty DB check
> ...done
> starting exchange recovery
> ...done
> starting queue supervisor and queue recovery
> ...done
> -- message delivery logic ready
> starting error log relay
> ...done
> starting networking
> ...done
> starting notify cluster nodes
> ...done
> starting direct_client
> ...done
>
> broker running
> Eshell V5.6.5 (abort with ^G)
> (bunny at linus)1> Erlang has closed
> {"Kernel pid
> terminated",application_controller,"{application_start_failure,rabbit_metronome,{shutdown,{rabbit_metronome,start,[normal,[]]}}}"}
>
> Crash dump was written to: erl_crash.dump
> Kernel pid terminated (application_controller)
> ({application_start_failure,rabbit_metronome,{shutdown,{rabbit_metronome,start,[normal,[]]}}})
>
> And as advertised it creates a big honkin' dump file.
>
> I also had to create symbolic links so that the code would build. In my
> rabbitmq-public-umbrella/rabbit_metronome directory I created:
>
> amqp_client -> ../rabbitmq-erlang-client/dist/amqp_client
> rabbit_common -> ../rabbitmq-erlang-client/dist/rabbit_common
>
> The server works fine if run without adding plugins, but when I add them
> it bombs, so I know the plugins are the problem (Right?).
>
> I'm new to Erlang (interesting language), so all I did was cut and paste
> the example Erlang code, so if that code is out of date then it would be a
> problem.
>
> Also: I changed the port to 5679 so it would not interfere with the
> official
> installed RabbitMQ server on the same machine, and I set RABBITMQ_NODENAME
> to 'bunny'.
>
> Thanks,
>
> - Jim
>
> Jim Irrer irrer at umich.edu<mailto:irrer at umich.edu> (734) 647-4409
> <tel:%28734%29%20647-4409>
> University of Michigan Hospital Radiation Oncology
> 519 W. William St. Ann Arbor, MI 48103
>
>
> On Thu, Mar 17, 2011 at 8:27 AM, Matthew Sackman <matthew at rabbitmq.com
> <mailto:matthew at rabbitmq.com>> wrote:
> On Tue, Mar 15, 2011 at 07:00:28PM -0400, Jim Irrer wrote:
> > If I checkout the latest server code, will I get the bug23274 fix?
>
> Nope. bug23274 has been abandoned. bug23568 replaces it, but is yet to
> go through QA. None of the documentation regarding writing plugins has
> been updated.
>
> > If not, what is the Mercurial command to get it?
>
> hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella -r bug23568
>
> But you'll need to make sure all the plugins are also on branch bug23568
> for them to work with the new build system.
>
> If you're writing plugins from scratch, be sure to read the
> rabbitmq-public-umbrella/README.makefiles file, which has a helpful
> section on "Creating a new package".
>
> Matthew
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com<mailto:
> rabbitmq-discuss at lists.rabbitmq.com>
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110318/02df910e/attachment.htm>
More information about the rabbitmq-discuss
mailing list