Hi,
Can you please take out my email I’d so that will not be able to receive
any mail from you.
Thank you

On Tue, Oct 19, 2021 at 1:30 PM Mickael Maison <mickael.mai...@gmail.com>
wrote:

> Hi Magnus,
>
> Thanks for the proposal.
>
> 1. Looking at the protocol section, isn't "ClientInstanceId" expected
> to be a field in GetTelemetrySubscriptionsResponseV0? Otherwise, how
> does a client retrieve this value?
>
> 2. In the client API section, you mention a new method
> "clientInstanceId()". Can you clarify which interfaces are affected?
> Is it only Consumer and Producer?
>
> 3. I'm a bit concerned this is enabled by default. Even if the data
> collected is supposed to be not sensitive, I think this can be
> problematic in some environments. Also users don't seem to have the
> choice to only expose some metrics. Knowing how much data transit
> through some applications can be considered critical.
>
> 4. As a user, how do you know if your application is actively sending
> metrics? Are there new metrics exposing what's going on, like how much
> data is being sent?
>
> 5. If all metrics are enabled on a regular Consumer or Producer, do
> you have an idea how much throughput this would use?
>
> Thanks
>
> On Tue, Oct 19, 2021 at 5:06 PM Magnus Edenhill <mag...@edenhill.se>
> wrote:
> >
> > Den tis 19 okt. 2021 kl 13:22 skrev Tom Bentley <tbent...@redhat.com>:
> >
> > > Hi Magnus,
> > >
> > > I reviewed the KIP since you called the vote (sorry for not reviewing
> when
> > > you announced your intention to call the vote). I have a few questions
> on
> > > some of the details.
> > >
> > > 1. There's no Javadoc on ClientTelemetryPayload.data(), so I don't know
> > > whether the payload is exposed through this method as compressed or
> not.
> > > Later on you say "Decompression of the payloads will be handled by the
> > > broker metrics plugin, the broker should expose a suitable
> decompression
> > > API to the metrics plugin for this purpose.", which suggests it's the
> > > compressed data in the buffer, but then we don't know which codec was
> used,
> > > nor the API via which the plugin should decompress it if required for
> > > forwarding to the ultimate metrics store. Should the
> ClientTelemetryPayload
> > > expose a method to get the compression and a decompressor?
> > >
> >
> > Good point, updated.
> >
> >
> >
> > > 2. The client-side API is expressed as StringOrError
> > > ClientInstance::ClientInstanceId(int timeout_ms). I understand that
> you're
> > > thinking about the librdkafka implementation, but it would be good to
> show
> > > the API as it would appear on the Apache Kafka clients.
> > >
> >
> > This was meant as pseudo-code, but I changed it to Java.
> >
> >
> > > 3. "PushTelemetryRequest|Response - protocol request used by the
> client to
> > > send metrics to any broker it is connected to." To be clear, this means
> > > that the client can choose any of the connected brokers and push to
> just
> > > one of them? What should a supporting client do if it gets an error
> when
> > > pushing metrics to a broker, retry sending to the same broker or try
> > > pushing to another broker, or drop the metrics? Should supporting
> clients
> > > send successive requests to a single broker, or round robin, or is
> that up
> > > to the client author? I'm guessing the behaviour should be sticky to
> > > support the rate limiting features, but I think it would be good for
> client
> > > authors if this section were explicit on the recommended behaviour.
> > >
> >
> > You are right, I've updated the KIP to make this clearer.
> >
> >
> > > 4. "Mapping the client instance id to an actual application instance
> > > running on a (virtual) machine can be done by inspecting the metrics
> > > resource labels, such as the client source address and source port, or
> > > security principal, all of which are added by the receiving broker.
> This
> > > will allow the operator together with the user to identify the actual
> > > application instance." Is this really always true? The source IP and
> port
> > > might be a loadbalancer/proxy in some setups. The principal, as already
> > > mentioned in the KIP, might be shared between multiple applications.
> So at
> > > worst the organization running the clients might have to consult the
> logs
> > > of a set of client applications, right?
> > >
> >
> > Yes, that's correct. There's no guaranteed mapping from
> client_instance_id
> > to
> > an actual instance, that's why the KIP recommends client implementations
> to
> > log the client instance id
> > upon retrieval, and also provide an API for the application to retrieve
> the
> > instance id programmatically
> > if it has a better way of exposing it.
> >
> >
> > 5. "Tests indicate that a compression ratio up to 10x is possible for the
> > > standard metrics." Client authors might appreciate your mentioning
> which
> > > compression codec got these results.
> > >
> >
> > Good point. Updated.
> >
> >
> > > 6. "Should the client send a push request prior to expiry of the
> previously
> > > calculated PushIntervalMs the broker will discard the metrics and
> return a
> > > PushTelemetryResponse with the ErrorCode set to RateLimited." Is this
> > > RATE_LIMITED a new error code? It's not mentioned in the "New Error
> Codes"
> > > section.
> > >
> >
> > That's a leftover, it should be using the standard ThrottleTime
> mechanism.
> > Fixed.
> >
> >
> > > 7. In the section "Standard client resource labels" application_id is
> > > described as Kafka Streams only, but the section of "Client
> Identification"
> > > talks about "application instance id as an optional future nice-to-have
> > > that may be included as a metrics label if it has been set by the
> user", so
> > > I'm confused whether non-Kafka Streams clients should set an
> application_id
> > > or not.
> > >
> >
> > I'll clarify this in the KIP, but basically we would need to add an `
> > application.id` config
> > property for non-streams clients for this purpose, and that's outside the
> > scope of this KIP since we want to make it zero-conf:ish on the client
> side.
> >
> >
> > >
> > > Kind regards,
> > >
> > > Tom
> > >
> >
> > Thanks for the review,
> > Magnus
> >
> >
> >
> > >
> > > On Thu, Oct 7, 2021 at 5:26 PM Magnus Edenhill <mag...@edenhill.se>
> wrote:
> > >
> > > > Hi all,
> > > >
> > > > I've updated the KIP following our recent discussions on the mailing
> > > list:
> > > >  - split the protocol in two, one for getting the metrics
> subscriptions,
> > > > and one for pushing the metrics.
> > > >  - simplifications: initially only one supported metrics format, no
> > > > client.id in the instance id, etc.
> > > >  - made CLIENT_METRICS subscription configuration entries more
> structured
> > > >    and allowing better client matching selectors (not only on the
> > > instance
> > > > id, but also the other
> > > >    client resource labels, such as client_software_name, etc.).
> > > >
> > > > Unless there are further comments I'll call the vote in a day or two.
> > > >
> > > > Regards,
> > > > Magnus
> > > >
> > > >
> > > >
> > > > Den mån 4 okt. 2021 kl 20:57 skrev Magnus Edenhill <
> mag...@edenhill.se>:
> > > >
> > > > > Hi Gwen,
> > > > >
> > > > > I'm finishing up the KIP based on the last couple of discussion
> points
> > > in
> > > > > this thread
> > > > > and will call the Vote later this week.
> > > > >
> > > > > Best,
> > > > > Magnus
> > > > >
> > > > > Den lör 2 okt. 2021 kl 02:01 skrev Gwen Shapira
> > > > <g...@confluent.io.invalid
> > > > > >:
> > > > >
> > > > >> Hey,
> > > > >>
> > > > >> I noticed that there was no discussion for the last 10 days, but I
> > > > >> couldn't
> > > > >> find the vote thread. Is there one that I'm missing?
> > > > >>
> > > > >> Gwen
> > > > >>
> > > > >> On Wed, Sep 22, 2021 at 4:58 AM Magnus Edenhill <
> mag...@edenhill.se>
> > > > >> wrote:
> > > > >>
> > > > >> > Den tis 21 sep. 2021 kl 06:58 skrev Colin McCabe <
> > > cmcc...@apache.org
> > > > >:
> > > > >> >
> > > > >> > > On Mon, Sep 20, 2021, at 17:35, Feng Min wrote:
> > > > >> > > > Thanks Magnus & Colin for the discussion.
> > > > >> > > >
> > > > >> > > > Based on KIP-714's stateless design, Client can pretty much
> use
> > > > any
> > > > >> > > > connection to any broker to send metrics. We are not
> associating
> > > > >> > > connection
> > > > >> > > > with client metric state. Is my understanding correct? If
> yes,
> > > > how
> > > > >> > about
> > > > >> > > > the following two scenarios
> > > > >> > > >
> > > > >> > > > 1) One Client (Client-ID) registers two different client
> > > instance
> > > > id
> > > > >> > via
> > > > >> > > > separate registration. Is it permitted? If OK, how to
> > > distinguish
> > > > >> them
> > > > >> > > from
> > > > >> > > > the case 2 below.
> > > > >> > > >
> > > > >> > >
> > > > >> > > Hi Feng,
> > > > >> > >
> > > > >> > > My understanding, which Magnus can clarify I guess, is that
> you
> > > > could
> > > > >> > have
> > > > >> > > something like two Producer instances running with the same
> > > > client.id
> > > > >> > > (perhaps because they're using the same config file, for
> example).
> > > > >> They
> > > > >> > > could even be in the same process. But they would get separate
> > > > UUIDs.
> > > > >> > >
> > > > >> > > I believe Magnus used the term client to mean "Producer or
> > > > Consumer".
> > > > >> So
> > > > >> > > if you have both a Producer and a Consumer in your
> application I
> > > > would
> > > > >> > > expect you'd get separate UUIDs for both. Again Magnus can
> chime
> > > in
> > > > >> > here, I
> > > > >> > > guess.
> > > > >> > >
> > > > >> >
> > > > >> > That's correct.
> > > > >> >
> > > > >> >
> > > > >> > >
> > > > >> > > > 2) How about the client restarting? What's the expectation?
> > > Should
> > > > >> the
> > > > >> > > > server expect the client to carry a persisted client
> instance id
> > > > or
> > > > >> > > should
> > > > >> > > > the client be treated as a new instance?
> > > > >> > >
> > > > >> > > The KIP doesn't describe any mechanism for persistence, so I
> would
> > > > >> assume
> > > > >> > > that when you restart the client you get a new UUID. I agree
> that
> > > it
> > > > >> > would
> > > > >> > > be good to spell this out.
> > > > >> > >
> > > > >> > >
> > > > >> > Right, it will not be persisted since a client instance can't be
> > > > >> restarted.
> > > > >> >
> > > > >> > Will update the KIP to make this clearer.
> > > > >> >
> > > > >> > /Magnus
> > > > >> >
> > > > >>
> > > > >>
> > > > >> --
> > > > >> Gwen Shapira
> > > > >> Engineering Manager | Confluent
> > > > >> 650.450.2760 | @gwenshap
> > > > >> Follow us: Twitter | blog
> > > > >>
> > > > >
> > > >
> > >
>

Reply via email to