We are doing R & D on RabbitMQ and ActiveMQ, now we want to measure CPU and Memory consumption by particular MQ.
For ActiveMQ we found good support with JConsole and working as expected,
but we are unable to find out JConsole support RabbitMQ.
Can anyone please give me some head up to test RabbitMQ with JConsole.
If not possible with JConsole than suggest some alternatives.
JConsole is a Java tool, RabbitMQ is written in Erlang.
In order to monitor RabbitMQ you can use the Management UI
you can enable it using:
rabbitmq-plugins enable rabbitmq_management
The web UI is located at: http://server-name:15672/ The HTTP API and
its documentation are both located at: http://server-name:15672/api/
(or view our latest HTTP API documentation here).
Have a look also a this plugin https://github.com/rabbitmq/rabbitmq-top
Related
Java.
I had to port away from the Proton MQ library to the IBM one. I had written a dummy MQ server to run jUnit tests against but I cannot see any way to achieve something similar with IBM MQ. To me it seems that it requires a standalone server and a license. Is that the case? Are there any lightweight alternatives usable for jUnit?
They mention that there is an IVTRun application which is actually just a wrapper over MQJMSIVT.class. Decompiling inside, I don't see anything that can start an actual server/queue manager. See this: https://www.ibm.com/docs/en/ibm-mq/9.2?topic=jms-point-point-ivt-mq-classes
You can run MQ natively, in a container or in the cloud. The container option lends itself to automated testing as the set up and start can be automated.
For detailed instructions see https://developer.ibm.com/series/mq-ready-set-connect/
I have to put messages in a queue for which I have all the connection details (host, port, channel, manager, queuename and username). I never worked on implementing JMeter for sending MQ. Can anyone let me know where can I get (blog or reference) step by step procedure to perform this? I tried referring to official site, can't really understand those JNDI, connection Factory settings
Man, your MQ statement is too general as there are too many possible message queue system providers like Apache ActiveMQ, RabbitMQ, IBM MQ, TIBCO, etc. and the values for all these JNDI/JMS properties, connection factory names, queue names, etc. will be different.
To get an overview of Java communication with "MQ" get familiarized with Getting Started with Java Message Service (JMS)
Download .jar files for your MQ system and put them to JMeter Classpath
Perform configuration as per your MQ system connection settings, example setup for Apache ActiveMQ is here: Building a JMS Testing Plan - Apache JMeter
In my corporate project I am using Spring Boot and Apache ActiveMQ 5.x Spring Boot starter. I am a totally beginner in this.
My goal is to expose Prometheus endpoint with some JMS queue metrics:
number of messages in queue
number of messages in error queue
What are dedicated tools for retrieving such metrics? Up to now I have found two possible ways. Can anyone confirm which of these two tools can solve my problem?
https://docs.spring.io/spring-integration/docs/5.1.7.RELEASE/reference/html/#system-management-chapter
https://activemq.apache.org/components/artemis/documentation/latest/metrics.html (here the example is not very helpful)
I don't think the Spring stuff will work because that will provide Spring-related metrics from the application itself, not the ActiveMQ broker.
Also, the documentation for ActiveMQ you cited is for ActiveMQ Artemis. However, the dependency you're using is for ActiveMQ 5.x. Therefore, the documentation is not applicable. However, if you choose to use ActiveMQ Artemis it is very simple to expose a Prometheus endpoint using this Prometheus metrics plugin implementation. It's worth noting that Artemis is ActiveMQ's next generation message broker. If you're starting a new project I would recommend you use it rather than 5.x. Artemis is planned to replace 5.x and become ActiveMQ 6.0 in the future.
I think your best bet would be to configure the Prometheus JMX exporter. It even has a sample configuration for ActiveMQ 5.x.
ActiveMQ comes with Jolokia bundled by default for extracting JMX Beans for the JVM, queues and a bunch of other metrics using HTTP. That way we can easily export using a software like Telegraf, which comes with a simple input plugin for ActiveMQ and a simple output plugin for Prometheus.
We are designing a solution that will consume messages from IBM MQ using JMS. The plan is to use WAS Liberty, so JMS is the technology of choice. We will create Message-Drive beans that will listen for messages in MQ queues.
We are considering both WAS Liberty and OpenLiberty as well.
The trick here is that we must implement it with fail-over, so that if one of our server fail, the other will keep consuming messages from MQ automatically. Like in a ative/passive mechanism.
I'm aware that the MQ adapter needs to be installed as it is not provided out-of-the-box.
I have the following questions:
Does WAS Liberty messaging implementation supports fail-over? Meaning that if the ative message consumer node fails, the stand-by node will automatically migrate and start consuming messages from MQ? What about OpenLiberty?
How can I configure the message system to work that way? Can you point out to the documentation?
Or is this feature only provided by WebSphere?
There is no such functionality in WebSphere Liberty or Open Liberty yet. You can create RFE here https://www.ibm.com/developerworks/rfe/?PROD_ID=544 .
There are ways to do it manually, check these links:
JMS Activation spec on Liberty: “WAS_EndpointInitialState” full profile equivalent property?
Controlling the state of endpoints at runtime
Solution that you could do:
create a script/application that will monitor your servers and call that API to enable/disable endpoint in specific server
or use Dynamic cluster/ auto scaling feature of Liberty and divide you app to two clusters - one with MDBs, one without. And then define policy that MDBs cluster has 1 instance always available. So once the server dies it is automatically restarted somewhere in the cluster
or use Kubernetes/ICP platform in the same way - so deploying 2 versions of app, and defining different replicasets parameters.
I have integrated JMS using ActiveMQ in one of my Mule application. I want to deploy it in cloudhub.
Could you please help me for the following queries:
For deploying the application with ActiveMQ configured JMS does it required anything groundwork to be done before deployment? (such as ActiveMQ is to be installed and configured for my CH account?)
For time being I have configured the ActiveMQ which is already installed in OnPremise server and is being used from cloudHub deployed application. Is it a proper or standard way to use externally installed ActiveMQ?
Appreciate the quick and best answer for the above queries.
Thank you,
Best Regards,
Krishna.
you have already installed MQ service on your server side, you can use those credentials to configure your mule MQ adapter through mule properties file same as like you are using with local runtime
e.g.
mq.host=
mq.port=
mq.vhost=
mq.username=
mq.password=
CloudHub will connect to your on premise MQ service. Your approach is correct and no any MQ specific groundwork required.