69 lines
2.7 KiB
Plaintext
69 lines
2.7 KiB
Plaintext
|
The `jmx` metricset collects metrics from
|
||
|
https://jolokia.org/reference/html/agents.html[Jolokia agents].
|
||
|
|
||
|
[float]
|
||
|
=== Features and configuration
|
||
|
Tested with Jolokia 1.5.0.
|
||
|
|
||
|
To collect metrics from a Jolokia instance, define a mapping section that
|
||
|
specifies an MBean `ObjectName` followed by an array of attributes to fetch. For
|
||
|
each attribute in the array, specify the Elastic field name where the
|
||
|
returned value will be saved.
|
||
|
|
||
|
For example, to get the `Uptime` attribute from the `java.lang:type=Runtime`
|
||
|
MBean and map it to an event field called `jolokia.testnamespace.uptime`,
|
||
|
configure the following mapping:
|
||
|
|
||
|
[source,yaml]
|
||
|
----
|
||
|
- module: jolokia
|
||
|
metricsets: ["jmx"]
|
||
|
hosts: ["localhost:8778"]
|
||
|
namespace: "testnamespace" <1>
|
||
|
jmx.mappings:
|
||
|
- mbean: 'java.lang:type=Runtime'
|
||
|
attributes:
|
||
|
- attr: Uptime
|
||
|
field: uptime <2>
|
||
|
event: uptime <3>
|
||
|
target:
|
||
|
url: "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi"
|
||
|
user: "jolokia"
|
||
|
password: "s!cr!t"
|
||
|
----
|
||
|
<1> The `namespace` setting is required. This setting is used along with the
|
||
|
module name to qualify field names in the output event.
|
||
|
<2> The field where the returned value will be saved. This field will be called
|
||
|
`jolokia.testnamespace.uptime` in the output event.
|
||
|
<3> The `event` setting is optional. Use this setting to group all attributes
|
||
|
with the same `event` value into the same event when sending data to Elastic.
|
||
|
|
||
|
If the underlying attribute is an object (such as the `HeapMemoryUsage`
|
||
|
attribute in `java.lang:type=Memory`), its structure will be published to
|
||
|
Elastic "as is".
|
||
|
|
||
|
You can configure nested metric aliases by using dots in the mapping name (for
|
||
|
example, `gc.cms_collection_time`). For more examples, see
|
||
|
https://github.com/elastic/beats/blob/{doc-branch}/metricbeat/module/jolokia/jmx/_meta/test/config.yml[/jolokia/jmx/test/config.yml].
|
||
|
|
||
|
All metrics from a single mapping will be POSTed to the defined host/port and
|
||
|
sent to Elastic as a single event. To make it possible to differentiate between
|
||
|
metrics from multiple similar applications running on the same host, you should
|
||
|
configure multiple modules.
|
||
|
|
||
|
When wildcards are used, an event is sent to Elastic for each matching
|
||
|
MBean, and an `mbean` field is added to the event.
|
||
|
|
||
|
[float]
|
||
|
=== Limitations
|
||
|
All Jolokia requests have `canonicalNaming` set to `false`. See the
|
||
|
https://jolokia.org/reference/html/protocol.html[Jolokia Protocol] documentation
|
||
|
for more detail about this parameter.
|
||
|
|
||
|
|
||
|
[float]
|
||
|
=== Exposed fields, dashboards, indexes, etc.
|
||
|
Because this module is very general and can be tailored for any application that
|
||
|
exposes its metrics over Jolokia, it comes with no exposed field descriptions,
|
||
|
dashboards, or index patterns.
|