I'd like to open the discussion to *anyone* on something light: Hawkular
I would like to get some goodies to give away at conferences, for
I would like to have something that is not going to the trash right away,
something you would want to have (and doesn't cost a fortune ;)).
I am personally not fond of T-shirts as we usually get many at conferences
unless the design is really fun/original.
So please make your proposals and then we can vote, we may end with 2
results, cheaper to spread more/slightly more expensive for special
Maybe you saw/received something fun/useful in the past.
Example of something original:
Don't be shy :)
If we go to the end with your idea, you would definitely get the first item
Jirka put together a small UI and enhanced the download servlet, which I then went in and enhanced further, so you can now get a wildfly agent installer.
Here's quickly how it should work:
1) Go to the UI and fill in the fields, submit it, and you should be able to save the installer jar you get back
1b) alternatively, you can download it from the command line like this:
wget --content-disposition 'http://localhost:8080/wildfly-agent/download?installer=true
at this point, you have something like "hawkular-wildfly-agent-installer-0.13.1.Final.jar" on your file system.
2) Run the installer jar, pointing it to the wildfly you want to install it to:
java -jar hawkular-wildfly-agent-installer-0.13.1.Final.jar --wildfly-home=/path/to/your/wildfly/home
This installs the agent to your wildfly server.
That should be it. Run your wildfly and you've got it monitored by the agent.
Now, of course, there are lots of ways you can customize the agent installation. The above just gets you the default agent with jdoe/password credentials assuming http://localhost:8080 is accessible when you install.
Whatever properties that are accepted in the installer .properties file (which are also the same cmdline options to the installer) you can pass to the download URL so they can be preset for you in the installer's default configuration. So, for example, if you want all of your agents to talk to "http://your-hawk-server:8080", you can do this to get an installer that will install an agent talking to that server:
wget --content-disposition 'http://localhost:8080/wildfly-agent/download?installer=true&hawkular-serv...'
There are other properties you can pass in if you want to further customize the installer and the agent it installs. Just look at this for all that are available:
In the future, we want to have the installer that you download preconfigured (if you want) for the credentials of the user who requested the download, and preconfigured for the server that you downloaded the installer from (right now, it defaults to "http://localhost:8080" which is not optimal). But, again, you can customize this now via installer cmdline options if you want:
java -jar hawkular-wildfly-agent-installer-0.13.1.Final.jar \
That latter one (subsystem-snippet) is a powerful way you can further configure the agent by giving a full .xml of the agent subsystem (so you can do things like define what resource-type-dmr definitions you want, what metrics you want enabled or disabled, etc, etc.)
I'm going to see if I can tweek this server-side installer builder servlet some more to accept FORM POST rather than GET.
I don't like the idea that we have to put passwords and things in a query string on a URL since web servers usually log URLs in their log files (and thus we'd have sensitive passwords being logged in some log file out on the file system).
I'm also going to look into an optional parameter you can pass in to encode the passwords using a given random-key or something. You would then pass that in to the installer to "decode" the passwords that the installer then uses.
I'll then do something to encrypt the passwords (not just the hawkular password and secret key but also the key/keystore password if one is provided) before writing them to the installer .properties file. When you run the installer, you have to provide that encryptionSeed to the installer somehow (either pass it in as a cmdline option or have the installer ask on stdin).
This encryptionSeed isn't as sensitive as the passwords, since its used one time only during installation. So even if that is logged or captured in the bash history, its not that much of a problem - you can delete the installer jar and download another installer with a different encryptionSeed to render the original encrypionSeed useless.
Before I do this encryptionSeed thing - what are your thoughts on that? Any other better ideas?
FYI: the Hawkular WildFly Agent 0.13.0.Final has been released. This involved a major refactoring to support runtime discovery of changes to inventory (and those updates made to hawkular-inventory).
I did not update the hawkular kettle build - we should probably consider doing that soon.
I saw this on irc:
[2015-11-06T21:19:27+0100] <mazz> I was going to update kettle, but
that's broken if pulling in the
latest agent and inventory. looks like we'll need to get the UI to
know that feeds are no longer under
We have clients that use subsystems like inventory today - internal like
and UI and also external ones.
If we make such changes we need to communicate them here so that
everyone knows about them. And not only what has changed, but also
something like a list of previous->new and when it applies (e.g. is in
will be in Hawkular-1.0.7
With our rest apis, we should perhaps even transparently redirect
to give old clients time to transition to the new model / api /
Just a quick note that next week release won't be rebased on WildFly 10,
the main blocker is that Keycloak doesn't run on WF10 and we depend on it.
So we'll release on top of WF9, hopefully the release after will be on WF10
I think it would be good for all components that have a REST interface
to have a /version endpoint that responds on GET and which returns
- the tag (e.g. 0.8.1.Final or 0.3.44-SNAPSHOT or 1.2.3-src-dep-0xcafebabe))
- the git hash they are built from (less needed for .Final)
So that clients can easily verify what version they have as peer.
I have been watching the developments of Hawkular, and am really impressed!
I have a few questions about Hawkular.
Hawkular seems to be primarily focused on server metrics and monitoring.
I am, however, interested in exploring the possibility of using it for
monitoring and alerting of specific business events. For example, lets say
I had an online shop and I sold my widgets via affiliates. Would it be
possible to capture the sales event, persist and display metrics - so the
affiliate partner could login and see their activities? And to send such
events to Hawkular, is there a java client?
When using the server agent, are captured events sent async?