如何在Flink中增加SinkFunction的numRecordsOutPut指标?

时间:2019-02-28 15:10:21

标签: java redis apache-flink

我正在使用flink消耗kafka并写入redis。

这是我的接收器函数以重做:

DYLD_LIBRARY_PATH

尽管我可以从redis命令行获取数据,但是指标显示接收器功能的输出为零:

enter image description here

如何增加此指标?

1 个答案:

答案 0 :(得分:1)

numRecordsIn和numRecordsOut度量标准仅对Flink作业本身中流动的流记录进行计数,并且不包括与外部系统的通信。因此,换句话说,源不报告任何进来的记录,接收器不报告任何进出的记录。

据我所见,您有两种选择:

  1. 使用接收器上的numRecordsIn指标作为您要了解的近似值
  2. 派生或扩展RedisSink并添加所需的指标

添加计数器指标的模式显示为here

对于redis接收器,您可以在open()方法中初始化一个Counter,然后在invoke()中对其进行递增。但这似乎毫无意义,因为这将简单地反映numRecordsIn指标。如果您的Redis接收器正在执行缓冲的批量写操作,那么等待增加度量直到数据实际发送到Redis可能更有意义-在这种情况下,您宁愿使用仪表而不是计数器。