Skip to content
forked from aaronfeng/trixx

The goal of Trixx is to build an administration and monitoring tool for RabbitMQ.

License

Notifications You must be signed in to change notification settings

eichert12/trixx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Yo rabbit, Trixx are for hackers"

The goal of Trixx is to build an administration and monitoring tool for RabbitMQ.
Trixx is written in Clojure and, therefore, is available for all languages that 
run on JVM.

A web-service layer has been added around core Trixx that returns JSON.  This
enable easy consumption for non-JVM based languages.  Trixx Web Management
Console is written in Ruby and should be JRuby compatible.

Features of Trixx:

* add exchange
* delete exchange
* list exchanges
* add queue
* delete queue
* list queues
* add binding
* list bindings
* stop app
* start app
* reset
* add vhost
* delete vhost
* list vhosts
* add user
* delete user
* list users
* list connections
* set permissions
* clear permissions
* list vhost permissions
* list user permissions

Currently, there is no user interface associated with Trixx, but the eventual 
goal is to provide a nice web interface (hopefully in the next few weeks).  Also,
the core code is likely to change drastically in the next few months because of
heavy development.

At the moment, all the features provided by Trixx are also provided by
rabbitmqctl command line utility, which ships with RabbitMQ.  So you can
think of the core of Trixx as an API around rabbitmqctl for JVM languages.

Trixx was started as an experiment to learn more about Clojure and RabbitMQ. 
During my experiment, many people expressed interest in such a tool. So 
I am making this freely available in hopes that people will find it useful and 
possibly contribute to the project.

I also wrote a Scala version of Trixx for the same reason.  However, 
I will probably only continue the development only with the Clojure version.  
But if you are interested in building out the Scala version please let me know.
I'll include the source in a contrib folder for anyone that is interested.

Trixx requires RabbitMQ Java client and RabbitMQ broker from the hg repository, 
changeset: 329:f4073af3d546 and changeset: 1054:fce2dad390ee respectively.  
However, some features might work with the released version of the broker.
For example, the ACL feature is only in trunk version of the broker at this time,
so attempts to use permissions related functionalities in Trixx will result in error.
Since Trixx directly communicates with Erlang nodes, it requires JInterface.  Trixx
is using Erlang 6.5 at the time of this writing.


Building
--------------------------------------------------------------------------------
To build from source:

  ant fetch-deps compile-rabbit-server jar

Note that we've included a specific version of RabbitMQ at this time.  You'll
have to have Erlang installed so it can be built.   RabbitMQ will get built by
the compile-rabbit-server target.

Then in separate terminals, first run the rabbit server:

  ant run-rabbit

Then the trixx server:

  ant run-trixx

Open your browser to any of:

   http://localhost:8080/users
   http://localhost:8080/exchanges
   http://localhost:8080/queues
   http://localhost:8080/connections
   http://localhost:8080/bindings
	
   * There are more operations available, but cannot be queried in the browser. 
     Use Web Management Console to explore these features.

The trixx server is a web-services interface to the administrative features
provided by the trixx library which returns JSON.  To run the Ruby Web Management 
Console, use

  ant run-www

This runs on http://localhost:3000/

   http://localhost:3000/users            - list all users
   http://localhost:3000/users/new        - add a new user
   http://localhost:3000/users/guest/edit - edit user "guest"
   http://localhost:3000/users/guest      - delete user when DELETE http request is used

   http://localhost:3000/exchanges        - list all exchanges
   http://localhost:3000/queues           - list all queues
   http://localhost:3000/bindings         - list all bindings
   http://localhost:3000/connections      - list all connections

   http://localhost:3000/rabbit           - stop, start and reset application

   * More features coming soon.

Dependencies
--------------------------------------------------------------------------------

We are making an effort to ensure that Trixx and its dependencies are java 1.5
compatible.  If you are working on Trixx and would like to submit changes back
to the core repository, please ensure that your code is 1.5 compatible.



Contact
--------------------------------------------------------------------------------
If you have any questions/problems/suggestions with Trixx I can be contacted 
in the following ways:

Email: [email protected]
Twitter: aaronfeng
Blog: leftrightfold.com

About

The goal of Trixx is to build an administration and monitoring tool for RabbitMQ.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Erlang 72.8%
  • Ruby 13.2%
  • Clojure 4.0%
  • Scala 3.7%
  • Python 2.8%
  • Perl 2.6%
  • Other 0.9%