qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marnie McCormack" <marnie.mccorm...@googlemail.com>
Subject Re: GSoC - Lahiru's CLI for JMX
Date Thu, 15 May 2008 19:42:01 GMT
All,

I've just being having a preliminary look around at the types of command
line functions available on other messaging products, for inspiration on the
details.

None of them seem to provide a CLI for the details we can expose, so this is
a *good* point in our favour.

Lahiru - I think a useful step at the moment would be to read through Aidan
& I's emails and then write a list of steps you're going to complete over
the next two weeks ?

Then we could usefully review your progress report at the end of that two
weeks and then plan work for the next two weeks, and so on .....

Items I think you'll need to include (which may end up forming a running
list for more than two weeks !):

- the steps Aidan has outlined above
- some outline proposals for the syntax of the CLI i.e. how it will look in
terms of options etc
- the components you'll be creating e.g.

    - daemon process to handle commands, spawning threads for user requests
      etc
      - reporting component (possibly via plugin as Aidan suggests)
      - scripts to start the daemon & stop the daemon
      - possibly some kind of output management to prevent massive files
      being created, again probably using an available library (i.e. to do file
      rotation/compression/archiving) ? This is probably a nice to have though.
      - ... these are examples and you should think about what you think the
      elements on your component list are and we can discuss :-)

- and alist of any open issues/questions for us to address

Hth,
Regards,
Marnie


On 5/15/08, Aidan Skinner <aidan@apache.org> wrote:

> Wow, top posting from my phone. Had to happen eventually. I think it's
> probably a good idea to sketch out two things at this point. Firstly,
> what is going to be presented: obviously queue and subscriber
> information, but what else? Secondly, how is that information going to
> be presented? Some form of table would seem a good first step, and
> everybody loves CSV output. How will the user specify that? Having
> options to sort by particular fields is also probably useful. A good
> thing to check is what output formatting libs are available in java,
> it's been a while since i did something like this from scratch so i'm
> not sure what the state of the art is.
>
> On 5/15/08, Marnie McCormack <marnie.mccormack@googlemail.com> wrote:
> > Hi Lahiru,
> >
> > Martin & Aidan & I are just discussing your project and here are some of
> our
> > thoughts:
> >
> > - so we need a command line with options. Aidan suggests it looks like
> this:
> >
> >
> > I was thinking something like
> >
> > $ qpid-admin --list-queues
> > queue-1
> > queue-2
> > queue-3
> >
> > $ qpid-admin --queue-info queue-1
> > Depth: 1 Count: 1 Subscribers: 0
> >
> > $ qpid-admin --queue-info --depth queue-1
> > 1
> >
> > for timed reports for alerting you could put that in cron, or use
> > watch for top/vmstat-esque action. I think it's probably a more
> > natural interface than editing a properties file and would be
> > something that we could apply to the C++ broker as well, which would
> > be nice. Plus, it's quite UNIXy and lets people leverage things like
> > awk.
> >
> >
> > - I'd also like it to be configurable using a properties file, but it's
> > probably worth getting list views on this for consensus
> >
> > - I think you're mainly on the right track, but I'd focus more on the
> > useful attributes we expose rather than all variables of the objects
> >
> > Rgds,
> > Marnie
> >
> > On 5/14/08, lahiru gunathilake <glahiru@gmail.com> wrote:
> >
> >> Hi all,
> >> Now I'm writing this output in to a file and this is running like a
> >> thread(daemon) and it write different files time to time as Aiden
> >> discussed
> >> with me.When I run the program it monitor the broker time to time (time
> >> interval can be configured).
> >>
> >> Honestly this is not the actual code I'm developing I'm just writing
> some
> >> sample code to test and informing you what I'm doing and expecting a
> feed
> >> from you.
> >>
> >> Thanks in advance
> >>
> >> Regards
> >> lahiru
> >>
> >> On Sun, May 11, 2008 at 9:00 AM, lahiru gunathilake <glahiru@gmail.com>
> >> wrote:
> >>
> >> > Hi Aiden,
> >> >
> >> > First thanks a lot for your reply I was waiting for a reply for few
> days
> >> > hopefully.
> >> > I did some modification to my program and I'm listing all the
> attributes
> >> of
> >> > all the mbeans which is having org.apache.qpid domain.
> >> > Here's the output of my program....(I'm printing the attribute name
> and
> >> > value and type in a single line and for now I haven't done any
> >> formattings
> >> > with the output.
> >> >
> ========================================================================
> >> > Press <Enter> to continue...
> >> >
> >> > TOTAL MBEAN COUNT:   46
> >> >
> >> > DOMAINS:
> >> >     Domain[0] = JMImplementation
> >> >     Domain[1] = com.sun.management
> >> >     Domain[2] = org.apache.qpid
> >> >     Domain[3] = java.lang
> >> >     Domain[4] = java.util.logging
> >> > ALL THE EXPOSED CLASSES
> >> > 29
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=amq.direct,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     amq.direct      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> > org.apache.qpid:type=VirtualHost.Queue,VirtualHost=test,name=ping
> >> >
> =======================================================================
> >> > Name     ping      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     5000      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> > org.apache.qpid:type=VirtualHost.Queue,VirtualHost=test,name=queue
> >> >
> =======================================================================
> >> > Name     queue      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     5000      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=test,name=amq.match,ExchangeType=headers
> >> >
> =======================================================================
> >> > Name     amq.match      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     headers      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> org.apache.qpid:type=VirtualHost.Queue,VirtualHost=development,name=queue
> >> >
> =======================================================================
> >> > Name     queue      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     5000      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=test,name=amq.fanout,ExchangeType=fanout
> >> >
> =======================================================================
> >> > Name     amq.fanout      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     fanout      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=development,name=<<default>>,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     <<default>>      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=amq.match,ExchangeType=headers
> >> >
> =======================================================================
> >> > Name     amq.match      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     headers      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=test,name=amq.topic,ExchangeType=topic
> >> >
> =======================================================================
> >> > Name     amq.topic      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     topic      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> > org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost=test
> >> >
> =======================================================================
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=test.topic,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     test.topic      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=development,name=amq.direct,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     amq.direct      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=amq.topic,ExchangeType=topic
> >> >
> =======================================================================
> >> > Name     amq.topic      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     topic      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> > org.apache.qpid:type=UserManagement,name=UserManagement
> >> >
> =======================================================================
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=development,name=amq.topic,ExchangeType=topic
> >> >
> =======================================================================
> >> > Name     amq.topic      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     topic      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> > org.apache.qpid:type=VirtualHost.Queue,VirtualHost=localhost,name=ping
> >> >
> =======================================================================
> >> > Name     ping      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     0      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=<<default>>,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     <<default>>      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=development,name=amq.fanout,ExchangeType=fanout
> >> >
> =======================================================================
> >> > Name     amq.fanout      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     fanout      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >>
> org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost=development
> >> >
> =======================================================================
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Queue,VirtualHost=localhost,name=test-queue
> >> >
> =======================================================================
> >> > Name     test-queue      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     0      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost=localhost
> >> >
> =======================================================================
> >> >
> =======================================================================
> >> >
> org.apache.qpid:type=VirtualHost.Queue,VirtualHost=localhost,name=queue
> >> >
> =======================================================================
> >> > Name     queue      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     0      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=test,name=amq.direct,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     amq.direct      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Queue,VirtualHost=localhost,name=test-ping
> >> >
> =======================================================================
> >> > Name     test-ping      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     0      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=test,name=<<default>>,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     <<default>>      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=amq.fanout,ExchangeType=fanout
> >> >
> =======================================================================
> >> > Name     amq.fanout      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     fanout      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=development,name=amq.match,ExchangeType=headers
> >> >
> =======================================================================
> >> > Name     amq.match      java.lang.String
> >> > Durable     true      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     headers      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> >> >
> >>
> org.apache.qpid:type=VirtualHost.Exchange,VirtualHost=localhost,name=test.direct,ExchangeType=direct
> >> >
> =======================================================================
> >> > Name     test.direct      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > ExchangeType     direct      java.lang.String
> >> > TicketNo     0      java.lang.Integer
> >> >
> =======================================================================
> >> >
> org.apache.qpid:type=VirtualHost.Queue,VirtualHost=development,name=ping
> >> >
> =======================================================================
> >> > Name     ping      java.lang.String
> >> > Owner     null      java.lang.String
> >> > Durable     false      boolean
> >> > AutoDelete     false      boolean
> >> > MessageCount     0      java.lang.Integer
> >> > QueueDepth     0      java.lang.Long
> >> > MaximumMessageSize     2117632      java.lang.Long
> >> > ConsumerCount     0      java.lang.Integer
> >> > ActiveConsumerCount     0      java.lang.Integer
> >> > ReceivedMessageCount     0      java.lang.Long
> >> > MaximumMessageCount     5000      java.lang.Long
> >> > MaximumQueueDepth     4136      java.lang.Long
> >> > MaximumMessageAge     600000      java.lang.Long
> >> >
> >> > Close the connection to the server
> >> >
> >> > Bye! Bye!
> >> > lahiru@lahiru-laptop
> >> :~/IdeaProjects/jmxpractice/classes/production/jmxpractice$
> >> >
> >> >
> >> >
> =========================================================================
> >> > On Fri, May 9, 2008 at 8:35 PM, Aidan Skinner <aidan@apache.org>
> wrote:
> >> >
> >> >> Hey Lahiru,
> >> >>
> >> >> the screenshot you sent was stripped by the mailing list, as it's a
> >> >> command line it's probably best just to copy and paste the output
> into
> >> >> an email anyway.
> >> >>
> >> >> As for a next step, probably something quick like listing all the
> >> >> queues or the count on a specified queue.
> >> >
> >> > I think I have done what you are asking but I'm not sure if I'm wrong
> >> > please let me know.
> >> > Could you please explain it some more and however I will try to
> >> understand
> >> > what you meant by that sentence.
> >> >
> >> > Thanks in advance
> >> >
> >> >
> >> > Regs
> >> > lahiru
> >> >
> >>
> >>
> >>
> >> --
> >> East or West
> >> Mahindians are the
> >> Best... !
> >>
> >
>
> --
> Sent from Google Mail for mobile | mobile.google.com
>
> aim/y!:aidans42  g:aidan.skinner@gmail.com <g%3Aaidan.skinner@gmail.com>
> http://aidan.skinner.me.uk/
> "We belong to nobody and nobody belongs to us. We don't even belong to
> each other."
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message