IMO for requirements:
- Easy to install on a single host...
- Download a package (from the server, so that it can be
preconfigured, so that the server always deliver something compatible
with itself ?), run it with no other dependency but Java (assuming this
is Java based), have an interactive questionnaire if needed.
- Easy to install on multiple hosts...
- Configuration can be passed in CLI, RPM ?
- Auto-upgradable (getting updates from the hawkular server)
(Without data loss)
- (Interactive) shell to troubleshoot/configure
- Multi-OS support
- "low" footprint
If we have that, the rest of the requirements are a bit less of an issue
IMO as we can upgrade/reconfigure...
Then:
- Auto-discovery capability (This is a very high added value)
- Collect and report host data:
- CPU usage/Memory usage/Disk usage metrics
- OS / Kernel version / CPU&cores / Disks / Memory
For the servers monitoring, I am still unclear if it would be better to:
- collect by the agent (like JON 3)
- collect by the monitored server, such an EAP modules (needs the
server to come with the piece of agent + configuration *or* be
provisioned by the server or the agent...) talking straight to the server.
- collect by the monitored server through the agent.
- a mix depending on server capabilities...
We may not need to look into pluggable plugins right now. I'd rather
have a solid monolithic solution that we can split apart if/when needed.
Since the UI is made to be much more focused on the scenarios we want to
support, it reduces the need for plug-able plugins IMO, of course this
limits the project to what we can do out of the box and is not ideal,
but shouldn't prevent someone to contribute extensions and the UI for it
as part of the solution. (From a user point of view, he should be able
to configure what he wants to collect or not unless this is dictated by
the server)
From a release perspective, we need to be able to release the agent
much more often than the server.
The dev team has much more experience with agent possible issues than me :)
PS: we should also "discover" kubernetes/docker and what they contain.
Thomas
On 03/11/2015 06:57 PM, John Mazzitelli wrote:
I was going to wait to post this, but since it was brought up
already, might as well start this thread now.
Regardless of how the agent is to be implemented, we need to answer the question
"WHAT will the agent DO?" It is an existential question - kind of like asking
"What is the purpose to my life?" :)
So, what do we plan on having the agent do? What is its scope?
How much knowledge of the inventory does the agent need to know? How does it gain this
knowledge of its inventory?
Does the agent auto-discover resources? How?
Can the agent be told about resources that it cannot auto-discover?
Does the agent need to be pluggable so it can load and interface with plugins to handle
monitoring of different resources? What are these plugins?
Additionally, we can add (in Juca's words):
> What is the scope of the agent? Will it gather only data about the
> environment, like, memory consumption, span of worker threads, CPU
> consumption, GC-time, ...? Or business metrics as well, like "requests
> per second", "number of exceptions in the last X minutes",
"average
> time spent on database", and so on?
>
> Also, is the same agent also responsible for capturing non-JVM related
> data, like, disk space utilization, network traffic, ...?
_______________________________________________
hawkular-dev mailing list
hawkular-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hawkular-dev