簡體   English   中英

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

[英]How to increment numRecordsOutPut metrics of SinkFunction in Flink?

我正在使用flink消耗kafka並寫入redis。

這是我的接收器函數以重做:

            .addSink(new RichSinkFunction<MobilePageEvent>() {

                @Override
                public void invoke(MobilePageEvent event, Context context) {

                    JEDIS_CLUSTER.zadd(..);
                }
            })
            .name("redis sink");

雖然我可以從redis命令行獲取數據,但是指標顯示接收器功能的輸出為零:

在此處輸入圖片說明

如何增加此指標?

numRecordsIn和numRecordsOut指標僅計算Flink作業本身中流動的流記錄,不包括與外部系統的通信。 因此,換句話說,源不報告任何進來的記錄,接收器不報告任何進出的記錄。

在我看來,您有兩種選擇:

  1. 使用接收器上的numRecordsIn指標作為您要了解的近似值
  2. 分叉或擴展RedisSink並添加所需的指標

此處顯示了添加計數器指標的模式。

如果是redis接收器,則可以在open()方法中初始化一個Counter,然后在invoke()中將其遞增。 但這似乎毫無意義,因為這將簡單地反映numRecordsIn指標。 如果您的Redis接收器正在執行緩沖的批量寫操作,那么等待增量度量直到數據實際發送到Redis可能更有意義-在這種情況下,您寧願使用儀表而不是計數器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM