A gauge just returns a value, and Flink exposes it as is. As such you
need to calculate the average over time yourself, taking 2 time
measurements (before and after the processing of each).
On 1/12/2021 11:31 AM, Manish G wrote:
startTime is set at start of function:
long startTime = System.currentTimeMillis();
On Tue, Jan 12, 2021 at 3:59 PM Manish G <manish.c.ghildi...@gmail.com
<mailto:manish.c.ghildi...@gmail.com>> wrote:
My code is:
|public class SimpleGauge<T> implements Gauge<T> { private T
mValue; @Override public T getValue() { return mValue; } public
void setValue(T value){ mValue = value; } }|
And in flatmap function:
|float endTime = (System.currentTimeMillis() - startTime) / 1000F;
this.simplegauge.setValue(endTime); |
|So does it mean when flink calls my getValue function to
accumulate the value, and not to take it as snapshot? |
On Tue, Jan 12, 2021 at 3:53 PM Chesnay Schepler
<ches...@apache.org <mailto:ches...@apache.org>> wrote:
Sure, that might work. Be aware though that time measurements
are,
compared to the logic within a function, usually rather
expensive and
may impact performance.
On 1/12/2021 10:57 AM, Manish G wrote:
> Hi All,
>
> I have implemented a flatmap function and I want to collect
metrics
> for average time for this function which I plan to monitor
via prometheus.
>
> What would be good approach for it? I have added a gauge to the
> method(extending Gauge interface from flink API). Would it
work for my
> needs?
>
>