You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Steven Huypens <st...@gmail.com> on 2021/09/19 08:16:01 UTC

Re: Decanter and JMX

Hi JB,

I've tested the new 2.8.0 decanter release and I'm pleased to say your fix
for https://issues.apache.org/jira/browse/KARAF-7154 works great. Thanks
for that !

However I couldn't figure out from the pull request what changes you made
related to my second suggestion, to better identify from which MBean the
properties are (or as you put it 'allow user to define the "exported" event
properties by configuration'). Can you please explain how I can achieve
this ?

Kind regards,
Steven

On Wed, May 12, 2021 at 6:57 PM Steven Huypens <st...@gmail.com>
wrote:

> Hi Jean-Baptist,
>
> 1) You mention the Prometheus appender only exposes the numeric metrics. I
> believe it would be a minor but very useful addition to also expose the
> Objects in a CompositeDataSupport. For example java.lang.memory has a
> HeapMemoryUsage-object which contains 4 values (committed, init, max &
> used) that could easily be exposed as well.
>
> 2) I also would like to suggest to prefix the outputted name of a property
> with something that really identifies the MBean, eg. :
>
> java_lang_Memory_HeapMemoryUsage_committed
> java_lang_Memory_HeapMemoryUsage_init
> java_lang_Memory_HeapMemoryUsage_max
> java_lang_Memory_HeapMemoryUsage_used
>
> Currently MBeans having the same properties will have their values
> overridden in the output.
>
> Kind regards,
> Steven
>
> On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
> wrote:
>
>> Hi Daniel,
>>
>> JMX collector polls all MBeans attributes. However Prometheus appender
>> only expose metrics (numeric) on the Prometheus servlet:
>>
>> http://localhost:8181/decanter/prometheus
>>
>> As the generated JMX JSON is "more" than just numeric, it’s possible that
>> you don’t have the metrics.
>>
>> You can check the JMX JSON using another kind of appender (like log
>> appender or elasticsearch).
>> I can add kind of "json introspection" on the Prometheus appender to
>> "force" some JSON fields as metrics (gauge).
>>
>> Regards
>> JB
>>
>> > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
>> >
>> > Hi,
>> >
>> > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and
>> Prometheus appender features. I uncommented
>> "object.name.system=java.lang:*" in
>> org.apache.karaf.decanter.collector.jmx-local.cfg.
>> >
>> > Where can I find JVM metrics like current heap memory usage?
>> >
>> > Regards
>> > --
>> > Daniel Łaś
>> >
>>
>>

Re: Decanter and JMX

Posted by Steven Huypens <st...@gmail.com>.
Thanks, that would be great !

Steven

On Wed, Sep 22, 2021 at 4:21 PM JB Onofré <jb...@nanthrax.net> wrote:

> Oh yes. It just has to be exposed. I will do that.
>
> I forgot, sorry for the inconvenience.
>
> Regards
> JB
>
> Le 22 sept. 2021 à 15:50, Steven Huypens <st...@gmail.com> a
> écrit :
>
> 
> Hi JB,
>
> While trying to expose a micrometer <https://micrometer.io/> Gauge, I
> noticed that its Double value is not shown by the PrometheusServlet.
> Apparently only Integers and Longs are. Any reason for this ? Looks like an
> easy fix to handle Doubles as well.
>
> Best regards,
> Steven
>
> On Sun, Sep 19, 2021 at 3:33 PM Steven Huypens <st...@gmail.com>
> wrote:
>
>>
>> Great !
>>
>> Anyway, thanks for the 2.8.0 release. Decanter now offers a prometheus
>> endpoint with the properties we need out-of-the-box.
>>
>> Steven
>>
>> On Sun, Sep 19, 2021 at 1:58 PM JB Onofré <jb...@nanthrax.net> wrote:
>>
>>> Ah that’s on the jmx collector then not Prometheus appender: the
>>> Prometheus appender just use property names provided by the collectors.
>>>
>>> I think it makes sense to use full object name and collector prefix to
>>> differentiate the properties name.
>>>
>>> I will do that for next decanter release.
>>>
>>> Thanks for pointing this.
>>>
>>> Regards
>>> JB
>>>
>>> Le 19 sept. 2021 à 12:53, Steven Huypens <st...@gmail.com> a
>>> écrit :
>>>
>>> 
>>> Hi JB,
>>>
>>> Thanks for the clarification, it works for me as described now.
>>>
>>> However, the problem I wanted to address was that if two different
>>> MBeans would contain the exact same property, I see no way of
>>> differentiating between them. In fact I think only one of the properties
>>> will be shown by the Prometheus servlet.
>>>
>>> At the moment that's not a real problem for me, just wanted to let you
>>> know and suggest the possibility of a prefix eg.
>>>
>>> java_lang_Memory_HeapMemoryUsage_committed
>>> java_lang_Memory_HeapMemoryUsage_init
>>> java_lang_Memory_HeapMemoryUsage_max
>>> java_lang_Memory_HeapMemoryUsage_used
>>>
>>> Best regards,
>>> Steven
>>>
>>> On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
>>> wrote:
>>>
>>>> Hi Steven,
>>>>
>>>> I’m about to write a quick blog post to give some highlights about this
>>>> change.
>>>>
>>>> Basically, I did these two other changes:
>>>>
>>>> 1. For « descendent » properties (the properties inside a Map for
>>>> instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>>>>
>>>>
>>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>>>>
>>>> 2. You can specify the property you want to « render » in the
>>>> Prometheus servlet using prometheus.key.foo in
>>>> etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>>>>
>>>>
>>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>>>>
>>>> I hope it helps.
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com>
>>>> a écrit :
>>>> >
>>>> > Hi JB,
>>>> >
>>>> > I've tested the new 2.8.0 decanter release and I'm pleased to say
>>>> your fix for https://issues.apache.org/jira/browse/KARAF-7154 works
>>>> great. Thanks for that !
>>>> >
>>>> > However I couldn't figure out from the pull request what changes you
>>>> made related to my second suggestion, to better identify from which MBean
>>>> the properties are (or as you put it 'allow user to define the "exported"
>>>> event properties by configuration'). Can you please explain how I can
>>>> achieve this ?
>>>> >
>>>> > Kind regards,
>>>> > Steven
>>>> >
>>>> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <
>>>> steven.huypens@gmail.com> wrote:
>>>> > Hi Jean-Baptist,
>>>> >
>>>> > 1) You mention the Prometheus appender only exposes the numeric
>>>> metrics. I believe it would be a minor but very useful addition to also
>>>> expose the Objects in a CompositeDataSupport. For example java.lang.memory
>>>> has a HeapMemoryUsage-object which contains 4 values (committed, init, max
>>>> & used) that could easily be exposed as well.
>>>> >
>>>> > 2) I also would like to suggest to prefix the outputted name of a
>>>> property with something that really identifies the MBean, eg. :
>>>> >
>>>> > java_lang_Memory_HeapMemoryUsage_committed
>>>> > java_lang_Memory_HeapMemoryUsage_init
>>>> > java_lang_Memory_HeapMemoryUsage_max
>>>> > java_lang_Memory_HeapMemoryUsage_used
>>>> >
>>>> > Currently MBeans having the same properties will have their values
>>>> overridden in the output.
>>>> >
>>>> > Kind regards,
>>>> > Steven
>>>> >
>>>> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
>>>> wrote:
>>>> > Hi Daniel,
>>>> >
>>>> > JMX collector polls all MBeans attributes. However Prometheus
>>>> appender only expose metrics (numeric) on the Prometheus servlet:
>>>> >
>>>> > http://localhost:8181/decanter/prometheus
>>>> >
>>>> > As the generated JMX JSON is "more" than just numeric, it’s possible
>>>> that you don’t have the metrics.
>>>> >
>>>> > You can check the JMX JSON using another kind of appender (like log
>>>> appender or elasticsearch).
>>>> > I can add kind of "json introspection" on the Prometheus appender to
>>>> "force" some JSON fields as metrics (gauge).
>>>> >
>>>> > Regards
>>>> > JB
>>>> >
>>>> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit
>>>> :
>>>> > >
>>>> > > Hi,
>>>> > >
>>>> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and
>>>> Prometheus appender features. I uncommented
>>>> "object.name.system=java.lang:*" in
>>>> org.apache.karaf.decanter.collector.jmx-local.cfg.
>>>> > >
>>>> > > Where can I find JVM metrics like current heap memory usage?
>>>> > >
>>>> > > Regards
>>>> > > --
>>>> > > Daniel Łaś
>>>> > >
>>>> >
>>>>
>>>>

Re: Decanter and JMX

Posted by JB Onofré <jb...@nanthrax.net>.
Oh yes. It just has to be exposed. I will do that. 

I forgot, sorry for the inconvenience. 

Regards 
JB

> Le 22 sept. 2021 à 15:50, Steven Huypens <st...@gmail.com> a écrit :
> 
> 
> Hi JB,
> 
> While trying to expose a micrometer Gauge, I noticed that its Double value is not shown by the PrometheusServlet. Apparently only Integers and Longs are. Any reason for this ? Looks like an easy fix to handle Doubles as well.
> 
> Best regards,
> Steven
> 
>> On Sun, Sep 19, 2021 at 3:33 PM Steven Huypens <st...@gmail.com> wrote:
>> 
>> Great !
>> 
>> Anyway, thanks for the 2.8.0 release. Decanter now offers a prometheus endpoint with the properties we need out-of-the-box.
>> 
>> Steven
>> 
>>> On Sun, Sep 19, 2021 at 1:58 PM JB Onofré <jb...@nanthrax.net> wrote:
>>> Ah that’s on the jmx collector then not Prometheus appender: the Prometheus appender just use property names provided by the collectors. 
>>> 
>>> I think it makes sense to use full object name and collector prefix to differentiate the properties name. 
>>> 
>>> I will do that for next decanter release. 
>>> 
>>> Thanks for pointing this. 
>>> 
>>> Regards 
>>> JB
>>> 
>>>>> Le 19 sept. 2021 à 12:53, Steven Huypens <st...@gmail.com> a écrit :
>>>>> 
>>>> 
>>>> Hi JB,
>>>> 
>>>> Thanks for the clarification, it works for me as described now. 
>>>> 
>>>> However, the problem I wanted to address was that if two different MBeans would contain the exact same property, I see no way of differentiating between them. In fact I think only one of the properties will be shown by the Prometheus servlet.
>>>> 
>>>> At the moment that's not a real problem for me, just wanted to let you know and suggest the possibility of a prefix eg.
>>>> 
>>>> java_lang_Memory_HeapMemoryUsage_committed
>>>> java_lang_Memory_HeapMemoryUsage_init 
>>>> java_lang_Memory_HeapMemoryUsage_max
>>>> java_lang_Memory_HeapMemoryUsage_used
>>>> 
>>>> Best regards,
>>>> Steven
>>>> 
>>>>> On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net> wrote:
>>>>> Hi Steven,
>>>>> 
>>>>> I’m about to write a quick blog post to give some highlights about this change.
>>>>> 
>>>>> Basically, I did these two other changes:
>>>>> 
>>>>> 1. For « descendent » properties (the properties inside a Map for instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>>>>> 
>>>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>>>>> 
>>>>> 2. You can specify the property you want to « render » in the Prometheus servlet using prometheus.key.foo in etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>>>>> 
>>>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>>>>> 
>>>>> I hope it helps.
>>>>> 
>>>>> Regards
>>>>> JB
>>>>> 
>>>>> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a écrit :
>>>>> > 
>>>>> > Hi JB,
>>>>> > 
>>>>> > I've tested the new 2.8.0 decanter release and I'm pleased to say your fix for https://issues.apache.org/jira/browse/KARAF-7154 works great. Thanks for that !
>>>>> > 
>>>>> > However I couldn't figure out from the pull request what changes you made related to my second suggestion, to better identify from which MBean the properties are (or as you put it 'allow user to define the "exported" event properties by configuration'). Can you please explain how I can achieve this ?
>>>>> > 
>>>>> > Kind regards,
>>>>> > Steven
>>>>> > 
>>>>> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <st...@gmail.com> wrote:
>>>>> > Hi Jean-Baptist,
>>>>> > 
>>>>> > 1) You mention the Prometheus appender only exposes the numeric metrics. I believe it would be a minor but very useful addition to also expose the Objects in a CompositeDataSupport. For example java.lang.memory has a HeapMemoryUsage-object which contains 4 values (committed, init, max & used) that could easily be exposed as well.
>>>>> > 
>>>>> > 2) I also would like to suggest to prefix the outputted name of a property with something that really identifies the MBean, eg. :
>>>>> > 
>>>>> > java_lang_Memory_HeapMemoryUsage_committed
>>>>> > java_lang_Memory_HeapMemoryUsage_init 
>>>>> > java_lang_Memory_HeapMemoryUsage_max
>>>>> > java_lang_Memory_HeapMemoryUsage_used
>>>>> > 
>>>>> > Currently MBeans having the same properties will have their values overridden in the output.
>>>>> > 
>>>>> > Kind regards,
>>>>> > Steven
>>>>> > 
>>>>> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net> wrote:
>>>>> > Hi Daniel,
>>>>> > 
>>>>> > JMX collector polls all MBeans attributes. However Prometheus appender only expose metrics (numeric) on the Prometheus servlet:
>>>>> > 
>>>>> > http://localhost:8181/decanter/prometheus
>>>>> > 
>>>>> > As the generated JMX JSON is "more" than just numeric, it’s possible that you don’t have the metrics.
>>>>> > 
>>>>> > You can check the JMX JSON using another kind of appender (like log appender or elasticsearch).
>>>>> > I can add kind of "json introspection" on the Prometheus appender to "force" some JSON fields as metrics (gauge).
>>>>> > 
>>>>> > Regards
>>>>> > JB
>>>>> > 
>>>>> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
>>>>> > > 
>>>>> > > Hi,
>>>>> > > 
>>>>> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and Prometheus appender features. I uncommented "object.name.system=java.lang:*" in org.apache.karaf.decanter.collector.jmx-local.cfg.
>>>>> > > 
>>>>> > > Where can I find JVM metrics like current heap memory usage? 
>>>>> > > 
>>>>> > > Regards
>>>>> > > -- 
>>>>> > > Daniel Łaś
>>>>> > > 
>>>>> > 
>>>>> 

Re: Decanter and JMX

Posted by Steven Huypens <st...@gmail.com>.
Hi JB,

While trying to expose a micrometer <https://micrometer.io/> Gauge, I
noticed that its Double value is not shown by the PrometheusServlet.
Apparently only Integers and Longs are. Any reason for this ? Looks like an
easy fix to handle Doubles as well.

Best regards,
Steven

On Sun, Sep 19, 2021 at 3:33 PM Steven Huypens <st...@gmail.com>
wrote:

>
> Great !
>
> Anyway, thanks for the 2.8.0 release. Decanter now offers a prometheus
> endpoint with the properties we need out-of-the-box.
>
> Steven
>
> On Sun, Sep 19, 2021 at 1:58 PM JB Onofré <jb...@nanthrax.net> wrote:
>
>> Ah that’s on the jmx collector then not Prometheus appender: the
>> Prometheus appender just use property names provided by the collectors.
>>
>> I think it makes sense to use full object name and collector prefix to
>> differentiate the properties name.
>>
>> I will do that for next decanter release.
>>
>> Thanks for pointing this.
>>
>> Regards
>> JB
>>
>> Le 19 sept. 2021 à 12:53, Steven Huypens <st...@gmail.com> a
>> écrit :
>>
>> 
>> Hi JB,
>>
>> Thanks for the clarification, it works for me as described now.
>>
>> However, the problem I wanted to address was that if two different MBeans
>> would contain the exact same property, I see no way of differentiating
>> between them. In fact I think only one of the properties will be shown by
>> the Prometheus servlet.
>>
>> At the moment that's not a real problem for me, just wanted to let you
>> know and suggest the possibility of a prefix eg.
>>
>> java_lang_Memory_HeapMemoryUsage_committed
>> java_lang_Memory_HeapMemoryUsage_init
>> java_lang_Memory_HeapMemoryUsage_max
>> java_lang_Memory_HeapMemoryUsage_used
>>
>> Best regards,
>> Steven
>>
>> On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
>> wrote:
>>
>>> Hi Steven,
>>>
>>> I’m about to write a quick blog post to give some highlights about this
>>> change.
>>>
>>> Basically, I did these two other changes:
>>>
>>> 1. For « descendent » properties (the properties inside a Map for
>>> instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>>>
>>>
>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>>>
>>> 2. You can specify the property you want to « render » in the Prometheus
>>> servlet using prometheus.key.foo in
>>> etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>>>
>>>
>>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>>>
>>> I hope it helps.
>>>
>>> Regards
>>> JB
>>>
>>> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a
>>> écrit :
>>> >
>>> > Hi JB,
>>> >
>>> > I've tested the new 2.8.0 decanter release and I'm pleased to say your
>>> fix for https://issues.apache.org/jira/browse/KARAF-7154 works great.
>>> Thanks for that !
>>> >
>>> > However I couldn't figure out from the pull request what changes you
>>> made related to my second suggestion, to better identify from which MBean
>>> the properties are (or as you put it 'allow user to define the "exported"
>>> event properties by configuration'). Can you please explain how I can
>>> achieve this ?
>>> >
>>> > Kind regards,
>>> > Steven
>>> >
>>> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <
>>> steven.huypens@gmail.com> wrote:
>>> > Hi Jean-Baptist,
>>> >
>>> > 1) You mention the Prometheus appender only exposes the numeric
>>> metrics. I believe it would be a minor but very useful addition to also
>>> expose the Objects in a CompositeDataSupport. For example java.lang.memory
>>> has a HeapMemoryUsage-object which contains 4 values (committed, init, max
>>> & used) that could easily be exposed as well.
>>> >
>>> > 2) I also would like to suggest to prefix the outputted name of a
>>> property with something that really identifies the MBean, eg. :
>>> >
>>> > java_lang_Memory_HeapMemoryUsage_committed
>>> > java_lang_Memory_HeapMemoryUsage_init
>>> > java_lang_Memory_HeapMemoryUsage_max
>>> > java_lang_Memory_HeapMemoryUsage_used
>>> >
>>> > Currently MBeans having the same properties will have their values
>>> overridden in the output.
>>> >
>>> > Kind regards,
>>> > Steven
>>> >
>>> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
>>> wrote:
>>> > Hi Daniel,
>>> >
>>> > JMX collector polls all MBeans attributes. However Prometheus appender
>>> only expose metrics (numeric) on the Prometheus servlet:
>>> >
>>> > http://localhost:8181/decanter/prometheus
>>> >
>>> > As the generated JMX JSON is "more" than just numeric, it’s possible
>>> that you don’t have the metrics.
>>> >
>>> > You can check the JMX JSON using another kind of appender (like log
>>> appender or elasticsearch).
>>> > I can add kind of "json introspection" on the Prometheus appender to
>>> "force" some JSON fields as metrics (gauge).
>>> >
>>> > Regards
>>> > JB
>>> >
>>> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
>>> > >
>>> > > Hi,
>>> > >
>>> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and
>>> Prometheus appender features. I uncommented
>>> "object.name.system=java.lang:*" in
>>> org.apache.karaf.decanter.collector.jmx-local.cfg.
>>> > >
>>> > > Where can I find JVM metrics like current heap memory usage?
>>> > >
>>> > > Regards
>>> > > --
>>> > > Daniel Łaś
>>> > >
>>> >
>>>
>>>

Re: Decanter and JMX

Posted by Steven Huypens <st...@gmail.com>.
Great !

Anyway, thanks for the 2.8.0 release. Decanter now offers a prometheus
endpoint with the properties we need out-of-the-box.

Steven

On Sun, Sep 19, 2021 at 1:58 PM JB Onofré <jb...@nanthrax.net> wrote:

> Ah that’s on the jmx collector then not Prometheus appender: the
> Prometheus appender just use property names provided by the collectors.
>
> I think it makes sense to use full object name and collector prefix to
> differentiate the properties name.
>
> I will do that for next decanter release.
>
> Thanks for pointing this.
>
> Regards
> JB
>
> Le 19 sept. 2021 à 12:53, Steven Huypens <st...@gmail.com> a
> écrit :
>
> 
> Hi JB,
>
> Thanks for the clarification, it works for me as described now.
>
> However, the problem I wanted to address was that if two different MBeans
> would contain the exact same property, I see no way of differentiating
> between them. In fact I think only one of the properties will be shown by
> the Prometheus servlet.
>
> At the moment that's not a real problem for me, just wanted to let you
> know and suggest the possibility of a prefix eg.
>
> java_lang_Memory_HeapMemoryUsage_committed
> java_lang_Memory_HeapMemoryUsage_init
> java_lang_Memory_HeapMemoryUsage_max
> java_lang_Memory_HeapMemoryUsage_used
>
> Best regards,
> Steven
>
> On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
> wrote:
>
>> Hi Steven,
>>
>> I’m about to write a quick blog post to give some highlights about this
>> change.
>>
>> Basically, I did these two other changes:
>>
>> 1. For « descendent » properties (the properties inside a Map for
>> instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>>
>>
>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>>
>> 2. You can specify the property you want to « render » in the Prometheus
>> servlet using prometheus.key.foo in
>> etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>>
>>
>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>>
>> I hope it helps.
>>
>> Regards
>> JB
>>
>> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a
>> écrit :
>> >
>> > Hi JB,
>> >
>> > I've tested the new 2.8.0 decanter release and I'm pleased to say your
>> fix for https://issues.apache.org/jira/browse/KARAF-7154 works great.
>> Thanks for that !
>> >
>> > However I couldn't figure out from the pull request what changes you
>> made related to my second suggestion, to better identify from which MBean
>> the properties are (or as you put it 'allow user to define the "exported"
>> event properties by configuration'). Can you please explain how I can
>> achieve this ?
>> >
>> > Kind regards,
>> > Steven
>> >
>> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <
>> steven.huypens@gmail.com> wrote:
>> > Hi Jean-Baptist,
>> >
>> > 1) You mention the Prometheus appender only exposes the numeric
>> metrics. I believe it would be a minor but very useful addition to also
>> expose the Objects in a CompositeDataSupport. For example java.lang.memory
>> has a HeapMemoryUsage-object which contains 4 values (committed, init, max
>> & used) that could easily be exposed as well.
>> >
>> > 2) I also would like to suggest to prefix the outputted name of a
>> property with something that really identifies the MBean, eg. :
>> >
>> > java_lang_Memory_HeapMemoryUsage_committed
>> > java_lang_Memory_HeapMemoryUsage_init
>> > java_lang_Memory_HeapMemoryUsage_max
>> > java_lang_Memory_HeapMemoryUsage_used
>> >
>> > Currently MBeans having the same properties will have their values
>> overridden in the output.
>> >
>> > Kind regards,
>> > Steven
>> >
>> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
>> wrote:
>> > Hi Daniel,
>> >
>> > JMX collector polls all MBeans attributes. However Prometheus appender
>> only expose metrics (numeric) on the Prometheus servlet:
>> >
>> > http://localhost:8181/decanter/prometheus
>> >
>> > As the generated JMX JSON is "more" than just numeric, it’s possible
>> that you don’t have the metrics.
>> >
>> > You can check the JMX JSON using another kind of appender (like log
>> appender or elasticsearch).
>> > I can add kind of "json introspection" on the Prometheus appender to
>> "force" some JSON fields as metrics (gauge).
>> >
>> > Regards
>> > JB
>> >
>> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
>> > >
>> > > Hi,
>> > >
>> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and
>> Prometheus appender features. I uncommented
>> "object.name.system=java.lang:*" in
>> org.apache.karaf.decanter.collector.jmx-local.cfg.
>> > >
>> > > Where can I find JVM metrics like current heap memory usage?
>> > >
>> > > Regards
>> > > --
>> > > Daniel Łaś
>> > >
>> >
>>
>>

Re: Decanter and JMX

Posted by JB Onofré <jb...@nanthrax.net>.
Ah that’s on the jmx collector then not Prometheus appender: the Prometheus appender just use property names provided by the collectors. 

I think it makes sense to use full object name and collector prefix to differentiate the properties name. 

I will do that for next decanter release. 

Thanks for pointing this. 

Regards 
JB

> Le 19 sept. 2021 à 12:53, Steven Huypens <st...@gmail.com> a écrit :
> 
> 
> Hi JB,
> 
> Thanks for the clarification, it works for me as described now. 
> 
> However, the problem I wanted to address was that if two different MBeans would contain the exact same property, I see no way of differentiating between them. In fact I think only one of the properties will be shown by the Prometheus servlet.
> 
> At the moment that's not a real problem for me, just wanted to let you know and suggest the possibility of a prefix eg.
> 
> java_lang_Memory_HeapMemoryUsage_committed
> java_lang_Memory_HeapMemoryUsage_init 
> java_lang_Memory_HeapMemoryUsage_max
> java_lang_Memory_HeapMemoryUsage_used
> 
> Best regards,
> Steven
> 
>> On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net> wrote:
>> Hi Steven,
>> 
>> I’m about to write a quick blog post to give some highlights about this change.
>> 
>> Basically, I did these two other changes:
>> 
>> 1. For « descendent » properties (the properties inside a Map for instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>> 
>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>> 
>> 2. You can specify the property you want to « render » in the Prometheus servlet using prometheus.key.foo in etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>> 
>> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>> 
>> I hope it helps.
>> 
>> Regards
>> JB
>> 
>> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a écrit :
>> > 
>> > Hi JB,
>> > 
>> > I've tested the new 2.8.0 decanter release and I'm pleased to say your fix for https://issues.apache.org/jira/browse/KARAF-7154 works great. Thanks for that !
>> > 
>> > However I couldn't figure out from the pull request what changes you made related to my second suggestion, to better identify from which MBean the properties are (or as you put it 'allow user to define the "exported" event properties by configuration'). Can you please explain how I can achieve this ?
>> > 
>> > Kind regards,
>> > Steven
>> > 
>> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <st...@gmail.com> wrote:
>> > Hi Jean-Baptist,
>> > 
>> > 1) You mention the Prometheus appender only exposes the numeric metrics. I believe it would be a minor but very useful addition to also expose the Objects in a CompositeDataSupport. For example java.lang.memory has a HeapMemoryUsage-object which contains 4 values (committed, init, max & used) that could easily be exposed as well.
>> > 
>> > 2) I also would like to suggest to prefix the outputted name of a property with something that really identifies the MBean, eg. :
>> > 
>> > java_lang_Memory_HeapMemoryUsage_committed
>> > java_lang_Memory_HeapMemoryUsage_init 
>> > java_lang_Memory_HeapMemoryUsage_max
>> > java_lang_Memory_HeapMemoryUsage_used
>> > 
>> > Currently MBeans having the same properties will have their values overridden in the output.
>> > 
>> > Kind regards,
>> > Steven
>> > 
>> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net> wrote:
>> > Hi Daniel,
>> > 
>> > JMX collector polls all MBeans attributes. However Prometheus appender only expose metrics (numeric) on the Prometheus servlet:
>> > 
>> > http://localhost:8181/decanter/prometheus
>> > 
>> > As the generated JMX JSON is "more" than just numeric, it’s possible that you don’t have the metrics.
>> > 
>> > You can check the JMX JSON using another kind of appender (like log appender or elasticsearch).
>> > I can add kind of "json introspection" on the Prometheus appender to "force" some JSON fields as metrics (gauge).
>> > 
>> > Regards
>> > JB
>> > 
>> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
>> > > 
>> > > Hi,
>> > > 
>> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and Prometheus appender features. I uncommented "object.name.system=java.lang:*" in org.apache.karaf.decanter.collector.jmx-local.cfg.
>> > > 
>> > > Where can I find JVM metrics like current heap memory usage? 
>> > > 
>> > > Regards
>> > > -- 
>> > > Daniel Łaś
>> > > 
>> > 
>> 

Re: Decanter and JMX

Posted by Steven Huypens <st...@gmail.com>.
Hi JB,

Thanks for the clarification, it works for me as described now.

However, the problem I wanted to address was that if two different MBeans
would contain the exact same property, I see no way of differentiating
between them. In fact I think only one of the properties will be shown by
the Prometheus servlet.

At the moment that's not a real problem for me, just wanted to let you know
and suggest the possibility of a prefix eg.

java_lang_Memory_HeapMemoryUsage_committed
java_lang_Memory_HeapMemoryUsage_init
java_lang_Memory_HeapMemoryUsage_max
java_lang_Memory_HeapMemoryUsage_used

Best regards,
Steven

On Sun, Sep 19, 2021 at 11:30 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
wrote:

> Hi Steven,
>
> I’m about to write a quick blog post to give some highlights about this
> change.
>
> Basically, I did these two other changes:
>
> 1. For « descendent » properties (the properties inside a Map for
> instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:
>
>
> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74
>
> 2. You can specify the property you want to « render » in the Prometheus
> servlet using prometheus.key.foo in
> etc/org.apache.karaf.decanter.appender.prometheus.cfg:
>
>
> https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69
>
> I hope it helps.
>
> Regards
> JB
>
> > Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a
> écrit :
> >
> > Hi JB,
> >
> > I've tested the new 2.8.0 decanter release and I'm pleased to say your
> fix for https://issues.apache.org/jira/browse/KARAF-7154 works great.
> Thanks for that !
> >
> > However I couldn't figure out from the pull request what changes you
> made related to my second suggestion, to better identify from which MBean
> the properties are (or as you put it 'allow user to define the "exported"
> event properties by configuration'). Can you please explain how I can
> achieve this ?
> >
> > Kind regards,
> > Steven
> >
> > On Wed, May 12, 2021 at 6:57 PM Steven Huypens <st...@gmail.com>
> wrote:
> > Hi Jean-Baptist,
> >
> > 1) You mention the Prometheus appender only exposes the numeric metrics.
> I believe it would be a minor but very useful addition to also expose the
> Objects in a CompositeDataSupport. For example java.lang.memory has a
> HeapMemoryUsage-object which contains 4 values (committed, init, max &
> used) that could easily be exposed as well.
> >
> > 2) I also would like to suggest to prefix the outputted name of a
> property with something that really identifies the MBean, eg. :
> >
> > java_lang_Memory_HeapMemoryUsage_committed
> > java_lang_Memory_HeapMemoryUsage_init
> > java_lang_Memory_HeapMemoryUsage_max
> > java_lang_Memory_HeapMemoryUsage_used
> >
> > Currently MBeans having the same properties will have their values
> overridden in the output.
> >
> > Kind regards,
> > Steven
> >
> > On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net>
> wrote:
> > Hi Daniel,
> >
> > JMX collector polls all MBeans attributes. However Prometheus appender
> only expose metrics (numeric) on the Prometheus servlet:
> >
> > http://localhost:8181/decanter/prometheus
> >
> > As the generated JMX JSON is "more" than just numeric, it’s possible
> that you don’t have the metrics.
> >
> > You can check the JMX JSON using another kind of appender (like log
> appender or elasticsearch).
> > I can add kind of "json introspection" on the Prometheus appender to
> "force" some JSON fields as metrics (gauge).
> >
> > Regards
> > JB
> >
> > > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
> > >
> > > Hi,
> > >
> > > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and
> Prometheus appender features. I uncommented
> "object.name.system=java.lang:*" in
> org.apache.karaf.decanter.collector.jmx-local.cfg.
> > >
> > > Where can I find JVM metrics like current heap memory usage?
> > >
> > > Regards
> > > --
> > > Daniel Łaś
> > >
> >
>
>

Re: Decanter and JMX

Posted by Jean-Baptiste Onofre <jb...@nanthrax.net>.
Hi Steven,

I’m about to write a quick blog post to give some highlights about this change.

Basically, I did these two other changes:

1. For « descendent » properties (the properties inside a Map for instance), the property is now named [MAP_PROPERTY]_[ENTRY_PROPERTY]:

https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L74

2. You can specify the property you want to « render » in the Prometheus servlet using prometheus.key.foo in etc/org.apache.karaf.decanter.appender.prometheus.cfg:

https://github.com/apache/karaf-decanter/blob/main/appender/prometheus/src/main/java/org/apache/karaf/decanter/appender/prometheus/PrometheusServlet.java#L69

I hope it helps.

Regards
JB

> Le 19 sept. 2021 à 10:16, Steven Huypens <st...@gmail.com> a écrit :
> 
> Hi JB,
> 
> I've tested the new 2.8.0 decanter release and I'm pleased to say your fix for https://issues.apache.org/jira/browse/KARAF-7154 works great. Thanks for that !
> 
> However I couldn't figure out from the pull request what changes you made related to my second suggestion, to better identify from which MBean the properties are (or as you put it 'allow user to define the "exported" event properties by configuration'). Can you please explain how I can achieve this ?
> 
> Kind regards,
> Steven
> 
> On Wed, May 12, 2021 at 6:57 PM Steven Huypens <st...@gmail.com> wrote:
> Hi Jean-Baptist,
> 
> 1) You mention the Prometheus appender only exposes the numeric metrics. I believe it would be a minor but very useful addition to also expose the Objects in a CompositeDataSupport. For example java.lang.memory has a HeapMemoryUsage-object which contains 4 values (committed, init, max & used) that could easily be exposed as well.
> 
> 2) I also would like to suggest to prefix the outputted name of a property with something that really identifies the MBean, eg. :
> 
> java_lang_Memory_HeapMemoryUsage_committed
> java_lang_Memory_HeapMemoryUsage_init 
> java_lang_Memory_HeapMemoryUsage_max
> java_lang_Memory_HeapMemoryUsage_used
> 
> Currently MBeans having the same properties will have their values overridden in the output.
> 
> Kind regards,
> Steven
> 
> On Mon, May 3, 2021 at 6:14 AM Jean-Baptiste Onofre <jb...@nanthrax.net> wrote:
> Hi Daniel,
> 
> JMX collector polls all MBeans attributes. However Prometheus appender only expose metrics (numeric) on the Prometheus servlet:
> 
> http://localhost:8181/decanter/prometheus
> 
> As the generated JMX JSON is "more" than just numeric, it’s possible that you don’t have the metrics.
> 
> You can check the JMX JSON using another kind of appender (like log appender or elasticsearch).
> I can add kind of "json introspection" on the Prometheus appender to "force" some JSON fields as metrics (gauge).
> 
> Regards
> JB
> 
> > Le 2 mai 2021 à 22:24, Daniel Las <da...@empirica.io> a écrit :
> > 
> > Hi,
> > 
> > I installed Decanter 2.7.0 on Karaf 4.2.11 with JMX collector and Prometheus appender features. I uncommented "object.name.system=java.lang:*" in org.apache.karaf.decanter.collector.jmx-local.cfg.
> > 
> > Where can I find JVM metrics like current heap memory usage? 
> > 
> > Regards
> > -- 
> > Daniel Łaś
> > 
>