You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JMX Insight is now reused by jmx-scraper in contrib repository, so in theory it would be possible to now capture stable JVM runtime metrics that are part of semconv with declarative YAML from outside of the JVM with jmx scraper.
When attempting to capture semconv-compliant JVM runtime metrics, we currently can't post-process or normalize the metric attributes, for example with the jvm.memory.{used,committed,limit} metrics, the value of jvm.memory.type comes from an MBean attribute name with values heap and non_heap.
The best we can so so far is to capture those metrics with their original MBean attribute values, the following YAML would capture HEAP and NON_HEAP for jvm.memory.type metric attribute:
rules:
- bean: java.lang:type=MemoryPool,name=*
prefix: jvm.memory.
type: updowncounter
unit: By
metricAttribute:
jvm.memory.pool.name: param(name)
jvm.memory.type: beanattr(type)
mapping:
Usage.used:
metric: used
desc: Measure of memory used.
Usage.committed:
metric: committed
desc: Measure of memory committed.
Usage.max:
metric: limit
desc: Measure of max obtainable memory.
In order to solve this, we could introduce a simple lowercase(...) function int he yaml syntax as most of the attributes in semconv are lowercase, for example it could look like this:
The same logic could be applied to capture jvm.thread.state attribute that has the same issue as the values are provided in upper-case and are lower-cased in semconv.
The text was updated successfully, but these errors were encountered:
JMX Insight is now reused by jmx-scraper in contrib repository, so in theory it would be possible to now capture stable JVM runtime metrics that are part of semconv with declarative YAML from outside of the JVM with jmx scraper.
The current implementation in instrumentation is in instrumentation/runtime-telemetry/runtime-telemetry-java8 does not rely on this declarative YAML metrics capture, even if it relies on the same JMX interface.
When attempting to capture semconv-compliant JVM runtime metrics, we currently can't post-process or normalize the metric attributes, for example with the
jvm.memory.{used,committed,limit}
metrics, the value ofjvm.memory.type
comes from an MBean attributename
with valuesheap
andnon_heap
.The best we can so so far is to capture those metrics with their original MBean attribute values, the following YAML would capture
HEAP
andNON_HEAP
forjvm.memory.type
metric attribute:In order to solve this, we could introduce a simple
lowercase(...)
function int he yaml syntax as most of the attributes in semconv are lowercase, for example it could look like this:The same logic could be applied to capture
jvm.thread.state
attribute that has the same issue as the values are provided in upper-case and are lower-cased in semconv.The text was updated successfully, but these errors were encountered: