| Status | |
|---|---|
| Stability | beta: metrics |
| Distributions | contrib |
| Issues | |
| Code coverage | |
| Code Owners | @atoulme, @rogercoll |
| Emeritus | @rmfitzpatrick |
The JMX Receiver will work in conjunction with the OpenTelemetry JMX Metric Gatherer (built-in otel helper-utilizing Groovy script) or the OpenTelemetry JMX Scraper (YAML metrics mapping) to report metrics from a target MBean server.
This receiver will launch a child JRE process running the corresponding JAR (JMX Metric Gatherer or JMX Scraper) configured with your specified JMX connection information. It then reports metrics to an implicitly created OTLP receiver. In order to use you will need to download the most recent release of the JMX JAR and configure the receiver with its path. It is assumed that the JRE is available on your system.
Example configuration:
receivers:
jmx:
jar_path: /opt/opentelemetry-java-contrib-jmx-metrics.jar
endpoint: my_jmx_host:12345
target_system: jvm
collection_interval: 10s
initial_delay: 1s
# optional: the same as specifying OTLP receiver endpoint.
otlp:
endpoint: mycollectorotlpreceiver:4317
username: my_jmx_username
# determined by the environment variable value
password: ${env:MY_JMX_PASSWORD}
resource_attributes:
my.attr: my.value
my.other.attr: my.other.value
log_level: info
additional_jars:
- /path/to/other.jarSupported by: jmx-scraper, jmx-gatherer
The path for the JMX JAR (JMX Metric Gatherer or JMX Scraper) to run. This must represent a released version 1.9+ of the jar,
which can be downloaded from github.
If a non-released version is required, you can specify a custom version by providing the sha256 hash of your
custom version of the jar during collector build time using the ldflags option.
For the JMX Metric Gatherer:
go build -ldflags "-X github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver.MetricsGathererHash=<sha256hash>" ...Custom JMX Scraper:
go build -ldflags "-X github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver.ScraperHash=<sha256hash>" ...Supported by: jmx-scraper, jmx-gatherer
The JMX Service URL or host
and port used to construct the Service URL the JMX client should use. Value must be in the form of
service:jmx:<protocol>:<sap> or host:port. Values in host:port form will be used to create a Service URL of
service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi.
When in or coerced to service:jmx:<protocol>:<sap> form, corresponds to the otel.jmx.service.url property.
Required.
Supported by: jmx-scraper, jmx-gatherer
The built-in target system (or systems) metric gatherer to run. Supported targets include:
If additional target systems must be supported (because of a custom jar configured using the
MetricsGathererHash build time config), they can be added with another build time flag.
go build -ldflags "-X github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver.MetricsGathererHash=<sha256hash>
-X github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver.AdditionalTargetSystems=newtarget,othernewtarget" ...Corresponds to the otel.jmx.target.system property.
Supported by: jmx-scraper
Source of metrics definitions to use for target_system, supported values are auto (default), instrumentation and legacy. Find more details in the JMX Scraper documentation.
Supported by: jmx-scraper
Comma-separated list of paths to custom YAML metrics definition, mandatory when target_system is not set.
Supported by: jmx-scraper, jmx-gatherer
The interval time for collecting the metrics to be exported by the JMX JAR within the persistent JRE process.
Corresponds to the otel.jmx.interval.milliseconds property.
Supported by: jmx-scraper, jmx-gatherer
Defines how long this receiver waits before starting.
Supported by: jmx-scraper, jmx-gatherer
The username to use for JMX authentication.
Corresponds to the otel.jmx.username property.
Supported by: jmx-scraper, jmx-gatherer
The password to use for JMX authentication.
Corresponds to the otel.jmx.password property.
Supported by: jmx-scraper, jmx-gatherer
The otlp exporter endpoint to which to listen and submit metrics.
Corresponds to the otel.exporter.otlp.endpoint property.
Supported by: jmx-scraper, jmx-gatherer
The otlp exporter request timeout.
Corresponds to the otel.exporter.otlp.metric.timeout property.
Supported by: jmx-scraper, jmx-gatherer
The headers to include in otlp metric submission requests.
Corresponds to the otel.exporter.otlp.metadata property.
Supported by: jmx-scraper, jmx-gatherer
The keystore path is required if SSL is enabled on the target JVM.
Corresponds to the javax.net.ssl.keyStore property.
Supported by: jmx-scraper, jmx-gatherer
The keystore file password if required by SSL.
Corresponds to the javax.net.ssl.keyStorePassword property.
Supported by: jmx-scraper, jmx-gatherer
The keystore type if required by SSL.
Corresponds to the javax.net.ssl.keyStoreType property.
Supported by: jmx-scraper, jmx-gatherer
The truststore path if the SSL profile is required.
Corresponds to the javax.net.ssl.trustStore property.
Supported by: jmx-scraper, jmx-gatherer
The truststore file password if required by SSL.
Corresponds to the javax.net.ssl.trustStorePassword property.
Supported by: jmx-scraper, jmx-gatherer
The truststore type if required by SSL.
Corresponds to the javax.net.ssl.trustStoreType property.
Supported by: jmx-scraper, jmx-gatherer
Supported JMX remote profiles are TLS in combination with SASL profiles: SASL/PLAIN, SASL/DIGEST-MD5 and SASL/CRAM-MD5.
Should be one of: "SASL/PLAIN", "SASL/DIGEST-MD5", "SASL/CRAM-MD5", "TLS SASL/PLAIN", "TLS SASL/DIGEST-MD5",
or "TLS SASL/CRAM-MD5", though no enforcement is applied.
Corresponds to the otel.jmx.remote.profile property.
Supported by: jmx-scraper, jmx-gatherer
The realm, as required by remote profile SASL/DIGEST-MD5.
Corresponds to the otel.jmx.realm property.
Supported by: jmx-scraper, jmx-gatherer
Additional JARs to be included in the java command classpath. This is currently only used for support for wildfly, where the Additional Jar should be a version of the jboss-client jar found on your wildfly installation.
Supported by: jmx-scraper, jmx-gatherer
Map of resource attributes that will be applied to any metrics emitted from the metrics gatherer.
Corresponds to the otel.resource.attributes property.
Supported by: jmx-gatherer
SLF4J log level for the JMX metrics gatherer. Must be one of: "trace", "debug", "info", "warn", "error", "off". If not provided, will attempt to match to the current log level of the collector.
Corresponds to the org.slf4j.simpleLogger.defaultLogLevel property.