You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Jendrik Poloczek <je...@madewithtea.com> on 2017/01/30 10:41:29 UTC

Cannot access Kafka Streams JMX metrics using jmxterm

Hi,

I want to read the Kafka Streams JMX metrics using jmxterm, similiar to
this Kafka documentation:
https://cwiki.apache.org/confluence/display/KAFKA/jmxterm+quickstart.

I am using the same version: jmxterm-1.0-alpha-4-uber.jar. I managed to
retrieve metrics from the Kafka Streams application via JMX with tags
like: kafka.streams:type=kafka-metrics-count. However, when I try to
retrieve a bean with tags like:
kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics,
the application responds with:

"#IllegalArgumentException: Bean name
kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics
isn't valid"

Checking on the JMX best practices in the Oracle documentation I found
the following: "The set of characters in a key is limited. It is
recommended to stick to legal Java identifiers. The set of characters in
a value is also limited. If special characters may occur, it is
recommended that the value be quoted, using ObjectName.quote.
(http://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html)

Which led me to the conclusion that the naming of the key/tag identifier
(client-id) is not satisfying the naming constraint. Other beans with a
"node-id" tag cause the same IllegalArgumentException. The client-id tag
is also part of the widely-used Kafka producer and consumer, so I am
wondering if I am missing something here.

Thank you for support on this issue!
Jendrik


Re: Cannot access Kafka Streams JMX metrics using jmxterm

Posted by Sachin Mittal <sj...@gmail.com>.
I figured out the issue.

Try with following

info -b kafka.consumer:type=*,client-id==*
So type before client id works.

Thanks
Sachin

On 30 Jan 2017 11:22 p.m., "Guozhang Wang" <wa...@gmail.com> wrote:

> Hi Jendrik,
>
> Could you share with us what is your specified application id and client
> id?
>
> The reason that "app-c7117b6f-3af1-473a-a87a-1d981574c071" is used as the
> client id could be due to that client id was not specified in the configs.
>
>
> Guozhang
>
>
> On Mon, Jan 30, 2017 at 4:36 AM, Jendrik Poloczek <
> jendrik.poloczek@madewithtea.com> wrote:
>
> > Hi Eno,
> >
> > I tried accessing the Kafka consumer and producer beans using:
> >
> > info -d kafka.consumer -b
> > kafka.consumer:client-id=app-c7117b6f-3af1-473a-a87a-
> > 1d981574c071-StreamThread-1-consumer,type=kafka-metrics-count
> >
> > info -d kafka.producer -b
> > kafka.producer:client-id=app-c7117b6f-3af1-473a-a87a-
> > 1d981574c071-StreamThread-1-producer,node-id=node-1,type=
> > producer-node-metrics
> >
> > And I encounter the same exception like before:
> > "#IllegalArgumentException: Bean name [...] isn't valid".
> >
> > Thanks,
> > Jendrik
> >
> > On 30/01/17 12:25, Eno Thereska wrote:
> > > Hi Jendrik,
> > >
> > > I haven't tried jmxterm. Can you confirm if it is able to access the
> > Kafka producer/consumer metrics (they exist since Kafka Streams
> internally
> > uses Kafka)?
> > >
> > > I've personally used jconsole to look at the collected streams metrics,
> > but that might be limited for your needs.
> > >
> > > Thanks
> > > Eno
> > >
> > >> On 30 Jan 2017, at 10:41, Jendrik Poloczek <
> > jendrik.poloczek@madewithtea.com> wrote:
> > >>
> > >> Hi,
> > >>
> > >> I want to read the Kafka Streams JMX metrics using jmxterm, similiar
> to
> > >> this Kafka documentation:
> > >> https://cwiki.apache.org/confluence/display/KAFKA/jmxterm+quickstart.
> > >>
> > >> I am using the same version: jmxterm-1.0-alpha-4-uber.jar. I managed
> to
> > >> retrieve metrics from the Kafka Streams application via JMX with tags
> > >> like: kafka.streams:type=kafka-metrics-count. However, when I try to
> > >> retrieve a bean with tags like:
> > >> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-
> > 1d981574c071-StreamThread-1,type=stream-metrics,
> > >> the application responds with:
> > >>
> > >> "#IllegalArgumentException: Bean name
> > >> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-
> > 1d981574c071-StreamThread-1,type=stream-metrics
> > >> isn't valid"
> > >>
> > >> Checking on the JMX best practices in the Oracle documentation I found
> > >> the following: "The set of characters in a key is limited. It is
> > >> recommended to stick to legal Java identifiers. The set of characters
> in
> > >> a value is also limited. If special characters may occur, it is
> > >> recommended that the value be quoted, using ObjectName.quote.
> > >> (http://www.oracle.com/technetwork/java/javase/tech/
> > best-practices-jsp-136021.html)
> > >>
> > >> Which led me to the conclusion that the naming of the key/tag
> identifier
> > >> (client-id) is not satisfying the naming constraint. Other beans with
> a
> > >> "node-id" tag cause the same IllegalArgumentException. The client-id
> tag
> > >> is also part of the widely-used Kafka producer and consumer, so I am
> > >> wondering if I am missing something here.
> > >>
> > >> Thank you for support on this issue!
> > >> Jendrik
> > >>
> >
> >
>
>
> --
> -- Guozhang
>

Re: Cannot access Kafka Streams JMX metrics using jmxterm

Posted by Guozhang Wang <wa...@gmail.com>.
Hi Jendrik,

Could you share with us what is your specified application id and client id?

The reason that "app-c7117b6f-3af1-473a-a87a-1d981574c071" is used as the
client id could be due to that client id was not specified in the configs.


Guozhang


On Mon, Jan 30, 2017 at 4:36 AM, Jendrik Poloczek <
jendrik.poloczek@madewithtea.com> wrote:

> Hi Eno,
>
> I tried accessing the Kafka consumer and producer beans using:
>
> info -d kafka.consumer -b
> kafka.consumer:client-id=app-c7117b6f-3af1-473a-a87a-
> 1d981574c071-StreamThread-1-consumer,type=kafka-metrics-count
>
> info -d kafka.producer -b
> kafka.producer:client-id=app-c7117b6f-3af1-473a-a87a-
> 1d981574c071-StreamThread-1-producer,node-id=node-1,type=
> producer-node-metrics
>
> And I encounter the same exception like before:
> "#IllegalArgumentException: Bean name [...] isn't valid".
>
> Thanks,
> Jendrik
>
> On 30/01/17 12:25, Eno Thereska wrote:
> > Hi Jendrik,
> >
> > I haven't tried jmxterm. Can you confirm if it is able to access the
> Kafka producer/consumer metrics (they exist since Kafka Streams internally
> uses Kafka)?
> >
> > I've personally used jconsole to look at the collected streams metrics,
> but that might be limited for your needs.
> >
> > Thanks
> > Eno
> >
> >> On 30 Jan 2017, at 10:41, Jendrik Poloczek <
> jendrik.poloczek@madewithtea.com> wrote:
> >>
> >> Hi,
> >>
> >> I want to read the Kafka Streams JMX metrics using jmxterm, similiar to
> >> this Kafka documentation:
> >> https://cwiki.apache.org/confluence/display/KAFKA/jmxterm+quickstart.
> >>
> >> I am using the same version: jmxterm-1.0-alpha-4-uber.jar. I managed to
> >> retrieve metrics from the Kafka Streams application via JMX with tags
> >> like: kafka.streams:type=kafka-metrics-count. However, when I try to
> >> retrieve a bean with tags like:
> >> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-
> 1d981574c071-StreamThread-1,type=stream-metrics,
> >> the application responds with:
> >>
> >> "#IllegalArgumentException: Bean name
> >> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-
> 1d981574c071-StreamThread-1,type=stream-metrics
> >> isn't valid"
> >>
> >> Checking on the JMX best practices in the Oracle documentation I found
> >> the following: "The set of characters in a key is limited. It is
> >> recommended to stick to legal Java identifiers. The set of characters in
> >> a value is also limited. If special characters may occur, it is
> >> recommended that the value be quoted, using ObjectName.quote.
> >> (http://www.oracle.com/technetwork/java/javase/tech/
> best-practices-jsp-136021.html)
> >>
> >> Which led me to the conclusion that the naming of the key/tag identifier
> >> (client-id) is not satisfying the naming constraint. Other beans with a
> >> "node-id" tag cause the same IllegalArgumentException. The client-id tag
> >> is also part of the widely-used Kafka producer and consumer, so I am
> >> wondering if I am missing something here.
> >>
> >> Thank you for support on this issue!
> >> Jendrik
> >>
>
>


-- 
-- Guozhang

Re: Cannot access Kafka Streams JMX metrics using jmxterm

Posted by Jendrik Poloczek <je...@madewithtea.com>.
Hi Eno,

I tried accessing the Kafka consumer and producer beans using:

info -d kafka.consumer -b
kafka.consumer:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1-consumer,type=kafka-metrics-count

info -d kafka.producer -b
kafka.producer:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1-producer,node-id=node-1,type=producer-node-metrics

And I encounter the same exception like before:
"#IllegalArgumentException: Bean name [...] isn't valid".

Thanks,
Jendrik

On 30/01/17 12:25, Eno Thereska wrote:
> Hi Jendrik,
>
> I haven't tried jmxterm. Can you confirm if it is able to access the Kafka producer/consumer metrics (they exist since Kafka Streams internally uses Kafka)?
>
> I've personally used jconsole to look at the collected streams metrics, but that might be limited for your needs.
>
> Thanks
> Eno
>
>> On 30 Jan 2017, at 10:41, Jendrik Poloczek <je...@madewithtea.com> wrote:
>>
>> Hi,
>>
>> I want to read the Kafka Streams JMX metrics using jmxterm, similiar to
>> this Kafka documentation:
>> https://cwiki.apache.org/confluence/display/KAFKA/jmxterm+quickstart.
>>
>> I am using the same version: jmxterm-1.0-alpha-4-uber.jar. I managed to
>> retrieve metrics from the Kafka Streams application via JMX with tags
>> like: kafka.streams:type=kafka-metrics-count. However, when I try to
>> retrieve a bean with tags like:
>> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics,
>> the application responds with:
>>
>> "#IllegalArgumentException: Bean name
>> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics
>> isn't valid"
>>
>> Checking on the JMX best practices in the Oracle documentation I found
>> the following: "The set of characters in a key is limited. It is
>> recommended to stick to legal Java identifiers. The set of characters in
>> a value is also limited. If special characters may occur, it is
>> recommended that the value be quoted, using ObjectName.quote.
>> (http://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html)
>>
>> Which led me to the conclusion that the naming of the key/tag identifier
>> (client-id) is not satisfying the naming constraint. Other beans with a
>> "node-id" tag cause the same IllegalArgumentException. The client-id tag
>> is also part of the widely-used Kafka producer and consumer, so I am
>> wondering if I am missing something here.
>>
>> Thank you for support on this issue!
>> Jendrik
>>


Re: Cannot access Kafka Streams JMX metrics using jmxterm

Posted by Eno Thereska <en...@gmail.com>.
Hi Jendrik,

I haven't tried jmxterm. Can you confirm if it is able to access the Kafka producer/consumer metrics (they exist since Kafka Streams internally uses Kafka)?

I've personally used jconsole to look at the collected streams metrics, but that might be limited for your needs.

Thanks
Eno

> On 30 Jan 2017, at 10:41, Jendrik Poloczek <je...@madewithtea.com> wrote:
> 
> Hi,
> 
> I want to read the Kafka Streams JMX metrics using jmxterm, similiar to
> this Kafka documentation:
> https://cwiki.apache.org/confluence/display/KAFKA/jmxterm+quickstart.
> 
> I am using the same version: jmxterm-1.0-alpha-4-uber.jar. I managed to
> retrieve metrics from the Kafka Streams application via JMX with tags
> like: kafka.streams:type=kafka-metrics-count. However, when I try to
> retrieve a bean with tags like:
> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics,
> the application responds with:
> 
> "#IllegalArgumentException: Bean name
> kafka.streams:client-id=app-c7117b6f-3af1-473a-a87a-1d981574c071-StreamThread-1,type=stream-metrics
> isn't valid"
> 
> Checking on the JMX best practices in the Oracle documentation I found
> the following: "The set of characters in a key is limited. It is
> recommended to stick to legal Java identifiers. The set of characters in
> a value is also limited. If special characters may occur, it is
> recommended that the value be quoted, using ObjectName.quote.
> (http://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html)
> 
> Which led me to the conclusion that the naming of the key/tag identifier
> (client-id) is not satisfying the naming constraint. Other beans with a
> "node-id" tag cause the same IllegalArgumentException. The client-id tag
> is also part of the widely-used Kafka producer and consumer, so I am
> wondering if I am missing something here.
> 
> Thank you for support on this issue!
> Jendrik
>