That's what I'd like to see. For example, suppose a Connect task fails
because it can't deserialize an event from a partition. Stop
connector, move offset forward, start connector. Boom!


On Wed, Feb 8, 2017 at 3:22 PM, Matthias J. Sax <matth...@confluent.io> wrote:
> I am not sure about --reset-plus and --reset-minus
>
> Would this skip n messages forward/backward for each partitions?
>
>
> -Matthias
>
> On 2/8/17 2:23 PM, Jorge Esteban Quilcate Otoya wrote:
>> Great. I think I got the idea. What about this options:
>>
>> Scenarios:
>>
>> 1. Current status
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1´
>>
>> 2. To Datetime
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-datetime
>> 2017-01-01T00:00:00.000´
>>
>> 3. To Period
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-period P2D´
>>
>> 4. To Earliest
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-earliest´
>>
>> 5. To Latest
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-latest´
>>
>> 6. Minus 'n' offsets
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-minus n´
>>
>> 7. Plus 'n' offsets
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-plus n´
>>
>> 8. To specific offset
>>
>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to x´
>>
>> Scopes:
>>
>> a. All topics used by Consumer Group
>>
>> Don't specify --topics
>>
>> b. Specific List of Topics
>>
>> Add list of values in --topics t1,t2,tn
>>
>> c. One Topic, all Partitions
>>
>> Add one topic and no partitions values: --topic t1
>>
>> d. One Topic, List of Partitions
>>
>> Add one topic and partitions values: --topic t1 --partitions 0,1,2
>>
>> About Reset Plan (JSON file):
>>
>> I think is still valid to have the option to persist reset configuration as
>> a file, but I agree to give the option to run the tool without going down
>> to the JSON file.
>>
>> Execution options:
>>
>> 1. Without execution argument (No args):
>>
>> Print out results (reset plan)
>>
>> 2. With --execute argument:
>>
>> Run reset process
>>
>> 3. With --output argument:
>>
>> Save result in a JSON format.
>>
>> 4. Only with --execute option and --reset-file (path to JSON)
>>
>> Reset based on file
>>
>> 4. Only with --verify option and --reset-file (path to JSON)
>>
>> Verify file values with current offsets
>>
>> I think we can remove --generate-and-execute because is a bit clumsy.
>>
>> With this options we will be able to execute with manual JSON configuration.
>>
>>
>> El mié., 8 feb. 2017 a las 22:43, Ben Stopford (<b...@confluent.io>)
>> escribió:
>>
>>> Yes - using a tool like this to skip a set of consumer groups over a
>>> corrupt/bad message is definitely appealing.
>>>
>>> B
>>>
>>> On Wed, Feb 8, 2017 at 9:37 PM Gwen Shapira <g...@confluent.io> wrote:
>>>
>>>> I like the --reset-to-earliest and --reset-to-latest. In general,
>>>> since the JSON route is the most challenging for users, we want to
>>>> provide a lot of ways to do useful things without going there.
>>>>
>>>> Two things that can help:
>>>>
>>>> 1. A lot of times, users want to skip few messages that cause issues
>>>> and continue. maybe just specifying the topic, partition and delta
>>>> will be better than having to find the offset and write a JSON and
>>>> validate the JSON etc.
>>>>
>>>> 2. Thinking if there are other common use-cases that we can make easy
>>>> rather than just one generic but not very usable method.
>>>>
>>>> Gwen
>>>>
>>>> On Wed, Feb 8, 2017 at 3:25 AM, Jorge Esteban Quilcate Otoya
>>>> <quilcate.jo...@gmail.com> wrote:
>>>>> Thanks for the feedback!
>>>>>
>>>>> @Onur, @Gwen:
>>>>>
>>>>> Agree. Actually at the first draft I considered to have it inside
>>>>> ´kafka-consumer-groups.sh´, but I decide to propose it as a standalone
>>>> tool
>>>>> to describe it clearly and focus it on reset functionality.
>>>>>
>>>>> But now that you mentioned, it does make sense to have it in
>>>>> ´kafka-consumer-groups.sh´. How would be a consistent way to introduce
>>>> it?
>>>>>
>>>>> Maybe something like this:
>>>>>
>>>>> ´kafka-consumer-groups.sh --reset-offset --generate --group cg1
>>> --topics
>>>> t1
>>>>> --reset-from 2017-01-01T00:00:00.000 --output plan.json´
>>>>>
>>>>> ´kafka-consumer-groups.sh --reset-offset --verify --reset-json-file
>>>>> plan.json´
>>>>>
>>>>> ´kafka-consumer-groups.sh --reset-offset --execute --reset-json-file
>>>>> plan.json´
>>>>>
>>>>> ´kafka-consumer-groups.sh --reset-offset --generate-and-execute --group
>>>> cg1
>>>>> --topics t1 --reset-from 2017-01-01T00:00:00.000´
>>>>>
>>>>> @Gwen:
>>>>>
>>>>>> It looks exactly like the replica assignment tool
>>>>>
>>>>> It was influenced by ;-) I use the generate-verify-execute process here
>>>> to
>>>>> make sure user will be aware of the result of this operation. At the
>>>>> beginning we considered only add a couple of options to Consumer Group
>>>>> Command:
>>>>>
>>>>> --rewind-to-timestamp and --rewind-to-period
>>>>>
>>>>> @Onur:
>>>>>
>>>>>> You can actually get away with overriding while members of the group
>>>> are live
>>>>> with method 2 by using group information from DescribeGroupsRequest.
>>>>>
>>>>> This means that we need to have Consumer Group stopped before executing
>>>> and
>>>>> start a new consumer internally to do this? Therefore, we won't be able
>>>> to
>>>>> consider executing reset when ConsumerGroup is active? (trying to
>>> relate
>>>> it
>>>>> with @Dong 5th question)
>>>>>
>>>>> @Dong:
>>>>>
>>>>>> Should we allow user to use wildcard to reset offset of all groups
>>> for a
>>>>> given topic as well?
>>>>>
>>>>> I haven't thought about this scenario. Could be interesting. Following
>>>> the
>>>>> recommendation to add it into Consumer Group Command, in this case
>>> Group
>>>>> argument will be optional if there are only 1 topic. I think for
>>> multiple
>>>>> topic won't be that useful.
>>>>>
>>>>>> Should we allow user to specify timestamp per topic partition in the
>>>> json
>>>>> file as well?
>>>>>
>>>>> Don't think this could be a valid from the tool, but if Reset Plan is
>>>>> generated, and user want to set the offset for a specific partition to
>>>>> other offset (eventually based on another timestamp), and execute it,
>>> it
>>>>> will be up to her/him.
>>>>>
>>>>>> Should the script take some credential file to make sure that this
>>>>> operation is authenticated given the potential impact of this
>>> operation?
>>>>>
>>>>> Haven't tried to secure brokers yet, but the tool should support
>>>>> authorization if it's enabled in the broker.
>>>>>
>>>>>> Should we provide constant to reset committed offset to
>>> earliest/latest
>>>>> offset of a partition, e.g. -1 indicates earliest offset and -2
>>> indicates
>>>>> latest offset.
>>>>>
>>>>> I will go for something like ´--reset-to-earliest´ and
>>>> ´--reset-to-latest´
>>>>>
>>>>>> Should we allow dynamic change of the comitted offset when consumer
>>> are
>>>>> running, such that consumer will seek to the newly committed offset and
>>>>> start consuming from there?
>>>>>
>>>>> Not sure about this. I will recommend to keep it simple and ask user to
>>>>> stop consumers first. But I would considered it if the trade-offs are
>>>>> clear.
>>>>>
>>>>> @Matthias
>>>>>
>>>>> Added :). And thanks a lot for your help to define this KIP!
>>>>>
>>>>>
>>>>>
>>>>> El mié., 8 feb. 2017 a las 7:47, Gwen Shapira (<g...@confluent.io>)
>>>>> escribió:
>>>>>
>>>>>> As long as the CLI is a bit consistent? Like, not just adding 3
>>>>>> arguments and a JSON parser to the existing tool, right?
>>>>>>
>>>>>> On Tue, Feb 7, 2017 at 10:29 PM, Onur Karaman
>>>>>> <onurkaraman.apa...@gmail.com> wrote:
>>>>>>> I think it makes sense to just add the feature to
>>>>>> kafka-consumer-groups.sh
>>>>>>>
>>>>>>> On Tue, Feb 7, 2017 at 10:24 PM, Gwen Shapira <g...@confluent.io>
>>>> wrote:
>>>>>>>
>>>>>>>> Thanks for the KIP. I'm super happy about adding the capability.
>>>>>>>>
>>>>>>>> I hate the interface, though. It looks exactly like the replica
>>>>>>>> assignment tool. A tool everyone loves so much that there are
>>>> multiple
>>>>>>>> projects, open and closed, that try to fix it.
>>>>>>>>
>>>>>>>> Can we swap it with something that looks a bit more like the
>>> consumer
>>>>>>>> group tool? or the kafka streams reset tool? Consistency is helpful
>>>> in
>>>>>>>> such cases. I spent some time learning existing tools and learning
>>>> yet
>>>>>>>> another one is a deterrent.
>>>>>>>>
>>>>>>>> Gwen
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Feb 7, 2017 at 6:43 PM, Jorge Esteban Quilcate Otoya
>>>>>>>> <quilcate.jo...@gmail.com> wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> I would like to propose a KIP to Add a tool to Reset Consumer
>>> Group
>>>>>>>> Offsets.
>>>>>>>>>
>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>>>>>>>> 122%3A+Add+a+tool+to+Reset+Consumer+Group+Offsets
>>>>>>>>>
>>>>>>>>> Please, take a look at the proposal and share your feedback.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Jorge.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Gwen Shapira
>>>>>>>> Product Manager | Confluent
>>>>>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760>
>>> <(650)%20450-2760> | @gwenshap
>>>>>>>> Follow us: Twitter | blog
>>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Gwen Shapira
>>>>>> Product Manager | Confluent
>>>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760>
>>> <(650)%20450-2760> | @gwenshap
>>>>>> Follow us: Twitter | blog
>>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Gwen Shapira
>>>> Product Manager | Confluent
>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760> | @gwenshap
>>>> Follow us: Twitter | blog
>>>>
>>>
>>
>



-- 
Gwen Shapira
Product Manager | Confluent
650.450.2760 | @gwenshap
Follow us: Twitter | blog

Reply via email to