Strong +1 to broker status API. It will be super helpful for other
operational use-cases.

If not too much extra effort, having "has leaders" or "number of
leaders" in there, will be useful too - it is only safe to modify the
network layer (change LB config, for instance) when a broker is no
longer the leader for any partition.

On Wed, Nov 13, 2019 at 8:43 AM Jason Gustafson <ja...@confluent.io> wrote:
>
> Ni Noa,
>
> Thanks for the KIP. I agree with the concerns about Metadata bloat. In
> fact, I have wanted a BrokerStatus API for a while now. Perhaps this is a
> good excuse to introduce it. I was thinking something like this:
>
> BrokerStatusRequest => BrokerId
>
> BrokerStatusResponse =>
>   Listeners => [ListenerName Host Port]
>   RackId
>   BrokerEpoch
>   BrokerState => {ACTIVE, RECOVERING, SHUTTING_DOWN}
>   UpTime
>
> What do you think?
>
> Thanks,
> Jason
>
> On Tue, Nov 5, 2019 at 12:25 PM Noa Resare <n...@resare.com> wrote:
>
> > I agree with that. And looking at the MetadataResponse fields it seems
> > there has been some feature creep already here. Does the client use rack
> > information, for example?
> >
> > I guess one could do this either by introducing a new leaner message pair,
> > used specifically enable client operation, and use
> > MetadataRequest/MetadataResponse for describeCluster() or one could shrink
> > MetadataRequest/MetadataResponse and introduce a new more fully featured
> > message pair for the other stuff. I would be happy to spend some time
> > looking into implementing this if there is an interest.
> >
> > /noa
> >
> > > On 5 Nov 2019, at 15:43, Gwen Shapira <g...@confluent.io> wrote:
> > >
> > > It isn't just about saving space. It increases complexity to default to
> > > always sharing a bit of information that is really only needed in a
> > single
> > > use-case.
> > > We avoid doing this as a matter of good protocol design.
> > > Arguably, this should not really piggyback on cluster metadata at all,
> > > since the usage is so different.
> > >
> > > On Tue, Nov 5, 2019, 7:29 AM Noa Resare <n...@resare.com> wrote:
> > >
> > >> It would certainly be possible to have the field be optional and only
> > >> include it if some flag is set in the DescribeClusterOptions instance
> > >> passed to Admin.describeCluster() that in turn would translate to a
> > boolean
> > >> in MetadataRequest indicating that we are asking for this piece of
> > >> information.
> > >>
> > >> I’m not entirely sure that this extra complexity would be worth it for
> > the
> > >> modestly smaller response size, in a message that already contains
> > things
> > >> like the hostname and rack identifier per broker.
> > >>
> > >> /noa
> > >>
> > >>> On 4 Nov 2019, at 14:45, Gwen Shapira <g...@confluent.io> wrote:
> > >>>
> > >>> Cluster metadata is sent to clients on a very regular basis. Adding
> > >>> start-time there seems quite repetitive. Especially considering that
> > >>> this information is only useful in very specific cases.
> > >>>
> > >>> Can we add this capability to the Admin API in a way that won't impact
> > >>> normal client workflow?
> > >>>
> > >>> On Mon, Nov 4, 2019 at 4:05 AM Noa Resare <n...@resare.com> wrote:
> > >>>>
> > >>>> Thank you for the feedback, Stanislav!
> > >>>>
> > >>>> I agree that it would be good to harmonise the naming, and
> > >> start-time-ms definitely more descriptive.
> > >>>>
> > >>>> I have updated the proposal to reflect this, and also added the
> > updated
> > >> json RPC changes. Please have a look.
> > >>>>
> > >>>> /noa
> > >>>>
> > >>>>> On 1 Nov 2019, at 09:13, Stanislav Kozlovski <stanis...@confluent.io
> > >
> > >> wrote:
> > >>>>>
> > >>>>> Hey Noa,
> > >>>>>
> > >>>>> KIP-436 added a JMX metric in Kafka for this exact use-case, called
> > >>>>> `start-time-ms`. Perhaps it would be useful to name this public
> > >> interface
> > >>>>> in the same way for consistency.
> > >>>>>
> > >>>>> Could you update the KIP to include the specific RPC changes
> > regarding
> > >> the
> > >>>>> metadata request/responses? Here is a recent example of how to
> > portray
> > >> the
> > >>>>> changes -
> > >>>>>
> > >>
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-525+-+Return+topic+metadata+and+configs+in+CreateTopics+response
> > >>>>>
> > >>>>> Thanks,
> > >>>>> Stanislav!
> > >>>>>
> > >>>>> On Mon, Oct 14, 2019 at 2:46 PM Noa Resare <n...@resare.com> wrote:
> > >>>>>
> > >>>>>> We are in the process of migrating the pieces of automation that
> > >> currently
> > >>>>>> reads and modifies zookeeper state to use the Admin API.
> > >>>>>>
> > >>>>>> One of the things that we miss doing this is access to the start
> > time
> > >> of
> > >>>>>> brokers in a cluster which is used by our automation doing rolling
> > >>>>>> restarts. We currently read this from the timestamp field from the
> > >>>>>> epehmeral broker znodes in zookeeper. To address this limitation, I
> > >> have
> > >>>>>> authored KIP-536, that proposes adding a timestamp field to the Node
> > >> class
> > >>>>>> that the AdminClient.describeCluster() method returns.
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-536%3A+Propagate+broker+timestamp+to+Admin+API
> > >>>>>> <
> > >>>>>>
> > >>
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-536:+Propagate+broker+timestamp+to+Admin+API
> > >>>>>>>
> > >>>>>>
> > >>>>>> Any and all feedback is most welcome
> > >>>>>>
> > >>>>>> cheers
> > >>>>>> noa
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> --
> > >>>>> Best,
> > >>>>> Stanislav
> > >>>>
> > >>
> > >>
> >
> >

Reply via email to