Description
Component(s)
receiver/jmx
What happened?
Description
I tried to start a jmx receiver in a kubernetes pod but getting below error while starting the jmx receiver.
$ kubectl logs otel-collector-2pmlq -n default
Defaulted container "otel-collector" out of: otel-collector, init-downloader (init)
2025-06-18T06:13:03.526Z info [email protected]/service.go:199 Setting up own telemetry... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.527Z info builders/builders.go:26 Development component. May change in the future. {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics"}
2025-06-18T06:13:03.531Z info [email protected]/service.go:259 Starting otelcol-contrib... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "Version": "0.128.0", "NumCPU": 24}
2025-06-18T06:13:03.531Z info extensions/extensions.go:41 Starting extensions... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.533Z info [email protected]/otlp.go:117 Starting GRPC server {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "jmx", "otelcol.component.kind": "receiver", "endpoint": "0.0.0.0:34605"}
2025-06-18T06:13:03.533Z info [email protected]/service.go:282 Everything is ready. Begin running and processing data. {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.539Z error subprocess/subprocess.go:244 subprocess died {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "jmx", "otelcol.component.kind": "receiver", "otelcol.signal": "metrics", "error": "fork/exec /opt/java/java-17-openjdk/bin/java: no such file or directory"}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).run
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:244
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).Start.func1
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:117
Steps to Reproduce
Pasting the config in below config section
Expected Result
Expected to jmx receiver start and collect metrics.
Actual Result
Jmx receiver failing with below error.
2025-06-18T06:13:03.533Z info [email protected]/service.go:282 Everything is ready. Begin running and processing data. {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.539Z error subprocess/subprocess.go:244 subprocess died {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "jmx", "otelcol.component.kind": "receiver", "otelcol.signal": "metrics", "error": "fork/exec /opt/java/java-17-openjdk/bin/java: no such file or directory"}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).run
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:244
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).Start.func1
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:117
Collector version
0.128.0
Environment information
No response
OpenTelemetry Collector configuration
apiVersion: v1
kind: ConfigMap
metadata:
name: otel-collector-config
namespace: default
data:
otel-collector-config.yaml: |
receivers:
jmx:
jar_path: /opt/jmx/opentelemetry-java-contrib-jmx-metrics.jar
endpoint: service:jmx:rmi:///jndi/rmi://0.0.0.0:5656/jmxrmi
collection_interval: 10s
target_system: jvm
processors:
exporters:
debug:
verbosity: detailed
service:
pipelines:
metrics:
receivers:
- jmx
processors:
exporters:
- debug
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: otel-collector
namespace: default
spec:
selector:
matchLabels:
app: otel-collector
template:
metadata:
labels:
app: otel-collector
spec:
serviceAccountName: otel-collector-sa
volumes:
- name: otel-java-bin
emptyDir: {}
- name: otel-collector-config-vol
configMap:
name: otel-collector-config
- name: otel-jmx-jar
emptyDir: {}
- name: tmp-dir
emptyDir: {}
initContainers:
- name: init-downloader
image: alpine
command:
- sh
- -c
- >
apk add --no-cache wget openjdk17 &&
cp -r /usr/lib/jvm/java-17-openjdk /opt/java &&
wget -O /opt/jmx/opentelemetry-java-contrib-jmx-metrics.jar https://github.com/open-telemetry/opentelemetry-java-contrib/releases/download/v1.46.0/opentelemetry-jmx-metrics.jar && echo "jar download" && java -version && ls /opt && ls /opt/jmx
volumeMounts:
- name: otel-java-bin
mountPath: /opt/java
- name: otel-jmx-jar
mountPath: /opt/jmx
containers:
- name: otel-collector
image: otel/opentelemetry-collector-contrib:0.128.0
env:
- name: K8S_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: PATH
value: $PATH:/opt/java/java-17-openjdk/bin
args:
- "--config=/etc/otel-collector-config.yaml"
volumeMounts:
- name: otel-collector-config-vol
mountPath: /etc/otel-collector-config.yaml
subPath: otel-collector-config.yaml
- name: otel-jmx-jar
mountPath: /opt/jmx
- name: tmp-dir
mountPath: /tmp
- name: otel-java-bin
mountPath: /opt/java
Log output
kubectl logs otel-collector-2pmlq -n default
Defaulted container "otel-collector" out of: otel-collector, init-downloader (init)
2025-06-18T06:13:03.526Z info [email protected]/service.go:199 Setting up own telemetry... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.527Z info builders/builders.go:26 Development component. May change in the future. {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "debug", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics"}
2025-06-18T06:13:03.531Z info [email protected]/service.go:259 Starting otelcol-contrib... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "Version": "0.128.0", "NumCPU": 24}
2025-06-18T06:13:03.531Z info extensions/extensions.go:41 Starting extensions... {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.533Z info [email protected]/otlp.go:117 Starting GRPC server {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "jmx", "otelcol.component.kind": "receiver", "endpoint": "0.0.0.0:34605"}
2025-06-18T06:13:03.533Z info [email protected]/service.go:282 Everything is ready. Begin running and processing data. {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}}
2025-06-18T06:13:03.539Z error subprocess/subprocess.go:244 subprocess died {"resource": {"service.instance.id": "e8bf9d6e-9fa3-40e3-a7b7-f830ab8d6146", "service.name": "otelcol-contrib", "service.version": "0.128.0"}, "otelcol.component.id": "jmx", "otelcol.component.kind": "receiver", "otelcol.signal": "metrics", "error": "fork/exec /opt/java/java-17-openjdk/bin/java: no such file or directory"}
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).run
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:244
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver/internal/subprocess.(*Subprocess).Start.func1
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/internal/subprocess/subprocess.go:117
Additional context
No response