Hi,

I have a streaming pipeline running on flink and I need to collect metrics
to identify how my algorithm is performing. The entire pipeline is
multi-tenanted and I also need metrics per tenant. Lets say there would be
around 20 metrics to be captured per tenant. I have the following ideas for
implemention but any suggestions on which one might be better will help.

1. Use flink metric group and register a group per tenant at the operator
level. The disadvantage of this approach for me is I need the
runtimecontext parameter to register a metric and I have various subclasses
to which I need to pass this object to limit the metric scope within the
operator. Also there will be too many metrics reported if there are higher
number of subtasks.
How is everyone accessing flink state/ metrics from other classes where you
don't have access to runtimecontext?

2. Use a custom singleton metric registry to add and send these metrics
using custom sink. Instead of using flink metric group to collect metrics
per operatior - subtask, collect per jvm and use influx sink to send the
metric data. What i'm not sure in this case is how to collect only once per
node/jvm.

Thanks a bunch in advance.

Reply via email to