agent can inventory and monitor JMS
by John Mazzitelli
I added resource types for the Artemis JMS server and its queues/topics as well as the queue/topic metrics.
So we can monitor JMS components. You won't see anything because the UI will need to be enhanced to show their graphs. But at least the data is there for the UI to consume.
9 years, 2 months
agent: define your own feed ID from command line
by John Mazzitelli
When the agent starts for the very first time, it needs to generate a feed ID for itself - if inside WF9 the feed ID is typically the hostname (its convoluted, but normally that is what it is). On WF10, its the WildFly server's UUID. About a week ago, I let the agent be told what feed ID to use via its feedId attribute in <storage-adapter> for those that don't want the UUID to be the feed ID.
But people didn't want to have to edit standalone.xml to set their feed ID. So I released a new …
[View More]agent (0.15.6.Final) that adds a new feature to the agent installer - you can now pass in --feed-id (or set feed-id in the installer config file) to the installer which will set the feedId attribute in the agent <storage-adapter> config.
This still doesn't get you all the way to what people want (which is being able to pass in -Dhawkular.agent.feedid=myfeedid when starting the Hawkular Server). So this PR is now submitted:
https://github.com/hawkular/hawkular/pull/791
When this is merged, that feature will be enabled - if you pass in -Dhawkular.agent.feedid=XYZ the first time the agent is started it will use that when it creates its feed id. If you don't pass it in, the agent autogenerates its feed id like it always has in the past.
I don't know if people want this merged into master for the release tomorrow or not - I'll leave that for someone else to decide. The PR is there if you want it.
--John Mazz
[View Less]
9 years, 2 months
Getting started with Docker
by Anton Hughes
Hi guys
Im following the quick-start guide using Docker guide on your website.
It says if I go to localhost:8080 then I should get the login screen.
However, I get the standard WF9 screen, without any login page.
Should I delete the docker image and try again? Or is the remote docker
image out of date?
thanks,
Anton
[image: Inline image 1]
9 years, 2 months
Release schedule
by Juraci Paixão Kröhling
Team,
Based on the discussed that followed the last release, here's the
adjusted scheduled based on the next release. Although those are only
*suggestions*, I'll be following that for Accounts.
- Thursday before the release: Parent, Commons and Accounts
- Friday before the release: Inventory, Metrics, BTM
- Monday before the release: Command Gateway, Agent, Alerts
- Tuesday (release day): Hawkular
Once Accounts is released, I'll be submitting a PR for the downstream
components.
- Juca.
9 years, 2 months
Gulp version 3.9.0+ required for Hawkular UI Dev builds
by mike thompson
NOTE: this is only relevant if you are doing Hawkular UI development. This process is transparent to the normal build process.
In an effort to ‘ES6 All the things!” All of the Hawkular UI repos have been updated to use Gulp 3.9.0+ which allows gulp to use ES6 in its gulpfile (via Babel ES6 translator). This means that gulpfile.js filename has changed to gulpfile.babel.js and is written in ES6. All of the previous gulp commands work the same as they always have.
To determine what version of …
[View More]gulp is installed:
gulp —version
If the version returned is less than 3.9.0 then you need update the version. To update the version:
sudo npm update -g gulp
or
sudo npm install -g gulp
[View Less]
9 years, 2 months
First round of perf tests with more cassandra nodes - results
by Filip Brychta
Hello,
I did first quick perf testing of haw metrics STANDALONE with more cassandra nodes and it showed some interesting results.
Important note is that hawkular and cassandra cluster were running on VMs with shared storage. Which is very poor design for cassandra cluster but it still showed some patterns which will be true for every setup.
Witch proper cassandra cluster (dedicated disks, CommitLog and SSTables on different disks, ...) the results should be definitely better.
Summary of what …
[View More]was found (something is obvious even without testing):
- small messages (1 datapoint per request) utilize heavily cpu on hawkular host and cassandra hosts are utilized gently
- bigger messages (100 datapoints per request) are less demanding on hawkular host's cpu, cassandra hosts are utilized little bit more
- with week cpu on hawkular host, adding more cassandra nodes makes performance even worst
- for small messages (1 datapoint per request) even with sufficient cpu on hawkular host the performance improvement was only ~ 25% when number of nodes in the cluster was increased from 1 to 2
- for bigger messages (100 datapoints per request) with sufficient cpu on hawkular host the performance improvement was ~ 75% when number of nodes in the cluster was increased from 1 to 2
- for small messages (1 datapoint per request) even with sufficient cpu on hawkular host the performance does NOT scale up with more cassandra nodes (see results - performance dropped when 4th node was added)
- for bigger messages (100 datapoints per request) with sufficient cpu on hawkular host the performance scales up but not linearly (this could be caused by shared storage and with proper cassandra cluster the results will be better)
Questions:
- why is the performance getting worst when adding 3th and 4th storage nodes when sending small messages and having sufficient cpu on hawkular host?
About the test:
- load generator was hitting following endpoint http://${server.host}:${server.port}/hawkular/metrics/gauges/data
- one test run takes 4 minutes
- message with one datapoint looks like this [{"id":"gaugeID","data":[{"timestamp": "@{CurrentTimestamp}", "value": 10.12}]}]
- load generator was using 300 threads (each thread is acting like single client) and was sending messages containing 1 or 100 datapoints
- hawkular metrics is deployed on wildfly-9.0.2.Final
- metrics version: "Implementation-Version":"0.12.0-SNAPSHOT","Built-From-Git-SHA1":"c35deda5d6d03429e97f1ed4a6e4ef12cf7f3a00"
Results:
===================================================
VMs with 2 cores and shared storage, 4GB of memory.
===================================================
300 threads, 1 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra node ~ 3945 req/sec
2 cassandra nodes ~ 3751 req/sec
3 cassandra nodes ~ 3318 req/sec
4 cassandra nodes ~ 2726 req/sec
In this case the cpu on hawkular VM was fully used and adding more cassandra nodes actually made performance worst.
Cpu on cassandra nodes was never fully used
300 threads, 100 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra nodes ~ 102 req/sec
2 cassandra nodes ~ 138 req/sec
3 cassandra nodes ~ 188 req/sec
4 cassandra nodes ~ 175 req/sec
With week cpu on hawkular VM and big messages (100 datapoints in each) there is still some improvement when adding more cassandra nodes.
Cpu on cassandra nodes was never fully used
===================================================
Hawkular VM with 4 cores, cassandra VMs 2 cores and shared storage,4GB of memory.
===================================================
300 threads, 1 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra node ~ 5150 req/sec
2 cassandra nodes ~ 5667 req/sec
3 cassandra nodes ~ 5799 req/sec
4 cassandra nodes ~ 5476 req/sec
With stronger cpu on hawkular VM adding more cassandra nodes improves performance but there is a drop when 4th node is added.
Cpu on cassandra nodes was never fully used
300 threads, 100 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra nodes ~ 111 req/sec
2 cassandra nodes ~ 173 req/sec
3 cassandra nodes ~ 206 req/sec
4 cassandra nodes ~ 211 req/sec
With stronger cpu on hawkular VM adding more cassandra nodes improves performance.
Cpu on cassandra nodes was never fully used
===================================================
Hawkular VM with 8 cores, cassandra VMs 2 cores and shared storage,4GB of memory. Cpu on hawkular machine is used 30-40%
===================================================
300 threads, 1 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra node ~ 5424 req/sec
2 cassandra nodes ~ 6810 req/sec
3 cassandra nodes ~ 6576 req/sec
4 cassandra nodes ~ 6094 req/sec
Why there is a drop for 3th and 4th node?
300 threads, 100 datapoint, hawkular_metrics | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"1"
++++++++++++++++++++++++++++++++
1 cassandra nodes ~ 97 req/sec
2 cassandra nodes ~ 168 req/sec
3 cassandra nodes ~ 222 req/sec
4 cassandra nodes ~ 241 req/sec
Please let me know what you would like to see in next rounds of testing.
Filip
[View Less]
9 years, 2 months
where should integration/glue code and tests live?
by John Sanda
I am currently working on accounts integration in metrics. The integration code lives in the hawkular-component module in the metrics repo. Now I want to write some integration tests to verify that things work as expected. I don’t really think that integration/glue code belongs in the component repo. I want to make sure that wherever it lives I can still get feed back from CI builds when changes are made. When I make a change to component code in the metrics repo, the CI build runs and checks …
[View More]for regressions by running tests. There is a pretty quick feedback loop which is very important. If the glue code is living elsewhere, I would like for a a CI build to get kicked off at some point after the metrics CI builds completes successfully so that I can find out if any of my changes to the component code caused a regression in the glue code. And of course if I make a change directly in the glue code, I should get the feedback from the check-in CI job. In RHQ we had a build pipeline with jenkins that handled this for us. Is this possible with travis?
For now I am putting the glue code and tests in the metrics repo so that I can have the CI feedback loop, but I see this as a short term solution. It may work fine in this instance, but what about when I want to test some other integration? I will be pulling in more hawkular dependencies and eventually hit circular dependencies. And the quick feedback that I get from the component CI build will get a lot slower in the process.
- John
[View Less]
9 years, 2 months
Cassandra upgrade
by John Sanda
We are currently running Cassandra 2.2.2. I believe that 3.1.1 is the latest version, and it was released on December 21. There are some pretty significant changes in 3.x. From a development standpoint, I think it absolutely makes sense to upgrade. I would like to know what others think (Heiko in particular). There are other considerations like productization build changes and OpenShift integration. There would be a data migration involved with OpenShift since we already shipped Cassandra 2.x. …
[View More]When upgrading across major versions, you are supposed to run the sstableupgrade utility on each table. We would need to do this for OpenShift. Whether or not we choose to upgrade now, we will need to deal with this migration step in OpenShift at some point.
- John
[View Less]
9 years, 2 months
how to use the installer from command line
by John Mazzitelli
I'm just sending this to document it for myself :) but this could be useful to others...
This is a quick way you can download the agent installer and install it in a WildFly server instance from a console:
1) Download the installer from a running Hawkular instance, using curl's --user option to pass in the Hawkular credentials:
curl --user jdoe:password --data 'managed-server-name=YourManagedServerName&username=jdoe&password=password' --remote-name --remote-header-name --url http:/…
[View More]/localhost:8080/hawkular/wildfly-agent/installer
This connects to the Hawkular Server with the --user credentials and downloads a pre-configured installer and stores it under the file name "hawkular-wildfly-agent-installer.jar" (that's what --remote-name and --remote-header-name magically does). When you run the installer, it will install an agent that will connect to Hawkular using jdoe/password credentials as specified by username=X&password=X (those credentials are stored inside the installer; there is a way to ask the installer to encrypt those credentials so it isn't stored in plain text, but I won't get into that here). It will use the name "YourManagedServerName" when identifying WildFly resources that it stores in inventory (see managed-server-name=)
To run the installer, get the absolute directory name of your installed WildFly server where you want the agent installed (for example: /opt/wildfly) and pass that in as a command line option to the installer like this:
java -jar hawkular-wildfly-agent-installer.jar --target-location=/opt/wildfly
That's it. Your agent is installed. Next time you run that WildFly instance, the agent should run, connect to Hawkular Server, and begin monitoring and reporting inventory.
There is more that can be done. I won't get into details here but you can download the installer with that target-location already preconfigured (if your agents are all stored in the same location like /opt/wildfly, it might be easier to just preconfigure the installer to always use that and not have to pass it in each time when executing the installer). You can encrypt the passwords so they are stored in the installer in an encrypted form. You can use hawkular-account tokens rather than username/passwords for the agent (so the agent can connect to hawkular server using a token and not a user/pass). You can have the agent disabled by default when installed in case you don't want it running yet. You can define SSL credentials if you want the agent to talk to hawkular server over SSL/https. The installer can be configured in all these ways either when you download or even afterwards (you can pass in your own installer configuration file so customize it however you want).
[View Less]
9 years, 2 months