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
{
"_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
{
"_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"
]
}
}