Hi all,
I currently have a topology which is designed to execute each component in
its own pool of workers. This is to say, that if topology has three components
A, B and C, all the tasks from A will execute in worker 1, and B in worker 2
and C in worker 3. The worker will exclusively execute tasks from a single
component.
In this scenario, I want to measure the capacity of the component. If a
certain amount of cpu is dedicated to the Worker (by cgroups), what is the
maximum number of tuples that can be processed by that Worker. (Backpressure is
disabled in this case)
My current approach is to calculate the capacity using the Storm metrics.
Measuring the amount of tuples processed by the worker in a given amount of
time, and the amount of cpu used will provide a rough estimate of the total
capacity of the worker.
The current method of measuring capacity does not use the cpu metrics, so I
am not certain if this will provide a reliable approximation of its maximum
capacity.
The current metrics provides means to measure the number of tuples
processed, emitted, transferred and average latency. I could not find any way
to measure the cpu used by the worker during the given time. I would like to
know if there is already a means to measure the cpu used? If so can you point
me to the documentation or an example to do so.
Ultimately I would like to provide the user with the live metrics of number
of tuples processed, transferred, average latency (very much like in storm-ui),
and additionally add cpu usage and capacity. Any help in aiding me towards this
goal is greatly appreciated.
Thanks for your time,
warm regards,
ravi