# Kibana Observability metrics expected format not otel?

**URL:** <https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561>\
**Category:** Elastic Observability\
**Created:** [October 9, 2025, 2:51pm UTC](https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561 "2025-10-09T14:51:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![nilsen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nilsen/32/146631_2.png) [@nilsen](https://discuss.elastic.co/u/nilsen)\
**Post date:** [October 9, 2025, 2:51pm UTC](https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561/1 "2025-10-09T14:51:25Z")

</div>

I have tried to get JVM and other metrics from Wildfly to show up in Kibana Observability. Wildfly have support for exporting/pushing metrics with the OpenTelemetry Protocol (OTLP), in what I assume is the OTEL standard. I can see metrics documents in my index, but they are not shown in Kibana Observability.

Using the elastic-apm-agent-1.54.0.jar I'm able to get JVM metrics in Kibana Observability as expected.

I have attached examples below, showing the difference when using Wildfly's inbuilt tools, and the elastic-apm-agent. Maybe that can help checking if what Wildfly produce isn't enough for Kibana Observability.

Does anyone know if Kibana Observability needs more data than standard OTEL? _(Assuming Wildfly produces OTEL)_  
Does anyone spot/understand why my JVM metrics isn't showing up in Kibana Observability?

Java: 17  
Wildfly: 31  
Elastic Stack: v8.7.1  
Elastic apm agent: 1.54.0

Examples:

> **Document when using Wildfly micrometer subsystem exporting with otlp**
>
> ```auto
> {
> "_index": ".ds-metrics-apm.app.wildfly-default-2025.10.09-000001",
> "_id": "pT9JyZkBBUKxyBnqq0wv",
> "_version": 1,
> "_score": 0,
> "_source": {
> "@timestamp": "2025-10-09T14:04:31.424Z",
> "agent": {
> "name": "io.micrometer/java",
> "version": "1.12.0"
> },
> "data_stream": {
> "dataset": "apm.app.wildfly",
> "namespace": "default",
> "type": "metrics"
> },
> "ecs": {
> "version": "8.6.0-dev"
> },
> "event": {
> "agent_id_status": "missing",
> "ingested": "2025-10-09T14:04:32Z"
> },
> "gc": 18,
> "labels": {
> "name": "G1 Young Generation"
> },
> "metricset": {
> "name": "app"
> },
> "observer": {
> "hostname": "bda6434b3874",
> "type": "apm-server",
> "version": "8.7.1"
> },
> "processor": {
> "event": "metric",
> "name": "metric"
> },
> "service": {
> "language": {
> "name": "java"
> },
> "name": "wildfly"
> }
> },
> "fields": {
> "service.name": [
> "wildfly"
> ],
> "data_stream.namespace": [
> "default"
> ],
> "labels.name": [
> "G1 Young Generation"
> ],
> "processor.name": [
> "metric"
> ],
> "data_stream.type": [
> "metrics"
> ],
> "observer.hostname": [
> "bda6434b3874"
> ],
> "service.language.name": [
> "java"
> ],
> "metricset.name": [
> "app"
> ],
> "event.ingested": [
> "2025-10-09T14:04:32.000Z"
> ],
> "@timestamp": [
> "2025-10-09T14:04:31.424Z"
> ],
> "ecs.version": [
> "8.6.0-dev"
> ],
> "observer.type": [
> "apm-server"
> ],
> "observer.version": [
> "8.7.1"
> ],
> "processor.event": [
> "metric"
> ],
> "data_stream.dataset": [
> "apm.app.wildfly"
> ],
> "agent.version": [
> "1.12.0"
> ],
> "agent.name": [
> "io.micrometer/java"
> ],
> "event.agent_id_status": [
> "missing"
> ],
> "gc": [
> 18
> ]
> }
> }
> 
> ```

> **Document when using elastic-apm-agent-1.54.0.jar**
>
> ```auto
> {
> "_index": ".ds-metrics-apm.internal-default-2025.10.06-000001",
> "_id": "dDEOxJkBBUKxyBnqFzSy",
> "_version": 1,
> "_score": 0,
> "_source": {
> "@timestamp": "2025-10-08T13:41:17.873Z",
> "agent": {
> "ephemeral_id": "032a8e38-de3f-418f-8ce2-488bc9229f64",
> "name": "java",
> "version": "1.54.0"
> },
> "container": {
> "id": "d841d6a12f4a3c352e0bbe46a251a60de77453c647b6babe18380df27eb0a823"
> },
> "data_stream": {
> "dataset": "apm.internal",
> "namespace": "default",
> "type": "metrics"
> },
> "ecs": {
> "version": "8.6.0-dev"
> },
> "event": {
> "agent_id_status": "missing",
> "ingested": "2025-10-08T13:41:21Z"
> },
> "host": {
> "architecture": "amd64",
> "hostname": "d841d6a12f4a",
> "ip": "172.20.0.5",
> "name": "d841d6a12f4a",
> "os": {
> "platform": "Linux"
> }
> },
> "jvm": {
> "gc": {
> "count": 28,
> "time": 182
> }
> },
> "labels": {
> "name": "G1 Young Generation"
> },
> "metricset": {
> "name": "app"
> },
> "observer": {
> "hostname": "bda6434b3874",
> "type": "apm-server",
> "version": "8.7.1"
> },
> "process": {
> "parent": {
> "pid": 1
> },
> "pid": 165,
> "title": "/opt/java/openjdk/bin/java"
> },
> "processor": {
> "event": "metric",
> "name": "metric"
> },
> "service": {
> "language": {
> "name": "Java",
> "version": "17.0.10"
> },
> "name": "otelpoc",
> "node": {
> "name": "d841d6a12f4a3c352e0bbe46a251a60de77453c647b6babe18380df27eb0a823"
> },
> "runtime": {
> "name": "Java",
> "version": "17.0.10"
> }
> }
> },
> "fields": {
> "service.node.name": [
> "d841d6a12f4a3c352e0bbe46a251a60de77453c647b6babe18380df27eb0a823"
> ],
> "process.parent.pid": [
> 1
> ],
> "host.hostname": [
> "d841d6a12f4a"
> ],
> "process.pid": [
> 165
> ],
> "service.language.name": [
> "Java"
> ],
> "container.id": [
> "d841d6a12f4a3c352e0bbe46a251a60de77453c647b6babe18380df27eb0a823"
> ],
> "process.title.text": [
> "/opt/java/openjdk/bin/java"
> ],
> "host.ip": [
> "172.20.0.5"
> ],
> "processor.event": [
> "metric"
> ],
> "agent.name": [
> "java"
> ],
> "host.name": [
> "d841d6a12f4a"
> ],
> "event.agent_id_status": [
> "missing"
> ],
> "service.name": [
> "otelpoc"
> ],
> "data_stream.namespace": [
> "default"
> ],
> "jvm.gc.time": [
> 182
> ],
> "processor.name": [
> "metric"
> ],
> "service.runtime.name": [
> "Java"
> ],
> "labels.name": [
> "G1 Young Generation"
> ],
> "service.runtime.version": [
> "17.0.10"
> ],
> "data_stream.type": [
> "metrics"
> ],
> "observer.hostname": [
> "bda6434b3874"
> ],
> "host.architecture": [
> "amd64"
> ],
> "metricset.name": [
> "app"
> ],
> "event.ingested": [
> "2025-10-08T13:41:21.000Z"
> ],
> "@timestamp": [
> "2025-10-08T13:41:17.873Z"
> ],
> "observer.version": [
> "8.7.1"
> ],
> "ecs.version": [
> "8.6.0-dev"
> ],
> "observer.type": [
> "apm-server"
> ],
> "host.os.platform": [
> "Linux"
> ],
> "data_stream.dataset": [
> "apm.internal"
> ],
> "service.language.version": [
> "17.0.10"
> ],
> "jvm.gc.count": [
> 28
> ],
> "agent.ephemeral_id": [
> "032a8e38-de3f-418f-8ce2-488bc9229f64"
> ],
> "agent.version": [
> "1.54.0"
> ],
> "process.title": [
> "/opt/java/openjdk/bin/java"
> ]
> }
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![nilsen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nilsen/32/146631_2.png) [@nilsen](https://discuss.elastic.co/u/nilsen)\
**Post date:** [October 9, 2025, 4:43pm UTC](https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561/2 "2025-10-09T16:43:40Z")

</div>

Seems like this was a bug, and was fixed in v8.8. I will update my elastic stack tomorrow and try again. Will report back.

---

<div class="post-metadata">

**Author:** ![nilsen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nilsen/32/146631_2.png) [@nilsen](https://discuss.elastic.co/u/nilsen)\
**Post date:** [October 10, 2025, 9:13am UTC](https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561/3 "2025-10-10T09:13:27Z")

</div>

After upgrading my stack to v 8.19.5 I now get the message:

> "Runtime metrics are not available for this Agent / SDK type."

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/6/5/65f5ebbbe2c5894811e671e97ec29e1daa10d63f.png)

I thought Kibana Observability Metrics supported the otel java agent after version 8.8+, but that does not seem to be the case? _Ref.: [Added support for OpenTelemetry process and system metrics by AlexanderWert · Pull Request #151826 · elastic/kibana · GitHub](https://github.com/elastic/kibana/pull/151826)_

I saw someone mention the property: `otel.semconv.stability.opt.in=jvm`, but that did not affect anything.

**Is using the Elastic APM agent our only option now if we want metrics in Observability?**  
**Does anyone know if this is supported in stack version 9.X+?**  
_I cannot easily get [elastic-stack-docker-part-two](https://www.elastic.co/blog/getting-started-with-the-elastic-stack-and-docker-compose-part-2), that I'm using in my POC, to stack version 9+._

---

<div class="post-metadata">

**Author:** ![nilsen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nilsen/32/146631_2.png) [@nilsen](https://discuss.elastic.co/u/nilsen)\
**Post date:** [October 14, 2025, 10:59am UTC](https://discuss.elastic.co/t/kibana-observability-metrics-expected-format-not-otel/382561/4 "2025-10-14T10:59:10Z")

</div>

Another update.

Edit: It works with the EDOT client. Both works on 9.1.5 and 8.19.5.

> **Old post**
>
> Updated to stack version 9.1.5 and it still does not work with JVM metrics with standard OTEL.  
> Also found and tried the EDOT agent, but that does not work either with JVM metrics in Kibana Observability Metrics.
> 
> We are back to thinking only the `elastic-apm-agent` produces a format that Kibana Observability Metrics recognize.
> 
> Which I find strange because:
> 
> - [PR saying it is fixed (comments say otherwise)](https://github.com/elastic/kibana/pull/151826)
> - EDOT is supposed to be preferred over `elastic-apm-agent`
> 
> Anyone have any clue?
