Thanks for driving, Qingsheng.

+1 for reverting sink metric name.

We often forget that metric is also one of the important APIs.

+1 for releasing 1.15.3 to fix this.

Best,
Jingsong

On Sun, Oct 9, 2022 at 11:35 PM Becket Qin <becket....@gmail.com> wrote:
>
> Thanks for raising the discussion, Qingsheng,
>
> +1 on reverting the breaking changes.
>
> In addition, we might want to release a 1.15.3 to fix this and update the 
> previous release docs with this known issue, so that users can upgrade to 
> 1.15.3 when they hit it. It would also be good to add some backwards 
> compatibility tests on metrics to avoid unintended breaking changes like this 
> in the future.
>
> Thanks,
>
> Jiangjie (Becket) Qin
>
> On Sun, Oct 9, 2022 at 10:35 AM Qingsheng Ren <re...@apache.org> wrote:
>>
>> Hi devs and users,
>>
>> I’d like to start a discussion about reverting a breaking change about sink 
>> metrics made in 1.15 by FLINK-26126 [1] and FLINK-26492 [2].
>>
>> TL;DR
>>
>> All sink metrics with name “numXXXOut” defined in FLIP-33 are replace by 
>> “numXXXSend” in FLINK-26126 and FLINK-26492. Considering metric names are 
>> public APIs, this is a breaking change to end users and not backward 
>> compatible. Also unfortunately this breaking change was not discussed in the 
>> mailing list before.
>>
>> Background
>>
>> As defined previously in FLIP-33 (the FLIP page has been changed so please 
>> refer to the old version [3] ), metric “numRecordsOut” is used for reporting 
>> the total number of output records since the sink started (number of records 
>> written to the external system), and similarly for “numRecordsOutPerSecond”, 
>> “numBytesOut”, “numBytesOutPerSecond” and “numRecordsOutError”. Most sinks 
>> are following this naming and definition. However, these metrics are 
>> ambiguous in the new Sink API as “numXXXOut” could be used by the output of 
>> SinkWriterOperator for reporting number of Committables delivered to 
>> SinkCommitterOperator. In order to resolve the conflict, FLINK-26126 and 
>> FLINK-26492 changed names of these metrics with “numXXXSend”.
>>
>> Necessity of reverting this change
>>
>> - Metric names are actually public API, as end users need to configure 
>> metric collecting and alerting system with metric names. Users have to reset 
>> all configurations related to affected metrics.
>> - This could also affect custom and external sinks not maintained by Flink, 
>> which might have implemented with numXXXOut metrics.
>> - The number of records sent to external system is way more important than 
>> the number of Committables sent to SinkCommitterOperator, as the latter one 
>> is just an internal implementation of sink. We could have a new metric name 
>> for the latter one instead.
>> - We could avoid splitting the project by version (like “plz use numXXXOut 
>> before 1.15 and use numXXXSend after”) if we revert it ASAP, cosidering 1.16 
>> is still not released for now.
>>
>> As a consequence, I’d like to hear from devs and users about your opinion on 
>> changing these metrics back to “numXXXOut”.
>>
>> Looking forward to your reply!
>>
>> [1] https://issues.apache.org/jira/browse/FLINK-26126
>> [2] https://issues.apache.org/jira/browse/FLINK-26492
>> [1] FLIP-33, version 18: 
>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=211883136
>>
>> Best,
>> Qingsheng

Reply via email to