Hi Shadi,
Thanks for asking. This metric tracks the utilization of the event loop
<https://samza.apache.org/learn/documentation/0.8/container/event-loop.html>
within a samza container, which uses a single thread, that is in charge of
reading and writing messages, flushing metrics, checkpointing, and
windowing. It is important to track the utilization (aka "duty cycle") of
any event loop, which is the sum of all the timings (activeMs) divided by
the window length (totalMs).

You are right in that most of the time this value will be close to 1, which
represents complete utilization. However when the event loop starts to have
idle time, this metric will give you an idea of how much headroom you have
before the job will start to seriously fall behind.

I hope that answers your question!

ᐧ

On Thu, Jun 25, 2015 at 6:39 PM, Shadi Noghabi <
snogh...@linkedin.com.invalid> wrote:

> Hi,
>
> I was wondering what does this utilization metric in the
> SamzaContainerMetrics show? I am asking this sine in the code it is
> calculated as below:
>
> while (!shutdownNow) {
>   val loopStartTime = clock();
>   process
>   window
>   commit
>   val totalMs = clock() - loopStartTime
>   metrics.utilization.set(activeMs.toFloat/totalMs)
>   activeMs = 0L
> }
>
> Where the totalMs is the time it takes to start calling process until
> commit is done which is equal to  the time it takes to run process, window,
> and commit. And they way activeMs is calculated is by summing up the time
> it takes to call process, window and commit, which means these two values
> are going to be almost the same and the utilization is always going to be
> almost 1.
>
> I was just wondering what is the point of doing this?
>
>
>
>

Reply via email to